Only save if task changed

pull/384/head
Alex Baker 10 years ago
parent 167ec840f3
commit 3e998c3115

@ -332,7 +332,9 @@ public final class TaskEditFragment extends InjectingFragment implements EditNot
/** Save task model from values in UI components */ /** Save task model from values in UI components */
public void save() { public void save() {
for (TaskEditControlFragment fragment : getFragments()) { List<TaskEditControlFragment> fragments = getFragments();
if (hasChanges(fragments)) {
for (TaskEditControlFragment fragment : fragments) {
fragment.apply(model); fragment.apply(model);
} }
taskService.save(model); taskService.save(model);
@ -349,9 +351,11 @@ public final class TaskEditFragment extends InjectingFragment implements EditNot
if (isNewTask) { if (isNewTask) {
tla.getTaskListFragment().onTaskCreated(model.getId(), model.getUuid()); tla.getTaskListFragment().onTaskCreated(model.getId(), model.getUuid());
} }
removeExtrasFromIntent(getActivity().getIntent()); removeExtrasFromIntent(getActivity().getIntent());
callback.taskEditFinished(); callback.taskEditFinished();
} else {
discard();
}
} }
private EditTitleControlSet getEditTitleControlSet() { private EditTitleControlSet getEditTitleControlSet() {
@ -386,12 +390,17 @@ public final class TaskEditFragment extends InjectingFragment implements EditNot
* ====================================================================== * ======================================================================
*/ */
public void discardButtonClick() { private boolean hasChanges(List<TaskEditControlFragment> fragments) {
boolean hasChanges = false; for (TaskEditControlFragment fragment : fragments) {
for (TaskEditControlFragment fragment : getFragments()) { if (fragment.hasChanges(model)) {
hasChanges |= fragment.hasChanges(model); return true;
}
}
return false;
} }
if (hasChanges) {
public void discardButtonClick() {
if (hasChanges(getFragments())) {
dialogBuilder.newMessageDialog(R.string.discard_confirmation) dialogBuilder.newMessageDialog(R.string.discard_confirmation)
.setPositiveButton(R.string.keep_editing, null) .setPositiveButton(R.string.keep_editing, null)
.setNegativeButton(R.string.discard, new DialogInterface.OnClickListener() { .setNegativeButton(R.string.discard, new DialogInterface.OnClickListener() {

Loading…
Cancel
Save