Merge "hide popupmenu during rotate" into gb-ub-photos-carlsbad
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index ab3007c..3807e1d 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -60,6 +60,7 @@
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.FrameLayout;
+import android.widget.PopupMenu;
 import android.widget.ShareActionProvider;
 import android.widget.ShareActionProvider.OnShareTargetSelectedListener;
 import android.widget.Spinner;
@@ -129,7 +130,7 @@
 
 public class FilterShowActivity extends FragmentActivity implements OnItemClickListener,
         OnShareTargetSelectedListener, DialogInterface.OnShowListener,
-        DialogInterface.OnDismissListener{
+        DialogInterface.OnDismissListener, PopupMenu.OnDismissListener{
 
     private String mAction = "";
     MasterImage mMasterImage = null;
@@ -192,6 +193,7 @@
     private boolean mIsBound = false;
     private Menu mMenu;
     private DialogInterface mCurrentDialog = null;
+    private PopupMenu mCurrentMenu = null;
     private boolean mLoadingVisible = true;
 
     public ProcessingService getProcessingService() {
@@ -712,6 +714,20 @@
         return findViewById(id);
     }
 
+    public void onShowMenu(PopupMenu menu) {
+        mCurrentMenu = menu;
+        menu.setOnDismissListener(this);
+    }
+
+    @Override
+    public void onDismiss(PopupMenu popupMenu){
+        if (mCurrentMenu == null) {
+            return;
+        }
+        mCurrentMenu.setOnDismissListener(null);
+        mCurrentMenu = null;
+    }
+
     @Override
     public void onShow(DialogInterface dialog) {
         mCurrentDialog = dialog;
@@ -1241,6 +1257,10 @@
         fillCategories();
         loadMainPanel();
 
+        if (mCurrentMenu != null) {
+            mCurrentMenu.dismiss();
+            mCurrentMenu = null;
+        }
         if (mCurrentDialog != null) {
             mCurrentDialog.dismiss();
             mCurrentDialog = null;
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorChanSat.java b/src/com/android/gallery3d/filtershow/editors/EditorChanSat.java
index e806a5a..abf0a69 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorChanSat.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorChanSat.java
@@ -30,6 +30,7 @@
 
 import android.widget.TextView;
 import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.FilterShowActivity;
 import com.android.gallery3d.filtershow.controller.BasicParameterStyle;
 import com.android.gallery3d.filtershow.controller.BitmapCaller;
 import com.android.gallery3d.filtershow.controller.FilterView;
@@ -115,6 +116,7 @@
                 @Override
                 public void onClick(View arg0) {
                     popupMenu.show();
+                    ((FilterShowActivity)mContext).onShowMenu(popupMenu);
                 }
             });
             mButton.setListener(this);
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorColorBorder.java b/src/com/android/gallery3d/filtershow/editors/EditorColorBorder.java
index 8cdad7e..a94b203 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorColorBorder.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorColorBorder.java
@@ -33,6 +33,7 @@
 import android.widget.SeekBar;
 
 import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.FilterShowActivity;
 import com.android.gallery3d.filtershow.controller.BitmapCaller;
 import com.android.gallery3d.filtershow.controller.ColorChooser;
 import com.android.gallery3d.filtershow.controller.FilterView;
@@ -138,6 +139,7 @@
             }
         });
         popupMenu.show();
+        ((FilterShowActivity)mContext).onShowMenu(popupMenu);
     }
 
     protected void selectMenuItem(MenuItem item) {
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorCrop.java b/src/com/android/gallery3d/filtershow/editors/EditorCrop.java
index 1e025d8..6b19d3c 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorCrop.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorCrop.java
@@ -28,6 +28,7 @@
 import android.widget.PopupMenu;
 
 import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.FilterShowActivity;
 import com.android.gallery3d.filtershow.filters.FilterCropRepresentation;
 import com.android.gallery3d.filtershow.filters.FilterRepresentation;
 import com.android.gallery3d.filtershow.imageshow.ImageCrop;
@@ -140,6 +141,7 @@
             }
         });
         popupMenu.show();
+        ((FilterShowActivity)mContext).onShowMenu(popupMenu);
     }
 
     @Override
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorDraw.java b/src/com/android/gallery3d/filtershow/editors/EditorDraw.java
index 77e7750..58bde12 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorDraw.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorDraw.java
@@ -38,6 +38,7 @@
 import android.widget.SeekBar;
 
 import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.FilterShowActivity;
 import com.android.gallery3d.filtershow.colorpicker.ColorHueView;
 import com.android.gallery3d.filtershow.colorpicker.ColorListener;
 import com.android.gallery3d.filtershow.colorpicker.ColorOpacityView;
@@ -192,7 +193,7 @@
             });
         }
         popupMenu.show();
-
+        ((FilterShowActivity)mContext).onShowMenu(popupMenu);
     }
 
     protected void selectMenuItem(MenuItem item) {
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorGrad.java b/src/com/android/gallery3d/filtershow/editors/EditorGrad.java
index 80c4303..0591216 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorGrad.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorGrad.java
@@ -31,6 +31,7 @@
 import android.widget.ToggleButton;
 
 import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.FilterShowActivity;
 import com.android.gallery3d.filtershow.controller.Control;
 import com.android.gallery3d.filtershow.controller.FilterView;
 import com.android.gallery3d.filtershow.controller.Parameter;
@@ -254,6 +255,7 @@
             setUpPopupMenu(button);
         }
         mPopupMenu.show();
+        ((FilterShowActivity)mContext).onShowMenu(mPopupMenu);
     }
 
     private void setUpPopupMenu(Button button) {
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorVignette.java b/src/com/android/gallery3d/filtershow/editors/EditorVignette.java
index 3a94dce..630a1a9 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorVignette.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorVignette.java
@@ -29,6 +29,7 @@
 import android.widget.TextView;
 
 import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.FilterShowActivity;
 import com.android.gallery3d.filtershow.controller.BasicParameterInt;
 import com.android.gallery3d.filtershow.controller.Parameter;
 import com.android.gallery3d.filtershow.filters.FilterVignetteRepresentation;
@@ -173,6 +174,7 @@
                 @Override
                 public void onClick(View arg0) {
                     popupMenu.show();
+                    ((FilterShowActivity)mContext).onShowMenu(popupMenu);
                 }
             });
             mButton.setListener(this);
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageCurves.java b/src/com/android/gallery3d/filtershow/imageshow/ImageCurves.java
index 82c4b2f..0d20322 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageCurves.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageCurves.java
@@ -34,6 +34,7 @@
 import android.widget.PopupMenu;
 
 import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.FilterShowActivity;
 import com.android.gallery3d.filtershow.editors.Editor;
 import com.android.gallery3d.filtershow.editors.EditorCurves;
 import com.android.gallery3d.filtershow.filters.FilterCurvesRepresentation;
@@ -116,6 +117,7 @@
         });
         Editor.hackFixStrings(popupMenu.getMenu());
         popupMenu.show();
+        ((FilterShowActivity)getContext()).onShowMenu(popupMenu);
     }
 
     @Override