diff --git a/api/current.txt b/api/current.txt index e9902b14d34d2..8acfb093d0688 100644 --- a/api/current.txt +++ b/api/current.txt @@ -48822,6 +48822,7 @@ package android.view { 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 c5a94daaba530..7a9de45cbbf84 100644 --- a/core/java/android/view/ViewConfiguration.java +++ b/core/java/android/view/ViewConfiguration.java @@ -303,6 +303,7 @@ public class ViewConfiguration { 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 @@ public class ViewConfiguration { mGlobalActionsKeyTimeout = GLOBAL_ACTIONS_KEY_TIMEOUT; mHorizontalScrollFactor = HORIZONTAL_SCROLL_FACTOR; mVerticalScrollFactor = VERTICAL_SCROLL_FACTOR; + mShowMenuShortcutsWhenKeyboardPresent = false; } /** @@ -428,6 +430,10 @@ public class ViewConfiguration { 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); + } /** @@ -909,6 +915,15 @@ public class ViewConfiguration { return sHasPermanentMenuKey; } + /** + * 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 67dc81af5895c..48485e0d95f6d 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.Menu; 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 @@ public class MenuBuilder implements Menu { 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(); } /**