diff --git a/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java b/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java
index 4c4ef3350..599263e0d 100644
--- a/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java
+++ b/src/main/java/com/todoroo/astrid/actfm/FilterSettingsActivity.java
@@ -15,8 +15,10 @@ import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
+import android.widget.Toast;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.CustomFilter;
@@ -25,8 +27,8 @@ import com.todoroo.astrid.dao.StoreObjectDao;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ActivityComponent;
-import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.injection.ThemedInjectingAppCompatActivity;
+import org.tasks.preferences.Preferences;
import org.tasks.ui.MenuColorizer;
import javax.inject.Inject;
@@ -44,6 +46,7 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity {
@Inject StoreObjectDao storeObjectDao;
@Inject DialogBuilder dialogBuilder;
+ @Inject Preferences preferences;
@BindView(R.id.tag_name) EditText filterName;
@BindView(R.id.toolbar) Toolbar toolbar;
@@ -61,10 +64,22 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity {
ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true);
- Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_close_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));
supportActionBar.setHomeAsUpIndicator(drawable);
supportActionBar.setTitle(filter.listingTitle);
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (backButtonSavesTask) {
+ discard();
+ } else {
+ save();
+ }
+ }
+ });
}
filterName.setText(filter.listingTitle);
@@ -80,6 +95,7 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity {
String newName = filterName.getText().toString().trim();
if (isEmpty(newName)) {
+ Toast.makeText(this, R.string.name_cannot_be_empty, Toast.LENGTH_LONG).show();
return;
}
@@ -109,18 +125,16 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity {
@Override
public void onBackPressed() {
- discard();
+ if (preferences.backButtonSavesTask()) {
+ save();
+ } else {
+ discard();
+ }
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
- case android.R.id.home:
- discard();
- break;
- case R.id.menu_save:
- save();
- break;
case R.id.delete:
deleteTag();
break;
diff --git a/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java b/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java
index 0d7a7f1f7..971782708 100644
--- a/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java
+++ b/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java
@@ -21,7 +21,9 @@ import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
+import android.widget.Toast;
+import com.google.common.base.Strings;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.dao.MetadataDao;
@@ -37,6 +39,7 @@ import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.ThemedInjectingAppCompatActivity;
+import org.tasks.preferences.Preferences;
import org.tasks.ui.MenuColorizer;
import javax.inject.Inject;
@@ -60,10 +63,10 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity {
@Inject TagDataDao tagDataDao;
@Inject MetadataDao metadataDao;
@Inject DialogBuilder dialogBuilder;
+ @Inject Preferences preferences;
@BindView(R.id.tag_name) EditText tagName;
@BindView(R.id.toolbar) Toolbar toolbar;
- @BindView(R.id.tag_error) TextView tagError;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -83,29 +86,26 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity {
ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true);
- Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_close_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));
supportActionBar.setHomeAsUpIndicator(drawable);
supportActionBar.setTitle(isNewTag ? getString(R.string.new_tag) : tagData.getName());
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (backButtonSavesTask) {
+ discard();
+ } else {
+ save();
+ }
+ }
+ });
}
tagName.setText(tagData.getName());
- tagName.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
-
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- }
-
- @Override
- public void afterTextChanged(Editable s) {
- tagError.setVisibility(clashes() ? View.VISIBLE : View.GONE);
- }
- });
-
String autopopulateName = getIntent().getStringExtra(TOKEN_AUTOPOPULATE_NAME);
if (!isEmpty(autopopulateName)) {
tagName.setText(autopopulateName);
@@ -122,8 +122,7 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity {
return tagName.getText().toString().trim();
}
- private boolean clashes() {
- String newName = getNewName();
+ private boolean clashes(String newName) {
TagData existing = tagDataDao.getTagByName(newName, TagData.PROPERTIES);
return existing != null && tagData.getId() != existing.getId();
}
@@ -133,10 +132,12 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity {
String newName = getNewName();
if (isEmpty(newName)) {
+ Toast.makeText(this, R.string.name_cannot_be_empty, Toast.LENGTH_LONG).show();
return;
}
- if (clashes()) {
+ if (clashes(newName)) {
+ Toast.makeText(this, R.string.tag_already_exists, Toast.LENGTH_LONG).show();
return;
}
@@ -178,18 +179,16 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity {
@Override
public void onBackPressed() {
- discard();
+ if (preferences.backButtonSavesTask()) {
+ save();
+ } else {
+ discard();
+ }
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
- case android.R.id.home:
- discard();
- break;
- case R.id.menu_save:
- save();
- break;
case R.id.delete:
deleteTag();
break;
diff --git a/src/main/res/layout/tag_settings_activity.xml b/src/main/res/layout/tag_settings_activity.xml
index 8c0ad05ce..3de79aba5 100644
--- a/src/main/res/layout/tag_settings_activity.xml
+++ b/src/main/res/layout/tag_settings_activity.xml
@@ -7,57 +7,40 @@