diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
index 108e36bd2..cf4f0f3f9 100755
--- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
+++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java
@@ -39,6 +39,7 @@ import org.tasks.fragments.TaskEditControlSetFragmentManager;
import org.tasks.injection.ForActivity;
import org.tasks.injection.InjectingFragment;
import org.tasks.notifications.NotificationManager;
+import org.tasks.preferences.Preferences;
import org.tasks.ui.MenuColorizer;
import org.tasks.ui.TaskEditControlFragment;
@@ -78,6 +79,7 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
@Inject @ForActivity Context context;
@Inject TaskEditControlSetFragmentManager taskEditControlSetFragmentManager;
@Inject CommentsController commentsController;
+ @Inject Preferences preferences;
@Bind(R.id.toolbar) Toolbar toolbar;
@Bind(R.id.comments) LinearLayout comments;
@@ -109,13 +111,19 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
isNewTask = savedInstanceState.getBoolean(EXTRA_IS_NEW_TASK);
}
- Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_save_24dp));
+ final boolean backButtonSavesTask = preferences.backButtonSavesTask();
+ Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(
+ backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp));
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
toolbar.setNavigationIcon(drawable);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- save();
+ if (backButtonSavesTask) {
+ discardButtonClick();
+ } else {
+ save();
+ }
}
});
toolbar.inflateMenu(R.menu.task_edit_fragment);
diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java
index 146094988..7dd935b9c 100644
--- a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java
+++ b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java
@@ -302,7 +302,11 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
TaskEditFragment taskEditFragment = getTaskEditFragment();
if (taskEditFragment != null) {
- taskEditFragment.discardButtonClick();
+ if (preferences.backButtonSavesTask()) {
+ taskEditFragment.save();
+ } else {
+ taskEditFragment.discardButtonClick();
+ }
} else if (!isFinishing()) {
super.onBackPressed();
}
diff --git a/src/main/java/org/tasks/preferences/Preferences.java b/src/main/java/org/tasks/preferences/Preferences.java
index 0b2493dea..594dd970e 100644
--- a/src/main/java/org/tasks/preferences/Preferences.java
+++ b/src/main/java/org/tasks/preferences/Preferences.java
@@ -50,6 +50,10 @@ public class Preferences {
publicPrefs = context.getSharedPreferences(AstridApiConstants.PUBLIC_PREFS, Context.MODE_WORLD_READABLE);
}
+ public boolean backButtonSavesTask() {
+ return getBoolean(R.string.p_back_button_saves_task, false);
+ }
+
public boolean quietHoursEnabled() {
return getBoolean(R.string.p_rmd_enable_quiet, false);
}
diff --git a/src/main/res/values/keys.xml b/src/main/res/values/keys.xml
index 87f06edc6..24577ceae 100644
--- a/src/main/res/values/keys.xml
+++ b/src/main/res/values/keys.xml
@@ -278,5 +278,6 @@
1000
500
collect_statistics
+ back_button_saves_task
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 96b1c1a09..34991013f 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -893,6 +893,7 @@ File %1$s contained %2$s.\n\n
Android will significantly delay notifications while device is in Doze mode
Android will allow limited interruptions while device is in Doze mode
(No title)
+ Back button saves task
diff --git a/src/main/res/xml/preferences_appearance.xml b/src/main/res/xml/preferences_appearance.xml
index 04825cfb4..b02a8089f 100644
--- a/src/main/res/xml/preferences_appearance.xml
+++ b/src/main/res/xml/preferences_appearance.xml
@@ -27,6 +27,11 @@
android:key="@string/customize_edit_screen"
android:title="@string/customize_edit_screen"/>
+
+