Show empty trash/spam in action bar if room

This commit is contained in:
M66B
2020-04-20 09:07:13 +02:00
parent 938eba8973
commit babeb01863
2 changed files with 42 additions and 39 deletions

View File

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