diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java index 156b9421765..81c5e123235 100644 --- a/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java +++ b/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java @@ -18,6 +18,7 @@ package com.android.settings.accessibility; import android.content.Context; import android.hardware.display.ColorDisplayManager; +import android.provider.Settings; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -28,7 +29,6 @@ import com.android.settings.widget.SeekBarPreference; /** PreferenceController for feature intensity. */ public class ReduceBrightColorsIntensityPreferenceController extends SliderPreferenceController { - private static final int INVERSE_PERCENTAGE_BASE = 100; private final ColorDisplayManager mColorDisplayManager; public ReduceBrightColorsIntensityPreferenceController(Context context, String key) { @@ -58,7 +58,6 @@ public class ReduceBrightColorsIntensityPreferenceController extends SliderPrefe updateState(preference); } - @Override public final void updateState(Preference preference) { super.updateState(preference); @@ -67,24 +66,28 @@ public class ReduceBrightColorsIntensityPreferenceController extends SliderPrefe @Override public int getSliderPosition() { - return INVERSE_PERCENTAGE_BASE - mColorDisplayManager.getReduceBrightColorsStrength(); + final int settingValue = Settings.Secure.getInt( + mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_LEVEL, + /* fallback= */ 0); + + return getMax() - settingValue; } @Override public boolean setSliderPosition(int position) { - return mColorDisplayManager.setReduceBrightColorsStrength( - INVERSE_PERCENTAGE_BASE - position); + return Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_LEVEL, + getMax() - position); } @Override public int getMax() { - return INVERSE_PERCENTAGE_BASE - - ColorDisplayManager.getMinimumReduceBrightColorsStrength(mContext); + return 100; } @Override public int getMin() { - return INVERSE_PERCENTAGE_BASE - - ColorDisplayManager.getMaximumReduceBrightColorsStrength(mContext); + return 0; } } diff --git a/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java index 96d9583a9f7..bc4709bca11 100644 --- a/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java @@ -188,15 +188,24 @@ public class ReduceBrightColorsIntensityPreferenceControllerTest { .isEqualTo(80); } + // Slider range should represent percentage. @Test - public void rangeOfSlider_staysWithinValidRange() { - when(mResources.getInteger( - R.integer.config_reduceBrightColorsStrengthMax)).thenReturn(90); - when(mResources.getInteger( - R.integer.config_reduceBrightColorsStrengthMin)).thenReturn(15); - assertThat(mPreferenceController.getMax()).isEqualTo(85); - assertThat(mPreferenceController.getMin()).isEqualTo(10); + public void rangeOfSlider_isPercentage() { + assertThat(mPreferenceController.getMax()).isEqualTo(100); + assertThat(mPreferenceController.getMin()).isEqualTo(0); assertThat(mPreferenceController.getMax() - mPreferenceController.getMin()) - .isEqualTo(75); + .isEqualTo(100); + } + + // Slider should be of range 100 - 0. + @Test + public void rangeOfSlider_isInverted() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1); + mPreferenceController.onPreferenceChange(/* preference= */ null, 2); + assertThat( + Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_LEVEL, 0)) + .isEqualTo(98); } }