Save changes on configuration change

Fixes #16
pull/30/head
Alinson S. Xavier 10 years ago
parent 4d42133a4b
commit c6b948cbf5

@ -168,7 +168,7 @@ public class HabitSelectionCallback implements ActionMode.Callback
{ {
EditHabitFragment frag = EditHabitFragment.editSingleHabitFragment(firstHabit.getId()); EditHabitFragment frag = EditHabitFragment.editSingleHabitFragment(firstHabit.getId());
frag.setOnSavedListener(onSavedListener); frag.setOnSavedListener(onSavedListener);
frag.show(activity.getFragmentManager(), "dialog"); frag.show(activity.getFragmentManager(), "editHabit");
return true; return true;
} }

@ -144,6 +144,21 @@ public class EditHabitFragment extends DialogFragment
tvDescription.append(modifiedHabit.description); tvDescription.append(modifiedHabit.description);
} }
if(savedInstanceState != null)
{
modifiedHabit.color = savedInstanceState.getInt("color", modifiedHabit.color);
modifiedHabit.reminderMin = savedInstanceState.getInt("reminderMin", -1);
modifiedHabit.reminderHour = savedInstanceState.getInt("reminderHour", -1);
modifiedHabit.reminderDays = savedInstanceState.getInt("reminderDays", -1);
if(modifiedHabit.reminderMin < 0)
{
modifiedHabit.reminderMin = null;
modifiedHabit.reminderHour = null;
modifiedHabit.reminderDays = 127;
}
}
tvFreqNum.append(modifiedHabit.freqNum.toString()); tvFreqNum.append(modifiedHabit.freqNum.toString());
tvFreqDen.append(modifiedHabit.freqDen.toString()); tvFreqDen.append(modifiedHabit.freqDen.toString());
@ -340,4 +355,18 @@ public class EditHabitFragment extends DialogFragment
modifiedHabit.reminderDays = DateHelper.packWeekdayList(selectedDays); modifiedHabit.reminderDays = DateHelper.packWeekdayList(selectedDays);
updateReminder(); updateReminder();
} }
@Override
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putInt("color", modifiedHabit.color);
if(modifiedHabit.reminderHour != null)
{
outState.putInt("reminderMin", modifiedHabit.reminderMin);
outState.putInt("reminderHour", modifiedHabit.reminderHour);
outState.putInt("reminderDays", modifiedHabit.reminderDays);
}
}
} }

@ -129,9 +129,16 @@ public class ListHabitsFragment extends Fragment
listView.setDragEnabled(true); listView.setDragEnabled(true);
listView.setLongClickable(true); listView.setLongClickable(true);
if(savedInstanceState != null)
{
EditHabitFragment frag = (EditHabitFragment) getFragmentManager()
.findFragmentByTag("editHabit");
if(frag != null) frag.setOnSavedListener(this);
}
loader.updateAllHabits(true); loader.updateAllHabits(true);
setHasOptionsMenu(true);
setHasOptionsMenu(true);
return view; return view;
} }
@ -202,7 +209,7 @@ public class ListHabitsFragment extends Fragment
{ {
EditHabitFragment frag = EditHabitFragment.createHabitFragment(); EditHabitFragment frag = EditHabitFragment.createHabitFragment();
frag.setOnSavedListener(this); frag.setOnSavedListener(this);
frag.show(getFragmentManager(), "dialog"); frag.show(getFragmentManager(), "editHabit");
return true; return true;
} }

Loading…
Cancel
Save