summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/view/menu/MenuPopupHelper.java15
-rw-r--r--core/res/res/values-sw720dp/config.xml3
-rw-r--r--core/res/res/values/config.xml4
-rw-r--r--core/res/res/values/dimens.xml3
-rw-r--r--core/res/res/values/symbols.xml3
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 1f1e594e755b..f59ea3148c58 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 1f5791a99e5e..9792835b9685 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. -->
<integer name="config_maxResolverActivityColumns">4</integer>
- <!-- Enable cascading submenus. -->
- <bool name="config_enableCascadingSubmenus">true</bool>
-
</resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index aada05d4bf82..838faacbab2b 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 -->
<string translatable="false" name="config_cameraLaunchGestureSensorStringType"></string>
- <!-- Whether to open UI submenus side by side with the top menu (as opposed to
- replacing the top menu). -->
- <bool name="config_enableCascadingSubmenus">false</bool>
-
<!-- Allow the gesture to double tap the power button twice to start the camera while the device
is non-interactive. -->
<bool name="config_cameraDoubleTapPowerGestureEnabled">true</bool>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index ad7b7cc5662b..b4d26bdda503 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -462,4 +462,7 @@
<!-- The default minimal size of a resizable task, in both dimensions. -->
<dimen name="default_minimal_size_resizable_task">220dp</dimen>
+
+ <!-- Minimum "smallest width" of the display for cascading menus to be enabled. -->
+ <dimen name="cascading_menus_min_smallest_width">720dp</dimen>
</resources>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 60060a370205..6f22e9bcf26d 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2254,7 +2254,8 @@
<java-symbol type="string" name="prohibit_manual_network_selection_in_gobal_mode" />
<java-symbol type="id" name="profile_button" />
- <java-symbol type="bool" name="config_enableCascadingSubmenus" />
+ <!-- Cascading submenus -->
+ <java-symbol type="dimen" name="cascading_menus_min_smallest_width" />
<!-- From SignalStrength -->
<java-symbol type="integer" name="config_LTE_RSRP_threshold_type" />