From babeb01863a098e46d5b7a79f37b4a7b6ef945c3 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 20 Apr 2020 09:07:13 +0200 Subject: [PATCH] Show empty trash/spam in action bar if room --- .../eu/faircode/email/FragmentMessages.java | 59 ++++++++++--------- app/src/main/res/menu/menu_messages.xml | 22 +++---- 2 files changed, 42 insertions(+), 39 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index ec38cbf260..b44c7e7d11 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -3436,6 +3436,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. menu.findItem(R.id.menu_sort_on_snoozed).setVisible(false); } + menu.findItem(R.id.menu_empty_trash).setVisible(EntityFolder.TRASH.equals(type) && folder); + menu.findItem(R.id.menu_empty_spam).setVisible(EntityFolder.JUNK.equals(type) && folder); + if ("time".equals(sort)) menu.findItem(R.id.menu_sort_on_time).setChecked(true); else if ("unread".equals(sort)) @@ -3475,8 +3478,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. language_detection && folder && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q); menu.findItem(R.id.menu_select_all).setVisible(folder); menu.findItem(R.id.menu_select_found).setVisible(viewType == AdapterMessage.ViewType.SEARCH); - menu.findItem(R.id.menu_empty_trash).setVisible(EntityFolder.TRASH.equals(type) && folder); - menu.findItem(R.id.menu_empty_spam).setVisible(EntityFolder.JUNK.equals(type) && folder); menu.findItem(R.id.menu_force_sync).setVisible(viewType == AdapterMessage.ViewType.UNIFIED); @@ -3503,6 +3504,14 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. onMenuFolders(primary); return true; + case R.id.menu_empty_trash: + onMenuEmpty(EntityFolder.TRASH); + return true; + + case R.id.menu_empty_spam: + onMenuEmpty(EntityFolder.JUNK); + return true; + case R.id.menu_sort_on_time: item.setChecked(true); onMenuSort("time"); @@ -3589,14 +3598,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. onMenuSelectAll(); return true; - case R.id.menu_empty_trash: - onMenuEmpty(EntityFolder.TRASH); - return true; - - case R.id.menu_empty_spam: - onMenuEmpty(EntityFolder.JUNK); - return true; - case R.id.menu_force_sync: onMenuForceSync(); return true; @@ -3631,6 +3632,25 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. fragmentTransaction.commit(); } + private void onMenuEmpty(String type) { + Bundle aargs = new Bundle(); + if (EntityFolder.TRASH.equals(type)) + aargs.putString("question", getString( + account < 0 ? R.string.title_empty_trash_all_ask : R.string.title_empty_trash_ask)); + else if (EntityFolder.JUNK.equals(type)) + aargs.putString("question", getString( + account < 0 ? R.string.title_empty_spam_all_ask : R.string.title_empty_spam_ask)); + else + throw new IllegalArgumentException("Invalid folder type=" + type); + aargs.putLong("account", account); + aargs.putString("type", type); + + FragmentDialogAsk ask = new FragmentDialogAsk(); + ask.setArguments(aargs); + ask.setTargetFragment(this, FragmentMessages.REQUEST_EMPTY_FOLDER); + ask.show(getParentFragmentManager(), "messages:empty"); + } + private void onMenuSort(String sort) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); prefs.edit().putString("sort", sort).apply(); @@ -3766,25 +3786,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. }); } - private void onMenuEmpty(String type) { - Bundle aargs = new Bundle(); - if (EntityFolder.TRASH.equals(type)) - aargs.putString("question", getString( - account < 0 ? R.string.title_empty_trash_all_ask : R.string.title_empty_trash_ask)); - else if (EntityFolder.JUNK.equals(type)) - aargs.putString("question", getString( - account < 0 ? R.string.title_empty_spam_all_ask : R.string.title_empty_spam_ask)); - else - throw new IllegalArgumentException("Invalid folder type=" + type); - aargs.putLong("account", account); - aargs.putString("type", type); - - FragmentDialogAsk ask = new FragmentDialogAsk(); - ask.setArguments(aargs); - ask.setTargetFragment(this, FragmentMessages.REQUEST_EMPTY_FOLDER); - ask.show(getParentFragmentManager(), "messages:empty"); - } - private void onMenuForceSync() { ServiceSynchronize.reload(getContext(), null, true, "force sync"); ToastEx.makeText(getContext(), R.string.title_executing, Toast.LENGTH_LONG).show(); diff --git a/app/src/main/res/menu/menu_messages.xml b/app/src/main/res/menu/menu_messages.xml index 04c7217edb..b5aedf5d79 100644 --- a/app/src/main/res/menu/menu_messages.xml +++ b/app/src/main/res/menu/menu_messages.xml @@ -14,6 +14,18 @@ android:title="@string/title_folder_primary" app:showAsAction="always" /> + + + + - - - -