summaryrefslogtreecommitdiffstats
path: root/core/java/com
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2013-11-01 18:22:11 -0700
committerAdam Powell <adamp@google.com>2013-11-01 18:22:11 -0700
commitb411b32861e7794a59fa7558dbe9d97407eccf23 (patch)
tree5637200ee32a1ce0f943a787373504255520f033 /core/java/com
parentefcc2ca63dfa9179979ecdc86031c06240ada1c5 (diff)
downloadframeworks_base-b411b32861e7794a59fa7558dbe9d97407eccf23.zip
frameworks_base-b411b32861e7794a59fa7558dbe9d97407eccf23.tar.gz
frameworks_base-b411b32861e7794a59fa7558dbe9d97407eccf23.tar.bz2
Fix action menu visibility callbacks for nested popups
When opening a submenu from a popup in ActionMenuPresenter, delegate the submenu callbacks to the presenter callback registered on the ActionMenuPresenter. This allows menu visibility callbacks to propagate properly so that apps that hide their action bars after a timeout can detect open menus that are deeply nested. Bug 11429613 Change-Id: I3332886f08d4f9010f0875057c457566301d12ec
Diffstat (limited to 'core/java/com')
-rw-r--r--core/java/com/android/internal/view/menu/ActionMenuPresenter.java7
-rw-r--r--core/java/com/android/internal/view/menu/BaseMenuPresenter.java4
2 files changed, 10 insertions, 1 deletions
diff --git a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
index 44e7ec1..4654178 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
@@ -721,7 +721,8 @@ public class ActionMenuPresenter extends BaseMenuPresenter
if (subMenu == null) return false;
mOpenSubMenuId = ((SubMenuBuilder) subMenu).getItem().getItemId();
- return false;
+ final MenuPresenter.Callback cb = getCallback();
+ return cb != null ? cb.onOpenSubMenu(subMenu) : false;
}
@Override
@@ -729,6 +730,10 @@ public class ActionMenuPresenter extends BaseMenuPresenter
if (menu instanceof SubMenuBuilder) {
((SubMenuBuilder) menu).getRootMenu().close(false);
}
+ final MenuPresenter.Callback cb = getCallback();
+ if (cb != null) {
+ cb.onCloseMenu(menu, allMenusAreClosing);
+ }
}
}
diff --git a/core/java/com/android/internal/view/menu/BaseMenuPresenter.java b/core/java/com/android/internal/view/menu/BaseMenuPresenter.java
index db0d6dd..92e9ea6 100644
--- a/core/java/com/android/internal/view/menu/BaseMenuPresenter.java
+++ b/core/java/com/android/internal/view/menu/BaseMenuPresenter.java
@@ -144,6 +144,10 @@ public abstract class BaseMenuPresenter implements MenuPresenter {
mCallback = cb;
}
+ public Callback getCallback() {
+ return mCallback;
+ }
+
/**
* Create a new item view that can be re-bound to other item data later.
*