Prevent crash

pull/147/head
M66B 6 years ago
parent 079dc572f0
commit 8ffb1c4156

@ -67,6 +67,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.PopupMenu; import androidx.appcompat.widget.PopupMenu;
import androidx.appcompat.widget.SearchView; import androidx.appcompat.widget.SearchView;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleOwner;
@ -447,22 +448,25 @@ public class FragmentMessages extends FragmentEx {
selectionTracker.addObserver(new SelectionTracker.SelectionObserver() { selectionTracker.addObserver(new SelectionTracker.SelectionObserver() {
@Override @Override
public void onSelectionChanged() { public void onSelectionChanged() {
try { // Workaround AndroidX bug
ViewModelMessages modelMessages = ViewModelProviders.of(getActivity()).get(ViewModelMessages.class); FragmentActivity activity = getActivity();
LifecycleOwner owner = (viewType == AdapterMessage.ViewType.THREAD ? getViewLifecycleOwner() : getActivity()); if (activity != null) {
ViewModelMessages modelMessages = ViewModelProviders.of(activity).get(ViewModelMessages.class);
LifecycleOwner owner = (viewType == AdapterMessage.ViewType.THREAD ? getViewLifecycleOwner() : activity);
if (selectionTracker.hasSelection())
modelMessages.removeObservers(viewType, owner);
else
modelMessages.observe(viewType, owner, observer);
}
if (selectionTracker.hasSelection()) { if (selectionTracker.hasSelection()) {
swipeRefresh.setEnabled(false); swipeRefresh.setEnabled(false);
modelMessages.removeObservers(viewType, owner);
fabMore.show(); fabMore.show();
} else { } else {
predicate.clearAccount(); predicate.clearAccount();
fabMore.hide(); fabMore.hide();
modelMessages.observe(viewType, owner, observer);
swipeRefresh.setEnabled(pull); swipeRefresh.setEnabled(pull);
} }
} catch (IllegalStateException ex) {
Log.w(ex);
}
} }
}); });
} }

Loading…
Cancel
Save