Merge "Make Media Vibration setting configurable" am: dcb1dbc7f5 am: 8f77a3bfb4

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2432412

Change-Id: I37d172d2e6aa6f988a891fa2e26112baa332e033
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-02-16 11:30:45 +00:00
committed by Automerger Merge Worker
5 changed files with 82 additions and 3 deletions

View File

@@ -31,10 +31,13 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.widget.SeekBarPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -45,7 +48,7 @@ import org.robolectric.annotation.Config;
/** Test for {@link MediaVibrationIntensityPreferenceController}. */
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowInteractionJankMonitor.class})
@Config(shadows = {ShadowInteractionJankMonitor.class, SettingsShadowResources.class})
public class MediaVibrationIntensityPreferenceControllerTest {
private static final String PREFERENCE_KEY = "preference_key";
@@ -76,6 +79,11 @@ public class MediaVibrationIntensityPreferenceControllerTest {
mController.displayPreference(mScreen);
}
@After
public void tearDown() {
SettingsShadowResources.reset();
}
@Test
public void verifyConstants() {
assertThat(mController.getPreferenceKey()).isEqualTo(PREFERENCE_KEY);
@@ -156,6 +164,32 @@ public class MediaVibrationIntensityPreferenceControllerTest {
.isEqualTo(Vibrator.VIBRATION_INTENSITY_HIGH);
}
@Test
public void configForMediaVibration_enabled_shouldShowSlider() {
SettingsShadowResources.overrideResource(R.bool.config_media_vibration_supported, true);
mController.updateState(mPreference);
final boolean mediaVibrationConfig = mContext.getResources()
.getBoolean(R.bool.config_media_vibration_supported);
assertThat(mediaVibrationConfig).isTrue();
assertThat(mController.isAvailable()).isTrue();
assertThat(mController.isSupported()).isTrue();
}
@Test
public void configForMediaVibration_disabled_shouldHideSlider() {
SettingsShadowResources.overrideResource(R.bool.config_media_vibration_supported, false);
mController.updateState(mPreference);
final boolean mediaVibrationConfig = mContext.getResources()
.getBoolean(R.bool.config_media_vibration_supported);
assertThat(mediaVibrationConfig).isFalse();
assertThat(mController.isAvailable()).isFalse();
assertThat(mController.isSupported()).isFalse();
}
private void updateSetting(String key, int value) {
Settings.System.putInt(mContext.getContentResolver(), key, value);
}

View File

@@ -32,17 +32,22 @@ import androidx.preference.SwitchPreference;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.R;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.RobolectricTestRunner;
/** Test for {@link MediaVibrationIntensityPreferenceController}. */
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {SettingsShadowResources.class})
public class MediaVibrationTogglePreferenceControllerTest {
private static final String PREFERENCE_KEY = "preference_key";
@@ -72,6 +77,11 @@ public class MediaVibrationTogglePreferenceControllerTest {
mController.displayPreference(mScreen);
}
@After
public void tearDown() {
SettingsShadowResources.reset();
}
@Test
public void verifyConstants() {
assertThat(mController.getPreferenceKey()).isEqualTo(PREFERENCE_KEY);
@@ -144,6 +154,32 @@ public class MediaVibrationTogglePreferenceControllerTest {
.isEqualTo(Vibrator.VIBRATION_INTENSITY_OFF);
}
@Test
public void configForMediaVibration_enabled_shouldShowToogle() {
SettingsShadowResources.overrideResource(R.bool.config_media_vibration_supported, true);
mController.updateState(mPreference);
final boolean mediaVibrationConfig = mContext.getResources()
.getBoolean(R.bool.config_media_vibration_supported);
assertThat(mediaVibrationConfig).isTrue();
assertThat(mController.isAvailable()).isTrue();
assertThat(mController.isSupported()).isTrue();
}
@Test
public void configForMediaVibration_disabled_shouldHideToggle() {
SettingsShadowResources.overrideResource(R.bool.config_media_vibration_supported, false);
mController.updateState(mPreference);
final boolean mediaVibrationConfig = mContext.getResources()
.getBoolean(R.bool.config_media_vibration_supported);
assertThat(mediaVibrationConfig).isFalse();
assertThat(mController.isAvailable()).isFalse();
assertThat(mController.isSupported()).isFalse();
}
private void updateSetting(String key, int value) {
Settings.System.putInt(mContext.getContentResolver(), key, value);
}