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());
frag.setOnSavedListener(onSavedListener);
frag.show(activity.getFragmentManager(), "dialog");
frag.show(activity.getFragmentManager(), "editHabit");
return true;
}

@ -144,6 +144,21 @@ public class EditHabitFragment extends DialogFragment
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());
tvFreqDen.append(modifiedHabit.freqDen.toString());
@ -340,4 +355,18 @@ public class EditHabitFragment extends DialogFragment
modifiedHabit.reminderDays = DateHelper.packWeekdayList(selectedDays);
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.setLongClickable(true);
if(savedInstanceState != null)
{
EditHabitFragment frag = (EditHabitFragment) getFragmentManager()
.findFragmentByTag("editHabit");
if(frag != null) frag.setOnSavedListener(this);
}
loader.updateAllHabits(true);
setHasOptionsMenu(true);
setHasOptionsMenu(true);
return view;
}
@ -202,7 +209,7 @@ public class ListHabitsFragment extends Fragment
{
EditHabitFragment frag = EditHabitFragment.createHabitFragment();
frag.setOnSavedListener(this);
frag.show(getFragmentManager(), "dialog");
frag.show(getFragmentManager(), "editHabit");
return true;
}

Loading…
Cancel
Save