Discard from overflow when back button saves is on

pull/996/head
Alex Baker 6 years ago
parent 9cc21a3386
commit 27075edcc8

@ -23,6 +23,7 @@ import android.os.Bundle;
import android.text.format.DateUtils; import android.text.format.DateUtils;
import android.text.method.ScrollingMovementMethod; import android.text.method.ScrollingMovementMethod;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -135,24 +136,21 @@ public final class TaskEditFragment extends InjectingFragment
themeColor = arguments.getParcelable(EXTRA_THEME); themeColor = arguments.getParcelable(EXTRA_THEME);
Toolbar toolbar = binding.toolbar; Toolbar toolbar = binding.toolbar;
final boolean backButtonSavesTask = preferences.backButtonSavesTask(); toolbar.setNavigationIcon(ContextCompat.getDrawable(context, R.drawable.ic_outline_save_24px));
toolbar.setNavigationIcon( toolbar.setNavigationOnClickListener(v -> save());
ContextCompat.getDrawable(
context, boolean backButtonSavesTask = preferences.backButtonSavesTask();
backButtonSavesTask toolbar.inflateMenu(R.menu.menu_task_edit_fragment);
? R.drawable.ic_outline_clear_24px Menu menu = toolbar.getMenu();
: R.drawable.ic_outline_save_24px)); MenuItem delete = menu.findItem(R.id.menu_delete);
toolbar.setNavigationOnClickListener( delete.setVisible(!model.isNew());
v -> { delete.setShowAsAction(
if (backButtonSavesTask) { backButtonSavesTask ? MenuItem.SHOW_AS_ACTION_NEVER : MenuItem.SHOW_AS_ACTION_IF_ROOM);
discardButtonClick(); MenuItem discard = menu.findItem(R.id.menu_discard);
} else { discard.setVisible(backButtonSavesTask);
save(); discard.setShowAsAction(
} model.isNew() ? MenuItem.SHOW_AS_ACTION_IF_ROOM : MenuItem.SHOW_AS_ACTION_NEVER);
});
if (!model.isNew()) {
toolbar.inflateMenu(R.menu.menu_task_edit_fragment);
}
if (savedInstanceState == null) { if (savedInstanceState == null) {
showKeyboard = model.isNew() && Strings.isNullOrEmpty(model.getTitle()); showKeyboard = model.isNew() && Strings.isNullOrEmpty(model.getTitle());
completed = model.isCompleted(); completed = model.isCompleted();

@ -15,12 +15,10 @@ import org.tasks.billing.PurchaseActivity;
import org.tasks.databinding.ActivityTaskerCreateBinding; import org.tasks.databinding.ActivityTaskerCreateBinding;
import org.tasks.injection.ActivityComponent; import org.tasks.injection.ActivityComponent;
import org.tasks.locale.bundle.TaskCreationBundle; import org.tasks.locale.bundle.TaskCreationBundle;
import org.tasks.preferences.Preferences;
public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCompatActivity public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCompatActivity
implements Toolbar.OnMenuItemClickListener { implements Toolbar.OnMenuItemClickListener {
@Inject Preferences preferences;
@Inject Inventory inventory; @Inject Inventory inventory;
@Inject LocalBroadcastManager localBroadcastManager; @Inject LocalBroadcastManager localBroadcastManager;
@ -37,21 +35,8 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
Toolbar toolbar = binding.toolbar.toolbar; Toolbar toolbar = binding.toolbar.toolbar;
toolbar.setTitle(R.string.tasker_create_task); toolbar.setTitle(R.string.tasker_create_task);
final boolean backButtonSavesTask = preferences.backButtonSavesTask(); toolbar.setNavigationIcon(ContextCompat.getDrawable(this, R.drawable.ic_outline_save_24px));
toolbar.setNavigationIcon( toolbar.setNavigationOnClickListener(v -> save());
ContextCompat.getDrawable(
this,
backButtonSavesTask
? R.drawable.ic_outline_clear_24px
: R.drawable.ic_outline_save_24px));
toolbar.setNavigationOnClickListener(
v -> {
if (backButtonSavesTask) {
discardButtonClick();
} else {
save();
}
});
toolbar.setOnMenuItemClickListener(this); toolbar.setOnMenuItemClickListener(this);
toolbar.inflateMenu(R.menu.menu_tasker_create_task); toolbar.inflateMenu(R.menu.menu_tasker_create_task);
themeColor.apply(toolbar); themeColor.apply(toolbar);
@ -118,12 +103,7 @@ public final class TaskerCreateTaskActivity extends AbstractFragmentPluginAppCom
@Override @Override
public void onBackPressed() { public void onBackPressed() {
final boolean backButtonSavesTask = preferences.backButtonSavesTask(); discardButtonClick();
if (backButtonSavesTask) {
save();
} else {
discardButtonClick();
}
} }
private void save() { private void save() {

@ -1,10 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tasks="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_discard"
android:icon="@drawable/ic_outline_clear_24px"
android:title="@string/menu_discard_changes"
app:showAsAction="never" />
<item <item
android:id="@+id/menu_delete" android:id="@+id/menu_delete"
android:icon="@drawable/ic_outline_delete_24px" android:icon="@drawable/ic_outline_delete_24px"
android:title="@string/delete_task" android:title="@string/delete_task"
tasks:showAsAction="ifRoom"/> app:showAsAction="never"/>
</menu> </menu>

@ -352,6 +352,7 @@ File %1$s contained %2$s.\n\n
<string name="date_shortcut_must_come_before">%1$s must come before %2$s</string> <string name="date_shortcut_must_come_before">%1$s must come before %2$s</string>
<string name="date_shortcut_must_come_after">%1$s must come after %2$s</string> <string name="date_shortcut_must_come_after">%1$s must come after %2$s</string>
<string name="discard_changes">Discard changes?</string> <string name="discard_changes">Discard changes?</string>
<string name="menu_discard_changes">Discard changes</string>
<string name="discard">Discard</string> <string name="discard">Discard</string>
<string name="tag_settings">Tag settings</string> <string name="tag_settings">Tag settings</string>
<string name="list_settings">List settings</string> <string name="list_settings">List settings</string>

Loading…
Cancel
Save