mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-06 00:53:26 +02:00
Show empty trash/spam in action bar if room
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user