Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e7234ce authored by Ben Lin's avatar Ben Lin
Browse files

Fix a crash happening on a context menu.

When an activity gets a callback for onContextItemSelected, it first
gets dibs on handling it, and then it propagates the call to -every-
fragment it is tied to. This poses a problem since RootsFragment and
DirectoryFragment don't necessarily handle each other's menu items well,
which can cause NPEs. This is some temporary fix for it.

Bug: 30092676
Change-Id: I3f268c9c9580504b78581ad92a24c9a99c4a0daf
(cherry picked from commit 3e1699f3a3f3d0378d758e3b0d430165867eb89e)
parent 73867f93
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -298,6 +298,13 @@ public class RootsFragment extends Fragment implements ItemDragListener.DragHost
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo) item.getMenuInfo();
        // There is a possibility that this is called from DirectoryFragment since
        // all fragments' onContextItemSelected gets called when any menu item is selected
        // This is to guard against it since DirectoryFragment's RecylerView does not have a
        // menuInfo
        if (adapterMenuInfo == null) {
            return false;
        }
        final RootItem rootItem = (RootItem) mAdapter.getItem(adapterMenuInfo.position);
        switch (item.getItemId()) {
            case R.id.menu_eject_root: