diff options
| author | Oren Blasberg <orenb@google.com> | 2015-09-02 14:25:56 -0700 |
|---|---|---|
| committer | Oren Blasberg <orenb@google.com> | 2015-09-10 09:54:17 -0700 |
| commit | 8e12f8df076d38853e0fedde7ed79e2e8689d59e (patch) | |
| tree | 992875f4076db61e90a5e92b36bece4128a4b7e9 /core/java/android/widget/PopupMenu.java | |
| parent | b23976efdd6ffe42cb3b8fe6650fc77bd9a161e8 (diff) | |
Add Cascading submenus implementation.
This change adds a new Cascading implementation of MenuPopup. When
enabled, submenus will show up in a cascading side by side fashion
when opened next to popup menus.
Bug: 20127825
Change-Id: Ie3c797fb5dbada7521cd93dc4171950af2be2ff7
Diffstat (limited to 'core/java/android/widget/PopupMenu.java')
| -rw-r--r-- | core/java/android/widget/PopupMenu.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/core/java/android/widget/PopupMenu.java b/core/java/android/widget/PopupMenu.java index 3b2d60d1e1a4..bd1fbb8f29c5 100644 --- a/core/java/android/widget/PopupMenu.java +++ b/core/java/android/widget/PopupMenu.java @@ -43,6 +43,7 @@ public class PopupMenu implements MenuBuilder.Callback, MenuPresenter.Callback { private final MenuBuilder mMenu; private final View mAnchor; private final MenuPopupHelper mPopup; + private final boolean mShowCascadingMenus; private OnMenuItemClickListener mMenuItemClickListener; private OnDismissListener mDismissListener; @@ -107,6 +108,8 @@ public class PopupMenu implements MenuBuilder.Callback, MenuPresenter.Callback { public PopupMenu(Context context, View anchor, int gravity, int popupStyleAttr, int popupStyleRes) { mContext = context; + mShowCascadingMenus = context.getResources().getBoolean( + com.android.internal.R.bool.config_enableCascadingSubmenus); mMenu = new MenuBuilder(context); mMenu.setCallback(this); mAnchor = anchor; @@ -273,8 +276,12 @@ public class PopupMenu implements MenuBuilder.Callback, MenuPresenter.Callback { return true; } - // Current menu will be dismissed by the normal helper, submenu will be shown in its place. - new MenuPopupHelper(mContext, subMenu, mAnchor).show(); + if (!mShowCascadingMenus) { + // Current menu will be dismissed by the normal helper, submenu will be shown in its + // place. (If cascading menus are enabled, the cascading implementation will show the + // submenu itself). + new MenuPopupHelper(mContext, subMenu, mAnchor).show(); + } return true; } |
