|
|
|
@ -1288,15 +1288,18 @@ public class FragmentMessages extends FragmentBase
|
|
|
|
|
boolean outbox = EntityFolder.OUTBOX.equals(type);
|
|
|
|
|
boolean ascending = prefs.getBoolean(getSortOrder(getContext(), viewType, type), outbox);
|
|
|
|
|
boolean filter_duplicates = prefs.getBoolean("filter_duplicates", true);
|
|
|
|
|
boolean filter_sent = prefs.getBoolean("filter_sent", false);
|
|
|
|
|
boolean filter_trash = prefs.getBoolean("filter_trash", false);
|
|
|
|
|
|
|
|
|
|
if (viewType != AdapterMessage.ViewType.THREAD)
|
|
|
|
|
if (viewType != AdapterMessage.ViewType.THREAD) {
|
|
|
|
|
filter_sent = false;
|
|
|
|
|
filter_trash = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
adapter = new AdapterMessage(
|
|
|
|
|
this, type, found, searched, searchedPartial, viewType,
|
|
|
|
|
compact, zoom, large_buttons, sort, ascending,
|
|
|
|
|
filter_duplicates, filter_trash,
|
|
|
|
|
filter_duplicates, filter_sent, filter_trash,
|
|
|
|
|
iProperties);
|
|
|
|
|
if (viewType == AdapterMessage.ViewType.THREAD)
|
|
|
|
|
adapter.setStateRestorationPolicy(RecyclerView.Adapter.StateRestorationPolicy.PREVENT);
|
|
|
|
@ -6372,6 +6375,7 @@ public class FragmentMessages extends FragmentBase
|
|
|
|
|
boolean filter_snoozed = prefs.getBoolean(getFilter(context, "snoozed", viewType, type), true);
|
|
|
|
|
boolean filter_deleted = prefs.getBoolean(getFilter(context, "deleted", viewType, type), false);
|
|
|
|
|
boolean filter_duplicates = prefs.getBoolean("filter_duplicates", true);
|
|
|
|
|
boolean filter_sent = prefs.getBoolean("filter_sent", false);
|
|
|
|
|
boolean filter_trash = prefs.getBoolean("filter_trash", false);
|
|
|
|
|
boolean language_detection = prefs.getBoolean("language_detection", false);
|
|
|
|
|
String filter_language = prefs.getString("filter_language", null);
|
|
|
|
@ -6475,6 +6479,7 @@ public class FragmentMessages extends FragmentBase
|
|
|
|
|
menu.findItem(R.id.menu_filter_snoozed).setVisible(folder && !drafts);
|
|
|
|
|
menu.findItem(R.id.menu_filter_deleted).setVisible(folder && !perform_expunge);
|
|
|
|
|
menu.findItem(R.id.menu_filter_duplicates).setVisible(viewType == AdapterMessage.ViewType.THREAD);
|
|
|
|
|
menu.findItem(R.id.menu_filter_sent).setVisible(viewType == AdapterMessage.ViewType.THREAD);
|
|
|
|
|
menu.findItem(R.id.menu_filter_trash).setVisible(viewType == AdapterMessage.ViewType.THREAD);
|
|
|
|
|
|
|
|
|
|
menu.findItem(R.id.menu_filter_seen).setChecked(filter_seen);
|
|
|
|
@ -6484,6 +6489,7 @@ public class FragmentMessages extends FragmentBase
|
|
|
|
|
menu.findItem(R.id.menu_filter_deleted).setChecked(filter_deleted);
|
|
|
|
|
menu.findItem(R.id.menu_filter_language).setVisible(language_detection && folder);
|
|
|
|
|
menu.findItem(R.id.menu_filter_duplicates).setChecked(filter_duplicates);
|
|
|
|
|
menu.findItem(R.id.menu_filter_sent).setChecked(filter_sent);
|
|
|
|
|
menu.findItem(R.id.menu_filter_trash).setChecked(filter_trash);
|
|
|
|
|
|
|
|
|
|
SpannableStringBuilder ssbZoom = new SpannableStringBuilder(getString(R.string.title_zoom));
|
|
|
|
@ -6658,6 +6664,9 @@ public class FragmentMessages extends FragmentBase
|
|
|
|
|
} else if (itemId == R.id.menu_filter_duplicates) {
|
|
|
|
|
onMenuFilterDuplicates(!item.isChecked());
|
|
|
|
|
return true;
|
|
|
|
|
} else if (itemId == R.id.menu_filter_sent) {
|
|
|
|
|
onMenuFilterSent(!item.isChecked());
|
|
|
|
|
return true;
|
|
|
|
|
} else if (itemId == R.id.menu_filter_trash) {
|
|
|
|
|
onMenuFilterTrash(!item.isChecked());
|
|
|
|
|
return true;
|
|
|
|
@ -6945,6 +6954,13 @@ public class FragmentMessages extends FragmentBase
|
|
|
|
|
adapter.setFilterDuplicates(filter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void onMenuFilterSent(boolean filter) {
|
|
|
|
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
|
|
|
|
prefs.edit().putBoolean("filter_sent", filter).apply();
|
|
|
|
|
invalidateOptionsMenu();
|
|
|
|
|
adapter.setFilterSent(filter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void onMenuFilterTrash(boolean filter) {
|
|
|
|
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
|
|
|
|
prefs.edit().putBoolean("filter_trash", filter).apply();
|
|
|
|
|