Loading res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,10 @@ --> <integer name="config_vibration_supported_intensity_levels">1</integer> <!-- Whether or not to show Media vibration settings in the vibration and haptics screen. Can be overridden for specific product builds if the target device does not support it --> <bool name="config_media_vibration_supported">true</bool> <!-- Whether or not the homepage should be powered by legacy suggestion (versus contextual cards) Default to true as not all devices support contextual cards. Loading src/com/android/settings/accessibility/MediaVibrationIntensityPreferenceController.java +4 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.content.Context; import android.os.VibrationAttributes; import android.provider.Settings; import com.android.settings.R; /** Preference controller for am vibration intensity */ public class MediaVibrationIntensityPreferenceController extends VibrationIntensityPreferenceController { Loading @@ -46,6 +48,7 @@ public class MediaVibrationIntensityPreferenceController @Override public int getAvailabilityStatus() { return AVAILABLE; return mContext.getResources().getBoolean(R.bool.config_media_vibration_supported) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } } src/com/android/settings/accessibility/MediaVibrationTogglePreferenceController.java +3 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.accessibility; import android.content.Context; import com.android.settings.accessibility.MediaVibrationIntensityPreferenceController.MediaVibrationPreferenceConfig; import com.android.settings.R; /** Preference controller for alarm vibration with only a toggle for on/off states. */ public class MediaVibrationTogglePreferenceController extends VibrationTogglePreferenceController { Loading @@ -29,6 +30,7 @@ public class MediaVibrationTogglePreferenceController extends VibrationTogglePre @Override public int getAvailabilityStatus() { return AVAILABLE; return mContext.getResources().getBoolean(R.bool.config_media_vibration_supported) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } } tests/robotests/src/com/android/settings/accessibility/MediaVibrationIntensityPreferenceControllerTest.java +35 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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"; Loading Loading @@ -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); Loading Loading @@ -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); } Loading tests/robotests/src/com/android/settings/accessibility/MediaVibrationTogglePreferenceControllerTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -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"; Loading Loading @@ -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); Loading Loading @@ -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); } Loading Loading
res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,10 @@ --> <integer name="config_vibration_supported_intensity_levels">1</integer> <!-- Whether or not to show Media vibration settings in the vibration and haptics screen. Can be overridden for specific product builds if the target device does not support it --> <bool name="config_media_vibration_supported">true</bool> <!-- Whether or not the homepage should be powered by legacy suggestion (versus contextual cards) Default to true as not all devices support contextual cards. Loading
src/com/android/settings/accessibility/MediaVibrationIntensityPreferenceController.java +4 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.content.Context; import android.os.VibrationAttributes; import android.provider.Settings; import com.android.settings.R; /** Preference controller for am vibration intensity */ public class MediaVibrationIntensityPreferenceController extends VibrationIntensityPreferenceController { Loading @@ -46,6 +48,7 @@ public class MediaVibrationIntensityPreferenceController @Override public int getAvailabilityStatus() { return AVAILABLE; return mContext.getResources().getBoolean(R.bool.config_media_vibration_supported) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } }
src/com/android/settings/accessibility/MediaVibrationTogglePreferenceController.java +3 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.accessibility; import android.content.Context; import com.android.settings.accessibility.MediaVibrationIntensityPreferenceController.MediaVibrationPreferenceConfig; import com.android.settings.R; /** Preference controller for alarm vibration with only a toggle for on/off states. */ public class MediaVibrationTogglePreferenceController extends VibrationTogglePreferenceController { Loading @@ -29,6 +30,7 @@ public class MediaVibrationTogglePreferenceController extends VibrationTogglePre @Override public int getAvailabilityStatus() { return AVAILABLE; return mContext.getResources().getBoolean(R.bool.config_media_vibration_supported) ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } }
tests/robotests/src/com/android/settings/accessibility/MediaVibrationIntensityPreferenceControllerTest.java +35 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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"; Loading Loading @@ -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); Loading Loading @@ -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); } Loading
tests/robotests/src/com/android/settings/accessibility/MediaVibrationTogglePreferenceControllerTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -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"; Loading Loading @@ -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); Loading Loading @@ -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); } Loading