From ccda71d25ff28e2e5b38795c8beab67db6e2c1a5 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 4 Feb 2019 18:34:36 +0000 Subject: [PATCH] Revert "Remove selection tracker workaround" This reverts commit 7e7eb8a8aea08adf8ef9e2f45e5f699fd96be167. --- .../java/eu/faircode/email/FragmentMessages.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 99a150996d..06a5f7caf6 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -441,12 +441,24 @@ public class FragmentMessages extends FragmentBase { @Override public void onSelectionChanged() { SelectionTracker tracker = selectionTracker; - if (tracker == null) // destroyed + if (tracker == null) return; FragmentActivity activity = getActivity(); - if (activity != null) + if (activity != null) { + try { + ViewModelMessages modelMessages = ViewModelProviders.of(activity).get(ViewModelMessages.class); + if (tracker.hasSelection()) + modelMessages.removeObservers(viewType, getViewLifecycleOwner()); + else + modelMessages.observe(viewType, getViewLifecycleOwner(), observer); + } catch (IllegalStateException ex) { + // getViewLifecycleOwner + Log.w(ex); + } + activity.invalidateOptionsMenu(); + } if (tracker.hasSelection()) { swipeRefresh.setEnabled(false);