OSDN Git Service

Fix sharing as photo option for 360 degree panorama
authorMangesh Ghiware <mghiware@google.com>
Tue, 9 Oct 2012 06:55:38 +0000 (23:55 -0700)
committerMangesh Ghiware <mghiware@google.com>
Tue, 9 Oct 2012 14:45:22 +0000 (07:45 -0700)
Bug: 7310190
Bug: 7302023

Also, fix disappearing sharing menu item in action bar.

Change-Id: Id555426cce5f25d21405c885b6f7331d238cdd07

src/com/android/gallery3d/app/GalleryActionBar.java
src/com/android/gallery3d/app/PhotoPage.java

index 620add6..4b9ef53 100644 (file)
@@ -380,8 +380,6 @@ public class GalleryActionBar implements OnNavigationListener {
     }
 
     private Menu mActionBarMenu;
-    private MenuItem mSharePanoramaMenuItem;
-    private MenuItem mShareMenuItem;
     private ShareActionProvider mSharePanoramaActionProvider;
     private ShareActionProvider mShareActionProvider;
 
@@ -389,15 +387,21 @@ public class GalleryActionBar implements OnNavigationListener {
         mActivity.getMenuInflater().inflate(menuRes, menu);
         mActionBarMenu = menu;
 
-        mSharePanoramaMenuItem = menu.findItem(R.id.action_share_panorama);
-        mSharePanoramaActionProvider = (ShareActionProvider)
-            mSharePanoramaMenuItem.getActionProvider();
-        mSharePanoramaActionProvider.setShareHistoryFileName("panorama_share_history.xml");
+        MenuItem item = menu.findItem(R.id.action_share_panorama);
+        if (item != null) {
+            mSharePanoramaActionProvider = (ShareActionProvider)
+                item.getActionProvider();
+            mSharePanoramaActionProvider
+                .setShareHistoryFileName("panorama_share_history.xml");
+        }
 
-        mShareMenuItem = menu.findItem(R.id.action_share);
-        mShareActionProvider = (ShareActionProvider)
-            mShareMenuItem.getActionProvider();
-        mShareActionProvider.setShareHistoryFileName("share_history.xml");
+        item = menu.findItem(R.id.action_share);
+        if (item != null) {
+            mShareActionProvider = (ShareActionProvider)
+                item.getActionProvider();
+            mShareActionProvider
+                .setShareHistoryFileName("share_history.xml");
+        }
     }
 
     public Menu getMenu() {
@@ -405,23 +409,10 @@ public class GalleryActionBar implements OnNavigationListener {
     }
 
     public void setShareIntents(Intent sharePanoramaIntent, Intent shareIntent) {
-        // if panorama sharing is enabled, rename share to share as photo,
-        // and move it to overflow
-        if (mSharePanoramaMenuItem != null) {
-            if (sharePanoramaIntent != null) {
-                mActivity.invalidateOptionsMenu();
-                mShareMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
-                mShareMenuItem.setTitle(
-                        mContext.getResources().getString(R.string.share_as_photo));
-            } else {
-                mSharePanoramaMenuItem.setVisible(false);
-                mShareMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
-                mShareMenuItem.setTitle(
-                        mContext.getResources().getString(R.string.share));
-            }
+        if (mSharePanoramaActionProvider != null) {
             mSharePanoramaActionProvider.setShareIntent(sharePanoramaIntent);
         }
-        if (mShareMenuItem != null) {
+        if (mShareActionProvider != null) {
             mShareActionProvider.setShareIntent(shareIntent);
         }
     }
index 5c9c598..4537eaf 100644 (file)
@@ -645,6 +645,18 @@ public class PhotoPage extends ActivityState implements
             supportedOperations &= ~MediaObject.SUPPORT_EDIT;
         }
         MenuExecutor.updateMenuOperation(menu, supportedOperations);
+        if ((supportedOperations & MediaObject.SUPPORT_PANORAMA360) != 0) {
+            mActivity.invalidateOptionsMenu();
+            item = menu.findItem(R.id.action_share);
+            item.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+            item.setTitle(
+                    mActivity.getResources().getString(R.string.share_as_photo));
+        } else if ((supportedOperations & MediaObject.SUPPORT_SHARE) != 0) {
+            item = menu.findItem(R.id.action_share);
+            item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+            item.setTitle(
+                    mActivity.getResources().getString(R.string.share));
+        }
     }
 
     private boolean canDoSlideShow() {