diff options
-rw-r--r-- | core/res/res/values/config.xml | 5 | ||||
-rw-r--r-- | core/res/res/values/symbols.xml | 1 | ||||
-rw-r--r-- | services/core/java/com/android/server/policy/PhoneWindowManager.java | 13 |
3 files changed, 19 insertions, 0 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 862e537aa8c9..c632a2a41d46 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -1256,6 +1256,11 @@ --> <bool name="config_shortPressEarlyOnPower">false</bool> + <!-- Whether a single short press on STEM_PRIMARY should be launched without multi-press delay. + This works similarly as config_shortPressEarlyOnPower but for STEM_PRIMARY. + --> + <bool name="config_shortPressEarlyOnStemPrimary">false</bool> + <!-- Control the behavior of the search key. 0 - Launch default search activity 1 - Launch target activity defined by config_searchKeyTargetActivity diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 8748ca1f48a5..cd3844c25969 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -473,6 +473,7 @@ <java-symbol type="integer" name="config_doublePressOnStemPrimaryBehavior" /> <java-symbol type="integer" name="config_triplePressOnStemPrimaryBehavior" /> <java-symbol type="bool" name="config_shortPressEarlyOnPower" /> + <java-symbol type="bool" name="config_shortPressEarlyOnStemPrimary" /> <java-symbol type="string" name="config_doublePressOnPowerTargetActivity" /> <java-symbol type="integer" name="config_searchKeyBehavior" /> <java-symbol type="string" name="config_searchKeyTargetActivity" /> diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 45ca690ba20f..cf1036c03c83 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -549,6 +549,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { int mLidNavigationAccessibility; int mShortPressOnPowerBehavior; private boolean mShouldEarlyShortPressOnPower; + private boolean mShouldEarlyShortPressOnStemPrimary; int mLongPressOnPowerBehavior; long mLongPressOnPowerAssistantTimeoutMs; int mVeryLongPressOnPowerBehavior; @@ -2748,6 +2749,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override void onPress(long downTime) { + if (mShouldEarlyShortPressOnStemPrimary) { + return; + } stemPrimaryPress(1 /*count*/); } @@ -2760,6 +2764,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { void onMultiPress(long downTime, int count) { stemPrimaryPress(count); } + + @Override + void onKeyUp(long eventTime, int count) { + if (mShouldEarlyShortPressOnStemPrimary && count == 1) { + stemPrimaryPress(1 /*pressCount*/); + } + } } private void initSingleKeyGestureRules(Looper looper) { @@ -2929,6 +2940,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { mShouldEarlyShortPressOnPower = mContext.getResources() .getBoolean(com.android.internal.R.bool.config_shortPressEarlyOnPower); + mShouldEarlyShortPressOnStemPrimary = mContext.getResources().getBoolean( + com.android.internal.R.bool.config_shortPressEarlyOnStemPrimary); mStylusButtonsEnabled = Settings.Secure.getIntForUser(resolver, Secure.STYLUS_BUTTONS_ENABLED, 1, UserHandle.USER_CURRENT) == 1; |