diff options
| -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); |