diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index b68a13d67f..2b834d167b 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -441,7 +441,7 @@ public class FragmentMessages extends FragmentBase { @Override public void onSelectionChanged() { SelectionTracker tracker = selectionTracker; - if (tracker == null) + if (tracker == null) // destroyed return; FragmentActivity activity = getActivity(); @@ -476,6 +476,8 @@ public class FragmentMessages extends FragmentBase { @Override public void onDestroy() { + if (selectionPredicate != null) + selectionPredicate.destroy(); selectionTracker = null; super.onDestroy(); } diff --git a/app/src/main/java/eu/faircode/email/SelectionPredicateMessage.java b/app/src/main/java/eu/faircode/email/SelectionPredicateMessage.java index 671789ab89..8518472efc 100644 --- a/app/src/main/java/eu/faircode/email/SelectionPredicateMessage.java +++ b/app/src/main/java/eu/faircode/email/SelectionPredicateMessage.java @@ -25,10 +25,12 @@ import androidx.recyclerview.widget.RecyclerView; public class SelectionPredicateMessage extends SelectionTracker.SelectionPredicate { private boolean enabled; + private boolean destroyed; private RecyclerView recyclerView; SelectionPredicateMessage(RecyclerView recyclerView) { this.enabled = true; + this.destroyed = false; this.recyclerView = recyclerView; } @@ -36,6 +38,10 @@ public class SelectionPredicateMessage extends SelectionTracker.SelectionPredica this.enabled = enabled; } + void destroy() { + this.destroyed = true; + } + @Override public boolean canSetStateForKey(@NonNull Long key, boolean nextState) { if (!enabled) @@ -66,6 +72,6 @@ public class SelectionPredicateMessage extends SelectionTracker.SelectionPredica @Override public boolean canSelectMultiple() { - return true; + return !destroyed; } } \ No newline at end of file