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

Commit fb79b1a2 authored by Fiona Campbell's avatar Fiona Campbell Committed by Android (Google) Code Review
Browse files

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

parents 6cd51805 fc949953
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -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;
    }
}
+17 −8
Original line number Diff line number Diff line
@@ -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);
    }
}