Prevent crash

pull/147/head
M66B 7 years ago
parent 97c4d39a0f
commit 2ac54627a0

@ -291,7 +291,7 @@ public class FragmentMessages extends FragmentBase {
public void onSelectionChanged() { public void onSelectionChanged() {
// Workaround AndroidX bug // Workaround AndroidX bug
FragmentActivity activity = getActivity(); FragmentActivity activity = getActivity();
if (activity != null) if (activity != null) {
try { try {
ViewModelMessages modelMessages = ViewModelProviders.of(activity).get(ViewModelMessages.class); ViewModelMessages modelMessages = ViewModelProviders.of(activity).get(ViewModelMessages.class);
if (selectionTracker.hasSelection()) if (selectionTracker.hasSelection())
@ -303,6 +303,9 @@ public class FragmentMessages extends FragmentBase {
Log.w(ex); Log.w(ex);
} }
activity.invalidateOptionsMenu();
}
if (selectionTracker.hasSelection()) { if (selectionTracker.hasSelection()) {
swipeRefresh.setEnabled(false); swipeRefresh.setEnabled(false);
fabMore.show(); fabMore.show();
@ -1553,14 +1556,16 @@ public class FragmentMessages extends FragmentBase {
public void onPrepareOptionsMenu(Menu menu) { public void onPrepareOptionsMenu(Menu menu) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean selection = (selectionTracker != null && selectionTracker.hasSelection());
menu.findItem(R.id.menu_search).setVisible( menu.findItem(R.id.menu_search).setVisible(
folder >= 0 && viewType != AdapterMessage.ViewType.SEARCH); folder >= 0 && viewType != AdapterMessage.ViewType.SEARCH);
menu.findItem(R.id.menu_folders).setVisible(primary >= 0); menu.findItem(R.id.menu_folders).setVisible(primary >= 0);
menu.findItem(R.id.menu_folders).setIcon(connected ? R.drawable.baseline_folder_24 : R.drawable.baseline_folder_open_24); menu.findItem(R.id.menu_folders).setIcon(connected ? R.drawable.baseline_folder_24 : R.drawable.baseline_folder_open_24);
menu.findItem(R.id.menu_sort_on).setVisible( menu.findItem(R.id.menu_sort_on).setVisible(!selection &&
viewType == AdapterMessage.ViewType.UNIFIED || viewType == AdapterMessage.ViewType.FOLDER); (viewType == AdapterMessage.ViewType.UNIFIED || viewType == AdapterMessage.ViewType.FOLDER));
String sort = prefs.getString("sort", "time"); String sort = prefs.getString("sort", "time");
if ("time".equals(sort)) if ("time".equals(sort))
@ -1572,13 +1577,16 @@ public class FragmentMessages extends FragmentBase {
else if ("sender".equals(sort)) else if ("sender".equals(sort))
menu.findItem(R.id.menu_sort_on_sender).setChecked(true); menu.findItem(R.id.menu_sort_on_sender).setChecked(true);
menu.findItem(R.id.menu_zoom).setVisible(!selection);
menu.findItem(R.id.menu_compact).setVisible(!selection);
menu.findItem(R.id.menu_compact).setChecked(prefs.getBoolean("compact", false)); menu.findItem(R.id.menu_compact).setChecked(prefs.getBoolean("compact", false));
menu.findItem(R.id.menu_snoozed).setVisible(!outbox && menu.findItem(R.id.menu_snoozed).setVisible(!selection && !outbox &&
(viewType == AdapterMessage.ViewType.UNIFIED || viewType == AdapterMessage.ViewType.FOLDER)); (viewType == AdapterMessage.ViewType.UNIFIED || viewType == AdapterMessage.ViewType.FOLDER));
menu.findItem(R.id.menu_snoozed).setChecked(prefs.getBoolean("snoozed", false)); menu.findItem(R.id.menu_snoozed).setChecked(prefs.getBoolean("snoozed", false));
menu.findItem(R.id.menu_move_sent).setVisible(outbox); menu.findItem(R.id.menu_move_sent).setVisible(!selection && outbox);
super.onPrepareOptionsMenu(menu); super.onPrepareOptionsMenu(menu);
} }

Loading…
Cancel
Save