62 lines
1.5 KiB
Java
62 lines
1.5 KiB
Java
package com.thebrokenrail.mtudining.activity.menu;
|
|
|
|
import androidx.lifecycle.SavedStateHandle;
|
|
|
|
import java.util.Date;
|
|
|
|
/**
|
|
* Current state of menu screen.
|
|
*/
|
|
public class MenuState {
|
|
private static final String DATE_KEY = "date";
|
|
private static final String SELECTED_MEAL_KEY = "selected_meal";
|
|
|
|
/**
|
|
* Data that should survive process-death.
|
|
*/
|
|
private final SavedStateHandle savedStateHandle;
|
|
|
|
public MenuState(SavedStateHandle savedStateHandle) {
|
|
this.savedStateHandle = savedStateHandle;
|
|
if (!savedStateHandle.contains(DATE_KEY)) {
|
|
setDate(new Date());
|
|
}
|
|
if (!savedStateHandle.contains(SELECTED_MEAL_KEY)) {
|
|
setSelectedMeal("");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get currently selected date.
|
|
* @return The data
|
|
*/
|
|
@SuppressWarnings({"DataFlowIssue"})
|
|
public Date getDate() {
|
|
return new Date((long) savedStateHandle.get(DATE_KEY));
|
|
}
|
|
|
|
/**
|
|
* Set selected date.
|
|
* @param date The new date
|
|
*/
|
|
public void setDate(Date date) {
|
|
savedStateHandle.set(DATE_KEY, date.getTime());
|
|
}
|
|
|
|
/**
|
|
* Get currently selected meal.
|
|
* @return The meal
|
|
*/
|
|
public String getSelectedMeal() {
|
|
return savedStateHandle.get(SELECTED_MEAL_KEY);
|
|
}
|
|
|
|
/**
|
|
* Set selected meal.
|
|
* @param selectedMeal The new meal
|
|
*/
|
|
public void setSelectedMeal(String selectedMeal) {
|
|
savedStateHandle.set(SELECTED_MEAL_KEY, selectedMeal);
|
|
}
|
|
}
|