Add ViewConfiguration.shouldShowMenuShortcutsWhenKeyboardPresent
This method returns config_showMenuShortcutsWhenKeyboardPresent value.
It is necessary for the correct support library implementation of menus.
Bug: 31045453
Test: build and flash Android
Change-Id: Ibdd354b2d00f0c5f5ed91aa4840e942d772516ef
diff --git a/api/current.txt b/api/current.txt
index df18f10..a88ab73 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -48086,6 +48086,7 @@
method public static deprecated int getWindowTouchSlop();
method public static long getZoomControlsTimeout();
method public boolean hasPermanentMenuKey();
+ method public boolean shouldShowMenuShortcutsWhenKeyboardPresent();
}
public class ViewDebug {
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index c5a94da..7a9de45 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -303,6 +303,7 @@
private final long mGlobalActionsKeyTimeout;
private final float mVerticalScrollFactor;
private final float mHorizontalScrollFactor;
+ private final boolean mShowMenuShortcutsWhenKeyboardPresent;
private boolean sHasPermanentMenuKey;
private boolean sHasPermanentMenuKeySet;
@@ -335,6 +336,7 @@
mGlobalActionsKeyTimeout = GLOBAL_ACTIONS_KEY_TIMEOUT;
mHorizontalScrollFactor = HORIZONTAL_SCROLL_FACTOR;
mVerticalScrollFactor = VERTICAL_SCROLL_FACTOR;
+ mShowMenuShortcutsWhenKeyboardPresent = false;
}
/**
@@ -428,6 +430,10 @@
com.android.internal.R.dimen.config_horizontalScrollFactor);
mVerticalScrollFactor = res.getDimensionPixelSize(
com.android.internal.R.dimen.config_verticalScrollFactor);
+
+ mShowMenuShortcutsWhenKeyboardPresent = res.getBoolean(
+ com.android.internal.R.bool.config_showMenuShortcutsWhenKeyboardPresent);
+
}
/**
@@ -910,6 +916,15 @@
}
/**
+ * Check if shortcuts should be displayed in menus.
+ *
+ * @return {@code True} if shortcuts should be displayed in menus.
+ */
+ public boolean shouldShowMenuShortcutsWhenKeyboardPresent() {
+ return mShowMenuShortcutsWhenKeyboardPresent;
+ }
+
+ /**
* @hide
* @return Whether or not marquee should use fading edges.
*/
diff --git a/core/java/com/android/internal/view/menu/MenuBuilder.java b/core/java/com/android/internal/view/menu/MenuBuilder.java
index 67dc81a..48485e0 100644
--- a/core/java/com/android/internal/view/menu/MenuBuilder.java
+++ b/core/java/com/android/internal/view/menu/MenuBuilder.java
@@ -37,6 +37,7 @@
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
+import android.view.ViewConfiguration;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -753,8 +754,7 @@
private void setShortcutsVisibleInner(boolean shortcutsVisible) {
mShortcutsVisible = shortcutsVisible
&& mResources.getConfiguration().keyboard != Configuration.KEYBOARD_NOKEYS
- && mResources.getBoolean(
- com.android.internal.R.bool.config_showMenuShortcutsWhenKeyboardPresent);
+ && ViewConfiguration.get(mContext).shouldShowMenuShortcutsWhenKeyboardPresent();
}
/**