Merge "Fix memory leak in setActionProvider() - framework edition" into mnc-dev
diff --git a/core/java/android/view/ActionProvider.java b/core/java/android/view/ActionProvider.java
index c3aafde..752240f 100644
--- a/core/java/android/view/ActionProvider.java
+++ b/core/java/android/view/ActionProvider.java
@@ -237,6 +237,14 @@
     }
 
     /**
+     * @hide
+     */
+    public void reset() {
+        mVisibilityListener = null;
+        mSubUiVisibilityListener = null;
+    }
+
+    /**
      * @hide Internal use only
      */
     public interface SubUiVisibilityListener {
diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java
index 3b1f20d..08d4e86 100644
--- a/core/java/com/android/internal/view/menu/MenuItemImpl.java
+++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java
@@ -593,7 +593,7 @@
 
     public MenuItem setActionProvider(ActionProvider actionProvider) {
         if (mActionProvider != null) {
-            mActionProvider.setVisibilityListener(null);
+            mActionProvider.reset();
         }
         mActionView = null;
         mActionProvider = actionProvider;