summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/res/res/values/config.xml5
-rw-r--r--core/res/res/values/symbols.xml1
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java13
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;