Show empty trash/spam in action bar if room

pull/178/head
M66B 4 years ago
parent 938eba8973
commit babeb01863

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

@ -14,6 +14,18 @@
android:title="@string/title_folder_primary"
app:showAsAction="always" />
<item
android:id="@+id/menu_empty_trash"
android:icon="@drawable/baseline_delete_24"
android:title="@string/title_empty_trash"
app:showAsAction="ifRoom" />
<item
android:id="@+id/menu_empty_spam"
android:icon="@drawable/baseline_delete_24"
android:title="@string/title_empty_spam"
app:showAsAction="ifRoom" />
<item
android:id="@+id/menu_sort_on"
android:icon="@drawable/baseline_sort_24"
@ -116,16 +128,6 @@
android:title="@string/title_select_found"
app:showAsAction="never" />
<item
android:id="@+id/menu_empty_trash"
android:title="@string/title_empty_trash"
app:showAsAction="never" />
<item
android:id="@+id/menu_empty_spam"
android:title="@string/title_empty_spam"
app:showAsAction="never" />
<item
android:id="@+id/menu_force_sync"
android:title="@string/title_force_sync"

Loading…
Cancel
Save