diff options
| author | 2020-07-15 17:36:32 -0700 | |
|---|---|---|
| committer | 2023-08-31 15:36:41 +0000 | |
| commit | dbd843f61183944feb05b45df208a710d93c66bf (patch) | |
| tree | f46658842a59ea6482043c8aac3f005985e8cb8f | |
| parent | 4d386e22e1003ad9094c8fdfa56503c0186cb3d1 (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.xml | 3 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 1 | ||||
| -rw-r--r-- | services/core/java/com/android/server/policy/PhoneWindowManager.java | 12 |
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); |