Handle configuration changes

pull/30/head
Alinson S. Xavier 10 years ago
parent 75599ad20c
commit 85393b0d40

@ -43,10 +43,15 @@ public class HistoryEditorDialog extends DialogFragment
public Dialog onCreateDialog(Bundle savedInstanceState) public Dialog onCreateDialog(Bundle savedInstanceState)
{ {
Context context = getActivity(); Context context = getActivity();
historyView = new HabitHistoryView(context, null);
int p = (int) getResources().getDimension(R.dimen.history_editor_padding); int p = (int) getResources().getDimension(R.dimen.history_editor_padding);
historyView = new HabitHistoryView(context, null); if(savedInstanceState != null)
{
long id = savedInstanceState.getLong("habit", -1);
if(id > 0) this.habit = Habit.get(id);
}
historyView.setPadding(p, 0, p, 0); historyView.setPadding(p, 0, p, 0);
historyView.setHabit(habit); historyView.setHabit(habit);
historyView.setIsEditable(true); historyView.setIsEditable(true);
@ -77,7 +82,7 @@ public class HistoryEditorDialog extends DialogFragment
@Override @Override
public void onClick(DialogInterface dialog, int which) public void onClick(DialogInterface dialog, int which)
{ {
if(listener != null) listener.onHistoryEditorClosed(); dismiss();
} }
public void setHabit(Habit habit) public void setHabit(Habit habit)
@ -86,6 +91,19 @@ public class HistoryEditorDialog extends DialogFragment
if(historyView != null) historyView.setHabit(habit); if(historyView != null) historyView.setHabit(habit);
} }
@Override
public void onPause()
{
super.onPause();
if(listener != null) listener.onHistoryEditorClosed();
}
@Override
public void onSaveInstanceState(Bundle outState)
{
outState.putLong("habit", habit.getId());
}
public void setListener(Listener listener) public void setListener(Listener listener)
{ {
this.listener = listener; this.listener = listener;

@ -90,10 +90,21 @@ public class ShowHabitFragment extends Fragment
HistoryEditorDialog frag = new HistoryEditorDialog(); HistoryEditorDialog frag = new HistoryEditorDialog();
frag.setHabit(habit); frag.setHabit(habit);
frag.setListener(ShowHabitFragment.this); frag.setListener(ShowHabitFragment.this);
frag.show(getFragmentManager(), "dialog"); frag.show(getFragmentManager(), "historyEditor");
} }
}); });
if(savedInstanceState != null)
{
EditHabitFragment fragEdit = (EditHabitFragment) getFragmentManager()
.findFragmentByTag("editHabit");
HistoryEditorDialog fragEditor = (HistoryEditorDialog) getFragmentManager()
.findFragmentByTag("historyEditor");
if(fragEdit != null) fragEdit.setOnSavedListener(this);
if(fragEditor != null) fragEditor.setListener(this);
}
setHasOptionsMenu(true); setHasOptionsMenu(true);
return view; return view;
} }
@ -138,7 +149,7 @@ public class ShowHabitFragment extends Fragment
{ {
EditHabitFragment frag = EditHabitFragment.editSingleHabitFragment(habit.getId()); EditHabitFragment frag = EditHabitFragment.editSingleHabitFragment(habit.getId());
frag.setOnSavedListener(this); frag.setOnSavedListener(this);
frag.show(getFragmentManager(), "dialog"); frag.show(getFragmentManager(), "editHabit");
return true; return true;
} }
} }

Loading…
Cancel
Save