Add configurable back button behavior

pull/384/head
Alex Baker 10 years ago
parent a12aa40895
commit 82918ba263

@ -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);

@ -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();
}

@ -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);
}

@ -278,5 +278,6 @@
<string name="default_vibration_duration">1000</string>
<string name="default_vibration_pause">500</string>
<string name="p_collect_statistics">collect_statistics</string>
<string name="p_back_button_saves_task">back_button_saves_task</string>
</resources>

@ -893,6 +893,7 @@ File %1$s contained %2$s.\n\n
<string name="doze_notifications_off">Android will significantly delay notifications while device is in Doze mode</string>
<string name="doze_notifications_on">Android will allow limited interruptions while device is in Doze mode</string>
<string name="no_title">(No title)</string>
<string name="back_button_saves_task">Back button saves task</string>
<string-array name="sync_SPr_interval_entries">
<!-- sync_SPr_interval_entries: Synchronization Intervals -->

@ -27,6 +27,11 @@
android:key="@string/customize_edit_screen"
android:title="@string/customize_edit_screen"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="false"
android:key="@string/p_back_button_saves_task"
android:title="@string/back_button_saves_task" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="true"
android:key="@string/p_show_task_edit_comments"

Loading…
Cancel
Save