diff --git a/CHANGELOG.md b/CHANGELOG.md index 58c0cb48e6..adc0ebaeab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ ### [Kinnareemimus](https://en.wikipedia.org/wiki/Kinnareemimus) +### Next version + +* Added editing saved search name and color +* Small improvements and minor bug fixes +* Updated libraries +* Updated translations + ### 1.1934 - 2022-07-17 * Added Gmail web OAuth flow diff --git a/app/src/main/assets/CHANGELOG.md b/app/src/main/assets/CHANGELOG.md index 58c0cb48e6..adc0ebaeab 100644 --- a/app/src/main/assets/CHANGELOG.md +++ b/app/src/main/assets/CHANGELOG.md @@ -4,6 +4,13 @@ ### [Kinnareemimus](https://en.wikipedia.org/wiki/Kinnareemimus) +### Next version + +* Added editing saved search name and color +* Small improvements and minor bug fixes +* Updated libraries +* Updated translations + ### 1.1934 - 2022-07-17 * Added Gmail web OAuth flow diff --git a/app/src/main/java/eu/faircode/email/AdapterNavSearch.java b/app/src/main/java/eu/faircode/email/AdapterNavSearch.java index 4ee14d59b4..152821af5f 100644 --- a/app/src/main/java/eu/faircode/email/AdapterNavSearch.java +++ b/app/src/main/java/eu/faircode/email/AdapterNavSearch.java @@ -112,6 +112,8 @@ public class AdapterNavSearch extends RecyclerView.Adapter= 0); @@ -5237,12 +5237,9 @@ public class FragmentMessages extends FragmentBase if (itemId == R.id.menu_search) { onMenuSearch(); return true; - } else if (itemId == R.id.menu_save_search) { + } else if (itemId == R.id.menu_save_search || itemId == R.id.menu_edit_search) { onMenuSaveSearch(); return true; - } else if (itemId == R.id.menu_delete_search) { - onMenuDeleteSearch(); - return true; } else if (itemId == R.id.menu_folders) { // Obsolete onMenuFolders(primary); return true; @@ -5381,22 +5378,6 @@ public class FragmentMessages extends FragmentBase fragment.show(getParentFragmentManager(), "search:save"); } - private void onMenuDeleteSearch() { - if (criteria == null) - return; - - Bundle args = new Bundle(); - args.putString("question", getString(R.string.title_search_delete)); - args.putString("remark", criteria.getTitle(getContext())); - args.putLong("id", criteria.id); - args.putBoolean("warning", true); - - FragmentDialogAsk ask = new FragmentDialogAsk(); - ask.setArguments(args); - ask.setTargetFragment(FragmentMessages.this, REQUEST_DELETE_SEARCH); - ask.show(getParentFragmentManager(), "swipe:delete"); - } - private void onMenuFolders(long account) { if (!isAdded()) return; @@ -5780,7 +5761,14 @@ public class FragmentMessages extends FragmentBase BoundaryCallbackMessages.SearchCriteria criteria = (BoundaryCallbackMessages.SearchCriteria) args.getSerializable("criteria"); - EntitySearch search = new EntitySearch(); + DB db = DB.getInstance(context); + + EntitySearch search = null; + if (criteria.id >= 0) + search = db.search().getSearch(criteria.id); + if (search == null) + search = new EntitySearch(); + search.name = args.getString("name"); search.color = args.getInt("color", Color.TRANSPARENT); search.data = criteria.toJson().toString(); @@ -5788,8 +5776,10 @@ public class FragmentMessages extends FragmentBase if (search.color == Color.TRANSPARENT) search.color = null; - DB db = DB.getInstance(context); - search.id = db.search().insertSearch(search); + if (search.id == null) + search.id = db.search().insertSearch(search); + else + db.search().updateSearch(search); return null; } @@ -5810,10 +5800,11 @@ public class FragmentMessages extends FragmentBase new SimpleTask() { @Override protected Void onExecute(Context context, Bundle args) throws Throwable { - long id = args.getLong("id"); + BoundaryCallbackMessages.SearchCriteria criteria = + (BoundaryCallbackMessages.SearchCriteria) args.getSerializable("criteria"); DB db = DB.getInstance(context); - db.search().deleteSearch(id); + db.search().deleteSearch(criteria.id); return null; } @@ -7804,9 +7795,7 @@ public class FragmentMessages extends FragmentBase case REQUEST_SAVE_SEARCH: if (resultCode == RESULT_OK && data != null) onSaveSearch(data.getBundleExtra("args")); - break; - case REQUEST_DELETE_SEARCH: - if (resultCode == RESULT_OK && data != null) + else if (resultCode == RESULT_FIRST_USER && data != null) onDeleteSearch(data.getBundleExtra("args")); break; case REQUEST_QUICK_ACTIONS: @@ -10527,8 +10516,8 @@ public class FragmentMessages extends FragmentBase } }); - etName.setText(criteria.getTitle(context)); - btnColor.setColor(Color.TRANSPARENT); + etName.setText(criteria.name == null ? criteria.getTitle(context) : criteria.name); + btnColor.setColor(criteria.color); return new AlertDialog.Builder(context) .setView(dview) @@ -10546,6 +10535,12 @@ public class FragmentMessages extends FragmentBase sendResult(Activity.RESULT_CANCELED); } }) + .setNeutralButton(R.string.title_delete, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + sendResult(Activity.RESULT_FIRST_USER); + } + }) .create(); } diff --git a/app/src/main/res/menu/menu_messages.xml b/app/src/main/res/menu/menu_messages.xml index 582bfec57c..ad281130c2 100644 --- a/app/src/main/res/menu/menu_messages.xml +++ b/app/src/main/res/menu/menu_messages.xml @@ -15,8 +15,8 @@ app:showAsAction="always" /> diff --git a/metadata/en-US/changelogs/1934.txt b/metadata/en-US/changelogs/1934.txt index c5b40f697f..9c90f76f74 100644 --- a/metadata/en-US/changelogs/1934.txt +++ b/metadata/en-US/changelogs/1934.txt @@ -4,6 +4,13 @@ Changelog Kinnareemimus +Next version + +* Added editing saved search name and color +* Small improvements and minor bug fixes +* Updated libraries +* Updated translations + 1.1934 - 2022-07-17 * Added Gmail web OAuth flow