diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index d764c0b0f..7f3a39a67 100755 --- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -76,7 +76,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar private static final String EXTRA_TASK = "extra_task"; private static final String EXTRA_IS_NEW_TASK = "extra_is_new_task"; - private static final String EXTRA_SAVE_ON_DESTROY = "extra_save_on_destroy"; @Inject TaskService taskService; @Inject UserActivityDao userActivityDao; @@ -98,7 +97,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar /** true if editing started with a new task */ private boolean isNewTask = false; - private boolean saveOnDestroy = true; /** task model */ Task model = null; @@ -124,7 +122,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar if (savedInstanceState != null) { model = savedInstanceState.getParcelable(EXTRA_TASK); isNewTask = savedInstanceState.getBoolean(EXTRA_IS_NEW_TASK); - saveOnDestroy = savedInstanceState.getBoolean(EXTRA_SAVE_ON_DESTROY); } final boolean backButtonSavesTask = preferences.backButtonSavesTask(); @@ -211,9 +208,13 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar public void save() { List fragments = taskEditControlSetFragmentManager.getFragmentsInPersistOrder(getChildFragmentManager()); if (hasChanges(fragments)) { - saveOnDestroy = false; - - persistChanges(fragments); + for (TaskEditControlFragment fragment : fragments) { + fragment.apply(model); + } + boolean databaseChanged = taskService.save(model); + if (!databaseChanged && model.checkTransitory(SyncFlags.FORCE_SYNC)) { + broadcaster.taskUpdated(model, null); + } boolean tagsChanged = Flags.check(Flags.TAGS_CHANGED); @@ -230,16 +231,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar } } - private void persistChanges(List fragments) { - for (TaskEditControlFragment fragment : fragments) { - fragment.apply(model); - } - boolean databaseChanged = taskService.save(model); - if (!databaseChanged && model.checkTransitory(SyncFlags.FORCE_SYNC)) { - broadcaster.taskUpdated(model, null); - } - } - private EditTitleControlSet getEditTitleControlSet() { return getFragment(EditTitleControlSet.TAG); } @@ -288,8 +279,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar } public void discard() { - saveOnDestroy = false; - if (isNewTask) { TimerPlugin.stopTimer(notificationManager, taskService, getActivity(), model); taskDeleter.delete(model); @@ -316,20 +305,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar outState.putParcelable(EXTRA_TASK, model); outState.putBoolean(EXTRA_IS_NEW_TASK, isNewTask); - outState.putBoolean(EXTRA_SAVE_ON_DESTROY, saveOnDestroy); - } - - @Override - public void onDestroy() { - if (saveOnDestroy) { - List fragments = - taskEditControlSetFragmentManager.getFragmentsInPersistOrder(getChildFragmentManager()); - if (hasChanges(fragments)) { - persistChanges(fragments); - } - } - - super.onDestroy(); } /*