From 7ee344ab543d383b8874fbb49a610c4a3cc7ed47 Mon Sep 17 00:00:00 2001 From: Lais Andrade Date: Tue, 29 Mar 2022 19:20:07 +0100 Subject: [PATCH] Apply only RING_VIBRATION_INTENSITY to ringtone vibrations Ignore the VIBRATE_WHEN_RINGING deprecated settings for ring vibrations. Old behavior applied this settings only to ringer-mode normal, but never to vibrate-only ringer mode. This is being deprecated in favor of the INTENSITY_OFF value in RING_VIBRATION_INTENSITY. Fix: 222697191 Test: RingVibrationIntensityPreferenceControllerTest Change-Id: Ic05f06c6a1df392ced1bf91f67380c0c65257aea --- .../RingVibrationPreferenceConfig.java | 15 --------------- ...ibrationIntensityPreferenceControllerTest.java | 8 ++++---- ...ngVibrationTogglePreferenceControllerTest.java | 10 ++++++---- 3 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/com/android/settings/accessibility/RingVibrationPreferenceConfig.java b/src/com/android/settings/accessibility/RingVibrationPreferenceConfig.java index f4ec7473d16..bce926037a8 100644 --- a/src/com/android/settings/accessibility/RingVibrationPreferenceConfig.java +++ b/src/com/android/settings/accessibility/RingVibrationPreferenceConfig.java @@ -41,21 +41,6 @@ public class RingVibrationPreferenceConfig extends VibrationPreferenceConfig { return true; } - @Override - public int readIntensity() { - final int vibrateWhenRinging = Settings.System.getInt(mContentResolver, - Settings.System.VIBRATE_WHEN_RINGING, ON); - - if ((vibrateWhenRinging == OFF) - && !mAudioManager.isRampingRingerEnabled()) { - // VIBRATE_WHEN_RINGING is deprecated but should still be applied if the user has - // turned it off and has not enabled the ramping ringer (old three-state setting). - return Vibrator.VIBRATION_INTENSITY_OFF; - } - - return super.readIntensity(); - } - @Override public boolean updateIntensity(int intensity) { final boolean success = super.updateIntensity(intensity); diff --git a/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java index 2bffaf4d011..fa3f3bf05df 100644 --- a/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java @@ -121,22 +121,22 @@ public class RingVibrationIntensityPreferenceControllerTest { } @Test - public void updateState_vibrateWhenRingingAndRampingRingerOff_shouldDisplayAlwaysOff() { + public void updateState_vibrateWhenRingingAndRampingRingerOff_shouldDisplayRingIntensity() { when(mAudioManager.isRampingRingerEnabled()).thenReturn(false); updateSetting(Settings.System.VIBRATE_WHEN_RINGING, OFF); updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); mController.updateState(mPreference); - assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_OFF); + assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_HIGH); updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_MEDIUM); mController.updateState(mPreference); - assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_OFF); + assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_MEDIUM); updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW); mController.updateState(mPreference); - assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_OFF); + assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_LOW); updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_OFF); mController.updateState(mPreference); diff --git a/tests/robotests/src/com/android/settings/accessibility/RingVibrationTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/RingVibrationTogglePreferenceControllerTest.java index 08ad1cdade1..865c29003da 100644 --- a/tests/robotests/src/com/android/settings/accessibility/RingVibrationTogglePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/RingVibrationTogglePreferenceControllerTest.java @@ -116,22 +116,24 @@ public class RingVibrationTogglePreferenceControllerTest { } @Test - public void updateState_vibrateWhenRingingAndRampingRingerOff_shouldDisplayAlwaysOff() { + public void updateState_vibrateWhenRingingAndRampingRingerOff_shouldIgnoreAndUseIntensity() { + // VIBRATE_WHEN_RINGING is deprecated and should have no effect on the ring vibration + // setting. The ramping ringer is also independent now, instead of a 3-state setting. when(mAudioManager.isRampingRingerEnabled()).thenReturn(false); updateSetting(Settings.System.VIBRATE_WHEN_RINGING, OFF); updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); mController.updateState(mPreference); - assertThat(mPreference.isChecked()).isFalse(); + assertThat(mPreference.isChecked()).isTrue(); updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_MEDIUM); mController.updateState(mPreference); - assertThat(mPreference.isChecked()).isFalse(); + assertThat(mPreference.isChecked()).isTrue(); updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW); mController.updateState(mPreference); - assertThat(mPreference.isChecked()).isFalse(); + assertThat(mPreference.isChecked()).isTrue(); updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_OFF); mController.updateState(mPreference);