summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alan Viverette <alanv@google.com> 2013-09-09 17:24:04 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2013-09-09 17:24:05 +0000
commit498301d8b554f3806ddb01acd2ea98c27132a0e2 (patch)
tree6ab186513d8345f6791c3516285f0e7dca6f67d9
parent30590646d6846a4db76d416c70ee68a3f9f359b5 (diff)
parentfbe4a586c29b6e415e8d39d73d19bd7f0215a851 (diff)
Merge "Add drag-to-open for action bar submenus" into klp-dev
-rw-r--r--core/java/com/android/internal/view/menu/ActionMenuPresenter.java23
1 files changed, 22 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 f060efd98451..c1ae9c24ea4e 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
@@ -156,7 +156,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter
}
@Override
- public View getItemView(MenuItemImpl item, View convertView, ViewGroup parent) {
+ public View getItemView(final MenuItemImpl item, View convertView, ViewGroup parent) {
View actionView = item.getActionView();
if (actionView == null || item.hasCollapsibleActionView()) {
if (!(convertView instanceof ActionMenuItemView)) {
@@ -166,6 +166,27 @@ public class ActionMenuPresenter extends BaseMenuPresenter
}
actionView.setVisibility(item.isActionViewExpanded() ? View.GONE : View.VISIBLE);
+ if (item.hasSubMenu()) {
+ actionView.setOnTouchListener(new ForwardingListener(actionView) {
+ @Override
+ public ListPopupWindow getPopup() {
+ return mActionButtonPopup != null ? mActionButtonPopup.getPopup() : null;
+ }
+
+ @Override
+ protected boolean onForwardingStarted() {
+ return onSubMenuSelected((SubMenuBuilder) item.getSubMenu());
+ }
+
+ @Override
+ protected boolean onForwardingStopped() {
+ return dismissPopupMenus();
+ }
+ });
+ } else {
+ actionView.setOnTouchListener(null);
+ }
+
final ActionMenuView menuParent = (ActionMenuView) parent;
final ViewGroup.LayoutParams lp = actionView.getLayoutParams();
if (!menuParent.checkLayoutParams(lp)) {