Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f73af73a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Enable touch feedback settings when the phone is in silent mode" into tm-dev

parents 090e1d39 e000a210
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -37,12 +37,6 @@ public class HapticFeedbackIntensityPreferenceController
                    VibrationAttributes.USAGE_TOUCH);
        }

        @Override
        public boolean isRestrictedByRingerModeSilent() {
            // Touch feedback is disabled when the phone is in silent mode.
            return true;
        }

        @Override
        public int readIntensity() {
            final int hapticFeedbackEnabled = Settings.System.getInt(mContentResolver,
+26 −1
Original line number Diff line number Diff line
@@ -18,9 +18,11 @@ package com.android.settings.accessibility;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.media.AudioManager;
import android.os.VibrationAttributes;
import android.os.Vibrator;
import android.provider.Settings;
@@ -45,6 +47,7 @@ public class AlarmVibrationIntensityPreferenceControllerTest {
    private static final String PREFERENCE_KEY = "preference_key";

    @Mock private PreferenceScreen mScreen;
    @Mock private AudioManager mAudioManager;

    private Lifecycle mLifecycle;
    private Context mContext;
@@ -56,7 +59,9 @@ public class AlarmVibrationIntensityPreferenceControllerTest {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mLifecycle = new Lifecycle(() -> mLifecycle);
        mContext = ApplicationProvider.getApplicationContext();
        mContext = spy(ApplicationProvider.getApplicationContext());
        when(mContext.getSystemService(Context.AUDIO_SERVICE)).thenReturn(mAudioManager);
        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_NORMAL);
        mVibrator = mContext.getSystemService(Vibrator.class);
        mController = new AlarmVibrationIntensityPreferenceController(mContext, PREFERENCE_KEY,
                Vibrator.VIBRATION_INTENSITY_HIGH);
@@ -87,6 +92,26 @@ public class AlarmVibrationIntensityPreferenceControllerTest {
                mVibrator.getDefaultVibrationIntensity(VibrationAttributes.USAGE_ALARM));
    }

    @Test
    public void updateState_ringerModeUpdates_shouldNotAffectSettings() {
        updateSetting(Settings.System.ALARM_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW);

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_NORMAL);
        mController.updateState(mPreference);
        assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_LOW);
        assertThat(mPreference.isEnabled()).isTrue();

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_SILENT);
        mController.updateState(mPreference);
        assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_LOW);
        assertThat(mPreference.isEnabled()).isTrue();

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_VIBRATE);
        mController.updateState(mPreference);
        assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_LOW);
        assertThat(mPreference.isEnabled()).isTrue();
    }

    @Test
    public void updateState_shouldDisplayIntensityInSliderPosition() {
        updateSetting(Settings.System.ALARM_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH);
+26 −1
Original line number Diff line number Diff line
@@ -18,9 +18,11 @@ package com.android.settings.accessibility;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.media.AudioManager;
import android.os.VibrationAttributes;
import android.os.Vibrator;
import android.provider.Settings;
@@ -45,6 +47,7 @@ public class AlarmVibrationTogglePreferenceControllerTest {
    private static final String PREFERENCE_KEY = "preference_key";

    @Mock private PreferenceScreen mScreen;
    @Mock AudioManager mAudioManager;

    private Lifecycle mLifecycle;
    private Context mContext;
@@ -56,7 +59,9 @@ public class AlarmVibrationTogglePreferenceControllerTest {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mLifecycle = new Lifecycle(() -> mLifecycle);
        mContext = ApplicationProvider.getApplicationContext();
        mContext = spy(ApplicationProvider.getApplicationContext());
        when(mContext.getSystemService(Context.AUDIO_SERVICE)).thenReturn(mAudioManager);
        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_NORMAL);
        mVibrator = mContext.getSystemService(Vibrator.class);
        mController = new AlarmVibrationTogglePreferenceController(mContext, PREFERENCE_KEY);
        mLifecycle.addObserver(mController);
@@ -83,6 +88,26 @@ public class AlarmVibrationTogglePreferenceControllerTest {
        assertThat(mPreference.isChecked()).isTrue();
    }

    @Test
    public void updateState_ringerModeUpdates_shouldNotAffectSettings() {
        updateSetting(Settings.System.ALARM_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW);

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_NORMAL);
        mController.updateState(mPreference);
        assertThat(mPreference.isChecked()).isTrue();
        assertThat(mPreference.isEnabled()).isTrue();

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_SILENT);
        mController.updateState(mPreference);
        assertThat(mPreference.isChecked()).isTrue();
        assertThat(mPreference.isEnabled()).isTrue();

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_VIBRATE);
        mController.updateState(mPreference);
        assertThat(mPreference.isChecked()).isTrue();
        assertThat(mPreference.isEnabled()).isTrue();
    }

    @Test
    public void updateState_shouldDisplayOnOffState() {
        updateSetting(Settings.System.ALARM_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH);
+3 −9
Original line number Diff line number Diff line
@@ -94,28 +94,22 @@ public class HapticFeedbackIntensityPreferenceControllerTest {
    }

    @Test
    public void updateState_ringerModeUpdates_shouldPreserveSettingAndDisplaySummary() {
    public void updateState_ringerModeUpdates_shouldNotAffectSettings() {
        updateSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW);

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_NORMAL);
        mController.updateState(mPreference);
        assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_LOW);
        assertThat(mPreference.getSummary()).isNull();
        assertThat(mPreference.isEnabled()).isTrue();

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_SILENT);
        mController.updateState(mPreference);
        assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_OFF);
        // TODO(b/136805769): summary is broken in SeekBarPreference, enable this once fixed
//        assertThat(mPreference.getSummary()).isNotNull();
//        assertThat(mPreference.getSummary().toString()).isEqualTo(mContext.getString(
//                R.string.accessibility_vibration_setting_disabled_for_silent_mode_summary));
        assertThat(mPreference.isEnabled()).isFalse();
        assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_LOW);
        assertThat(mPreference.isEnabled()).isTrue();

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_VIBRATE);
        mController.updateState(mPreference);
        assertThat(mPreference.getProgress()).isEqualTo(Vibrator.VIBRATION_INTENSITY_LOW);
        assertThat(mPreference.getSummary()).isNull();
        assertThat(mPreference.isEnabled()).isTrue();
    }

+3 −10
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;

@@ -90,29 +89,23 @@ public class HapticFeedbackTogglePreferenceControllerTest {
        assertThat(mPreference.isChecked()).isTrue();
    }


    @Test
    public void updateState_ringerModeUpdates_shouldPreserveSettingAndDisplaySummary() {
    public void updateState_ringerModeUpdates_shouldNotAffectSettings() {
        updateSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW);

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_NORMAL);
        mController.updateState(mPreference);
        assertThat(mPreference.isChecked()).isTrue();
        assertThat(mPreference.getSummary()).isNull();
        assertThat(mPreference.isEnabled()).isTrue();

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_SILENT);
        mController.updateState(mPreference);
        assertThat(mPreference.isChecked()).isFalse();
        assertThat(mPreference.getSummary()).isNotNull();
        assertThat(mPreference.getSummary().toString()).isEqualTo(mContext.getString(
                R.string.accessibility_vibration_setting_disabled_for_silent_mode_summary));
        assertThat(mPreference.isEnabled()).isFalse();
        assertThat(mPreference.isChecked()).isTrue();
        assertThat(mPreference.isEnabled()).isTrue();

        when(mAudioManager.getRingerModeInternal()).thenReturn(AudioManager.RINGER_MODE_VIBRATE);
        mController.updateState(mPreference);
        assertThat(mPreference.isChecked()).isTrue();
        assertThat(mPreference.getSummary()).isNull();
        assertThat(mPreference.isEnabled()).isTrue();
    }

Loading