diff options
| author | Chris Banes <chrisbanes@google.com> | 2015-06-30 11:16:37 +0100 |
|---|---|---|
| committer | Chris Banes <chrisbanes@google.com> | 2015-06-30 11:17:57 +0100 |
| commit | c8f6ecc265656cdf68d2010a4e04666017c3b907 (patch) | |
| tree | 6c6a902ec4c705c7bf4e4f5b441e229eecbd20ab /core/java | |
| parent | f62f4c94a36f5c2f7ad3c70316dc585ea3fd721a (diff) | |
Fix memory leak in setActionProvider() - framework edition
Caused by ActionMenuItem's SubUiVisibilityListener
not being nulled when it is replaced via setActionProvider().
BUG: 22189734
Change-Id: Id4deaa05cd5554ca7bdf969a592e4812e39dcb75
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/view/ActionProvider.java | 8 | ||||
| -rw-r--r-- | core/java/com/android/internal/view/menu/MenuItemImpl.java | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/core/java/android/view/ActionProvider.java b/core/java/android/view/ActionProvider.java index c3aafde833a5..752240f4578d 100644 --- a/core/java/android/view/ActionProvider.java +++ b/core/java/android/view/ActionProvider.java @@ -237,6 +237,14 @@ public abstract class ActionProvider { } /** + * @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 3b1f20d86503..08d4e8616795 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 final class MenuItemImpl implements MenuItem { public MenuItem setActionProvider(ActionProvider actionProvider) { if (mActionProvider != null) { - mActionProvider.setVisibilityListener(null); + mActionProvider.reset(); } mActionView = null; mActionProvider = actionProvider; |
