From 93c195894de323b039ff62eb5c62bf9aeed2abf0 Mon Sep 17 00:00:00 2001 From: Oren Blasberg Date: Thu, 14 Apr 2016 14:08:17 -0700 Subject: [PATCH] Show cascading popup menus if screen is big enough. ...even if in split screen mode. Bug: 28175404 Change-Id: I63ff60090e299e48f2273477dc3b820d4d95db8d --- .../internal/view/menu/MenuPopupHelper.java | 15 +++++++++++++-- core/res/res/values-sw720dp/config.xml | 3 --- core/res/res/values/config.xml | 4 ---- core/res/res/values/dimens.xml | 3 +++ core/res/res/values/symbols.xml | 3 ++- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/core/java/com/android/internal/view/menu/MenuPopupHelper.java b/core/java/com/android/internal/view/menu/MenuPopupHelper.java index 1f1e594e755b3..f59ea3148c582 100644 --- a/core/java/com/android/internal/view/menu/MenuPopupHelper.java +++ b/core/java/com/android/internal/view/menu/MenuPopupHelper.java @@ -23,10 +23,13 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.StyleRes; import android.content.Context; +import android.graphics.Point; import android.graphics.Rect; import android.util.DisplayMetrics; +import android.view.Display; import android.view.Gravity; import android.view.View; +import android.view.WindowManager; import android.widget.PopupWindow.OnDismissListener; /** @@ -206,8 +209,16 @@ public class MenuPopupHelper implements MenuHelper { */ @NonNull private MenuPopup createPopup() { - final boolean enableCascadingSubmenus = mContext.getResources().getBoolean( - com.android.internal.R.bool.config_enableCascadingSubmenus); + final WindowManager windowManager = (WindowManager) mContext.getSystemService( + Context.WINDOW_SERVICE); + final Display display = windowManager.getDefaultDisplay(); + final Point displaySize = new Point(); + display.getRealSize(displaySize); + + final int smallestWidth = Math.min(displaySize.x, displaySize.y); + final int minSmallestWidthCascading = mContext.getResources().getDimensionPixelSize( + com.android.internal.R.dimen.cascading_menus_min_smallest_width); + final boolean enableCascadingSubmenus = smallestWidth >= minSmallestWidthCascading; final MenuPopup popup; if (enableCascadingSubmenus) { diff --git a/core/res/res/values-sw720dp/config.xml b/core/res/res/values-sw720dp/config.xml index 1f5791a99e5ee..9792835b96850 100644 --- a/core/res/res/values-sw720dp/config.xml +++ b/core/res/res/values-sw720dp/config.xml @@ -19,7 +19,4 @@ used for picking activities to handle an intent. --> 4 - - true - diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index aada05d4bf82a..838faacbab2bc 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2380,10 +2380,6 @@ must match the value of config_cameraLaunchGestureSensorType in OEM's HAL --> - - false - true diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index ad7b7cc5662b3..b4d26bdda5032 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -462,4 +462,7 @@ 220dp + + + 720dp diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 60060a3702053..6f22e9bcf26de 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2254,7 +2254,8 @@ - + +