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
diff --git a/src/com/android/documentsui/RootsFragment.java b/src/com/android/documentsui/RootsFragment.java
index ac33288..3f189ee 100644
--- a/src/com/android/documentsui/RootsFragment.java
+++ b/src/com/android/documentsui/RootsFragment.java
@@ -281,8 +281,15 @@
     @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()) {
+        switch (item.getItemId()) {
             case R.id.menu_eject_root:
                 final View ejectIcon = adapterMenuInfo.targetView.findViewById(R.id.eject_icon);
                 ejectClicked(ejectIcon, rootItem.root);