Change display of 360 panorama button

Bug: 7300866
-Move pano button to center and make larger
-Pano button visible even when in full-screen mode
-Show edit button only when image editor is available
-Correctly hide bottom controls when switching from
 filmstrip mode to grid mode
Change-Id: I485b1988733bedd0c03e89a261a6ce80be46b9bc
diff --git a/res/layout/photopage_bottom_controls.xml b/res/layout/photopage_bottom_controls.xml
index 5b80cf2..434c598 100644
--- a/res/layout/photopage_bottom_controls.xml
+++ b/res/layout/photopage_bottom_controls.xml
@@ -15,21 +15,18 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentLeft="true"
+                android:layout_alignParentBottom="true"
                 android:paddingTop="5dp"
                 android:paddingBottom="5dp"
                 android:paddingLeft="15dp"
                 android:paddingRight="15dp"
                 android:visibility="gone"/>
-        <ImageButton
+        <ImageView
                 android:id="@+id/photopage_bottom_control_panorama"
                 android:src="@drawable/ic_menu_photosphere"
-                android:background="@drawable/photopage_bottom_button_background"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:paddingTop="5dp"
-                android:paddingBottom="5dp"
-                android:paddingLeft="15dp"
-                android:paddingRight="15dp"
+                android:layout_width="70dp"
+                android:layout_height="70dp"
+                android:layout_centerHorizontal="true"
+                android:layout_alignParentBottom="true"
                 android:visibility="gone"/>
 </RelativeLayout>
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index a219f51..cd8b802 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -507,14 +507,18 @@
     }
 
     public boolean canDisplayBottomControls() {
-        return mShowBars && !mPhotoView.getFilmMode();
+        return mIsActive && !mPhotoView.getFilmMode();
     }
 
     public boolean canDisplayBottomControl(int control) {
         if (mCurrentPhoto == null) return false;
         switch(control) {
             case R.id.photopage_bottom_control_edit:
-                return mCurrentPhoto.getMediaType() == MediaObject.MEDIA_TYPE_IMAGE;
+                return mHaveImageEditor && mShowBars
+                        && (mCurrentPhoto.getSupportedOperations()
+                        & MediaItem.SUPPORT_EDIT) != 0
+                        && mCurrentPhoto.getMediaType()
+                        == MediaObject.MEDIA_TYPE_IMAGE;
             case R.id.photopage_bottom_control_panorama:
                 return (mCurrentPhoto.getSupportedOperations()
                         & MediaItem.SUPPORT_PANORAMA) != 0;
@@ -1189,6 +1193,10 @@
         }
         mPhotoView.pause();
         mHandler.removeMessages(MSG_HIDE_BARS);
+        mHandler.removeMessages(MSG_REFRESH_BOTTOM_CONTROLS);
+        if (mBottomControls != null) {
+            mBottomControls.refresh();
+        }
         mActionBar.removeOnMenuVisibilityListener(mMenuVisibilityListener);
         if (mShowSpinner) {
             mActionBar.disableAlbumModeMenu(true);
@@ -1275,6 +1283,9 @@
         mActionBar.setDisplayOptions(
                 ((mSecureAlbum == null) && (mSetPathString != null)), false);
         mActionBar.addOnMenuVisibilityListener(mMenuVisibilityListener);
+        if (mBottomControls != null) {
+            mBottomControls.refresh();
+        }
         if (mShowSpinner) {
             mActionBar.enableAlbumModeMenu(
                     GalleryActionBar.ALBUM_FILMSTRIP_MODE_SELECTED, this);