summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yifei Zhang <yfz@google.com> 2020-07-15 17:36:32 -0700
committer Justin Chung <justinkchung@google.com> 2023-08-31 15:36:41 +0000
commitdbd843f61183944feb05b45df208a710d93c66bf (patch)
treef46658842a59ea6482043c8aac3f005985e8cb8f
parent4d386e22e1003ad9094c8fdfa56503c0186cb3d1 (diff)
services: silence ringer with SLEEP key
Bug: 157451556 Bug: 160664278 Bug: 297848198 Test: Manual Change-Id: I2ff956265d408d20053bc4d87a2615f955b31c44 (cherry picked from commit ce698abd4238551864a789df6a6a8b13aa8a2f9e) (cherry picked from commit ea33beaad5a6f7f06ad6d47a9e2487300c43f651)
-rw-r--r--core/res/res/values/config.xml3
-rw-r--r--core/res/res/values/symbols.xml1
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java12
3 files changed, 16 insertions, 0 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index aeeaacaacf11..12e3a02c5414 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1185,6 +1185,9 @@
-->
<integer name="config_shortPressOnSleepBehavior">0</integer>
+ <!-- Whether to silence telephony ringer on sleep key event -->
+ <bool name="config_silenceRingerOnSleepKey">false</bool>
+
<!-- Control the behavior when the user long presses the stem primary button.
Stem primary button is only used on watch form factor. If a device is not
a watch, setting this config is no-op.
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 8330f7bdc251..ea92cb31a91a 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -464,6 +464,7 @@
<java-symbol type="integer" name="config_toastDefaultGravity" />
<java-symbol type="integer" name="config_triplePressOnPowerBehavior" />
<java-symbol type="integer" name="config_shortPressOnSleepBehavior" />
+ <java-symbol type="bool" name="config_silenceRingerOnSleepKey" />
<java-symbol type="integer" name="config_longPressOnStemPrimaryBehavior" />
<java-symbol type="integer" name="config_shortPressOnStemPrimaryBehavior" />
<java-symbol type="integer" name="config_doublePressOnStemPrimaryBehavior" />
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 2f68021bf356..fc8ad0ef4a0c 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -557,6 +557,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
boolean mWakeOnDpadKeyPress;
boolean mWakeOnAssistKeyPress;
boolean mWakeOnBackKeyPress;
+ boolean mSilenceRingerOnSleepKey;
long mWakeUpToLastStateTimeout;
int mSearchKeyBehavior;
ComponentName mSearchKeyTargetActivity;
@@ -1418,6 +1419,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
private void sleepRelease(long eventTime) {
+ if (mSilenceRingerOnSleepKey) {
+ TelecomManager telecomManager = getTelecommService();
+ if (telecomManager != null && telecomManager.isRinging()) {
+ telecomManager.silenceRinger();
+ Slog.i(TAG, "sleepRelease() silence ringer");
+ return;
+ }
+ }
+
switch (mShortPressOnSleepBehavior) {
case SHORT_PRESS_SLEEP_GO_TO_SLEEP:
case SHORT_PRESS_SLEEP_GO_TO_SLEEP_AND_GO_HOME:
@@ -2297,6 +2307,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
com.android.internal.R.string.config_doublePressOnPowerTargetActivity));
mShortPressOnSleepBehavior = mContext.getResources().getInteger(
com.android.internal.R.integer.config_shortPressOnSleepBehavior);
+ mSilenceRingerOnSleepKey = mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_silenceRingerOnSleepKey);
mAllowStartActivityForLongPressOnPowerDuringSetup = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_allowStartActivityForLongPressOnPowerInSetup);