mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 09:08:52 -06:00
Handle configuration changes
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user