Fix 5637927: NPE while trying to do slide show for gmail image attachment

Change-Id: If30aa9798a030a5b97c7ff626f91187d7da93ab5
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index 5d0fd15..ed67b08 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -300,19 +300,33 @@
     }
 
     private void updateMenuOperations() {
-        if (mCurrentPhoto == null || mMenu == null) return;
+        if (mMenu == null) return;
+        MenuItem item = mMenu.findItem(R.id.action_slideshow);
+        if (item != null) {
+            item.setVisible(canDoSlideShow());
+        }
+        if (mCurrentPhoto == null) return;
         int supportedOperations = mCurrentPhoto.getSupportedOperations();
         if (!GalleryUtils.isEditorAvailable((Context) mActivity, "image/*")) {
             supportedOperations &= ~MediaObject.SUPPORT_EDIT;
         }
-        MenuItem item = mMenu.findItem(R.id.action_slideshow);
-        if (item != null) {
-            item.setVisible(mCurrentPhoto.getMediaType() == MediaObject.MEDIA_TYPE_IMAGE);
-        }
 
         MenuExecutor.updateMenuOperation(mMenu, supportedOperations);
     }
 
+    private boolean canDoSlideShow() {
+        if (mMediaSet == null || mCurrentPhoto == null) {
+            return false;
+        }
+        if (mCurrentPhoto.getMediaType() != MediaObject.MEDIA_TYPE_IMAGE) {
+            return false;
+        }
+        if (mMediaSet instanceof MtpDevice) {
+            return false;
+        }
+        return true;
+    }
+
     private void showBars() {
         if (mShowBars) return;
         mShowBars = true;
@@ -401,8 +415,6 @@
     protected boolean onCreateActionBar(Menu menu) {
         MenuInflater inflater = ((Activity) mActivity).getMenuInflater();
         inflater.inflate(R.menu.photo, menu);
-        menu.findItem(R.id.action_slideshow).setVisible(
-                mMediaSet != null && !(mMediaSet instanceof MtpDevice));
         mShareActionProvider = GalleryActionBar.initializeShareActionProvider(menu);
         if (mPendingSharePath != null) updateShareURI(mPendingSharePath);
         mMenu = menu;