Merge "Make Extra Dim Setting as percentage of device" into main

This commit is contained in:
Fiona Campbell
2025-02-03 09:13:50 -08:00
committed by Android (Google) Code Review
2 changed files with 29 additions and 17 deletions

View File

@@ -18,6 +18,7 @@ package com.android.settings.accessibility;
import android.content.Context; import android.content.Context;
import android.hardware.display.ColorDisplayManager; import android.hardware.display.ColorDisplayManager;
import android.provider.Settings;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -28,7 +29,6 @@ import com.android.settings.widget.SeekBarPreference;
/** PreferenceController for feature intensity. */ /** PreferenceController for feature intensity. */
public class ReduceBrightColorsIntensityPreferenceController extends SliderPreferenceController { public class ReduceBrightColorsIntensityPreferenceController extends SliderPreferenceController {
private static final int INVERSE_PERCENTAGE_BASE = 100;
private final ColorDisplayManager mColorDisplayManager; private final ColorDisplayManager mColorDisplayManager;
public ReduceBrightColorsIntensityPreferenceController(Context context, String key) { public ReduceBrightColorsIntensityPreferenceController(Context context, String key) {
@@ -58,7 +58,6 @@ public class ReduceBrightColorsIntensityPreferenceController extends SliderPrefe
updateState(preference); updateState(preference);
} }
@Override @Override
public final void updateState(Preference preference) { public final void updateState(Preference preference) {
super.updateState(preference); super.updateState(preference);
@@ -67,24 +66,28 @@ public class ReduceBrightColorsIntensityPreferenceController extends SliderPrefe
@Override @Override
public int getSliderPosition() { 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 @Override
public boolean setSliderPosition(int position) { public boolean setSliderPosition(int position) {
return mColorDisplayManager.setReduceBrightColorsStrength( return Settings.Secure.putInt(mContext.getContentResolver(),
INVERSE_PERCENTAGE_BASE - position); Settings.Secure.REDUCE_BRIGHT_COLORS_LEVEL,
getMax() - position);
} }
@Override @Override
public int getMax() { public int getMax() {
return INVERSE_PERCENTAGE_BASE return 100;
- ColorDisplayManager.getMinimumReduceBrightColorsStrength(mContext);
} }
@Override @Override
public int getMin() { public int getMin() {
return INVERSE_PERCENTAGE_BASE return 0;
- ColorDisplayManager.getMaximumReduceBrightColorsStrength(mContext);
} }
} }

View File

@@ -188,15 +188,24 @@ public class ReduceBrightColorsIntensityPreferenceControllerTest {
.isEqualTo(80); .isEqualTo(80);
} }
// Slider range should represent percentage.
@Test @Test
public void rangeOfSlider_staysWithinValidRange() { public void rangeOfSlider_isPercentage() {
when(mResources.getInteger( assertThat(mPreferenceController.getMax()).isEqualTo(100);
R.integer.config_reduceBrightColorsStrengthMax)).thenReturn(90); assertThat(mPreferenceController.getMin()).isEqualTo(0);
when(mResources.getInteger(
R.integer.config_reduceBrightColorsStrengthMin)).thenReturn(15);
assertThat(mPreferenceController.getMax()).isEqualTo(85);
assertThat(mPreferenceController.getMin()).isEqualTo(10);
assertThat(mPreferenceController.getMax() - mPreferenceController.getMin()) 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);
} }
} }