|
|
|
|
@ -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<TaskEditControlFragment> 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<TaskEditControlFragment> 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<TaskEditControlFragment> fragments =
|
|
|
|
|
taskEditControlSetFragmentManager.getFragmentsInPersistOrder(getChildFragmentManager());
|
|
|
|
|
if (hasChanges(fragments)) {
|
|
|
|
|
persistChanges(fragments);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
super.onDestroy();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|