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

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

Merge "Fix displayed brightness value in settings." into rvc-dev

parents b02952a5 bf6624b6
Loading
Loading
Loading
Loading
+20 −16
Original line number Diff line number Diff line
@@ -14,7 +14,8 @@
package com.android.settings.display;

import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MAX;
import static com.android.settingslib.display.BrightnessUtils.convertLinearToGamma;
import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MIN;
import static com.android.settingslib.display.BrightnessUtils.convertLinearToGammaFloat;

import android.content.ContentResolver;
import android.content.Context;
@@ -52,16 +53,16 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
    private static final Uri BRIGHTNESS_FOR_VR_URI;
    private static final Uri BRIGHTNESS_ADJ_URI;

    private final int mMinBrightness;
    private final int mMaxBrightness;
    private final int mMinVrBrightness;
    private final int mMaxVrBrightness;
    private final float mMinBrightness;
    private final float mMaxBrightness;
    private final float mMinVrBrightness;
    private final float mMaxVrBrightness;
    private final ContentResolver mContentResolver;

    private Preference mPreference;

    static {
        BRIGHTNESS_URI = System.getUriFor(System.SCREEN_BRIGHTNESS);
        BRIGHTNESS_URI = System.getUriFor(System.SCREEN_BRIGHTNESS_FLOAT);
        BRIGHTNESS_FOR_VR_URI = System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR);
        BRIGHTNESS_ADJ_URI = System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ);
    }
@@ -80,10 +81,14 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
            lifecycle.addObserver(this);
        }
        PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        mMinBrightness = powerManager.getMinimumScreenBrightnessSetting();
        mMaxBrightness = powerManager.getMaximumScreenBrightnessSetting();
        mMinVrBrightness = powerManager.getMinimumScreenBrightnessForVrSetting();
        mMaxVrBrightness = powerManager.getMaximumScreenBrightnessForVrSetting();
        mMinBrightness = powerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM);
        mMaxBrightness = powerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM);
        mMinVrBrightness = powerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR);
        mMaxVrBrightness = powerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR);
        mContentResolver = mContext.getContentResolver();
    }

@@ -129,16 +134,15 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
    private double getCurrentBrightness() {
        final int value;
        if (isInVrMode()) {
            value = convertLinearToGamma(System.getInt(mContentResolver,
                    System.SCREEN_BRIGHTNESS_FOR_VR, mMaxBrightness),
            value = convertLinearToGammaFloat(System.getFloat(mContentResolver,
                    System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, mMaxBrightness),
                    mMinVrBrightness, mMaxVrBrightness);
        } else {
            value = convertLinearToGamma(Settings.System.getInt(mContentResolver,
                    System.SCREEN_BRIGHTNESS, mMinBrightness),
            value = convertLinearToGammaFloat(Settings.System.getFloat(mContentResolver,
                    System.SCREEN_BRIGHTNESS_FLOAT, mMinBrightness),
                    mMinBrightness, mMaxBrightness);

        }
        return getPercentage(value, 0, GAMMA_SPACE_MAX);
        return getPercentage(value, GAMMA_SPACE_MIN, GAMMA_SPACE_MAX);
    }

    private double getPercentage(double value, int min, int max) {
+23 −19
Original line number Diff line number Diff line
@@ -67,10 +67,14 @@ public class BrightnessLevelPreferenceControllerTest {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        mContentResolver = mContext.getContentResolver();
        when(mPowerManager.getMinimumScreenBrightnessSetting()).thenReturn(0);
        when(mPowerManager.getMaximumScreenBrightnessSetting()).thenReturn(100);
        when(mPowerManager.getMinimumScreenBrightnessForVrSetting()).thenReturn(0);
        when(mPowerManager.getMaximumScreenBrightnessForVrSetting()).thenReturn(100);
        when(mPowerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM)).thenReturn(0.0f);
        when(mPowerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM)).thenReturn(1.0f);
        when(mPowerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR)).thenReturn(0.0f);
        when(mPowerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR)).thenReturn(1.0f);
        ShadowApplication.getInstance().setSystemService(POWER_SERVICE,
                mPowerManager);
        when(mScreen.findPreference(anyString())).thenReturn(mPreference);
@@ -98,7 +102,7 @@ public class BrightnessLevelPreferenceControllerTest {
        controller.onStart();

        assertThat(shadowContentResolver.getContentObservers(
                System.getUriFor(System.SCREEN_BRIGHTNESS))).isNotEmpty();
                System.getUriFor(System.SCREEN_BRIGHTNESS_FLOAT))).isNotEmpty();
        assertThat(shadowContentResolver.getContentObservers(
                System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR))).isNotEmpty();
        assertThat(shadowContentResolver.getContentObservers(
@@ -116,9 +120,9 @@ public class BrightnessLevelPreferenceControllerTest {
        controller.onStop();

        assertThat(shadowContentResolver.getContentObservers(
                System.getUriFor(System.SCREEN_BRIGHTNESS))).isEmpty();
                System.getUriFor(System.SCREEN_BRIGHTNESS_FLOAT))).isEmpty();
        assertThat(shadowContentResolver.getContentObservers(
                System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR))).isEmpty();
                System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT))).isEmpty();
        assertThat(shadowContentResolver.getContentObservers(
                System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isEmpty();
    }
@@ -126,11 +130,11 @@ public class BrightnessLevelPreferenceControllerTest {
    @Test
    public void updateState_inVrMode_shouldSetSummaryToVrBrightness() {
        doReturn(true).when(mController).isInVrMode();
        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, 85);
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, 0.6f);

        mController.updateState(mPreference);

        verify(mPreference).setSummary("97%");
        verify(mPreference).setSummary("91%");
    }

    @Test
@@ -139,11 +143,11 @@ public class BrightnessLevelPreferenceControllerTest {
        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
                System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);

        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, 31);
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FLOAT, 0.1f);

        mController.updateState(mPreference);

        verify(mPreference).setSummary("78%");
        verify(mPreference).setSummary("54%");
    }

    @Test
@@ -152,11 +156,11 @@ public class BrightnessLevelPreferenceControllerTest {
        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
                System.SCREEN_BRIGHTNESS_MODE_MANUAL);

        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, 45);
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FLOAT, 0.5f);

        mController.updateState(mPreference);

        verify(mPreference).setSummary("85%");
        verify(mPreference).setSummary("87%");
    }

    @Test
@@ -164,11 +168,11 @@ public class BrightnessLevelPreferenceControllerTest {
        // VR mode
        doReturn(true).when(mController).isInVrMode();

        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, 105);
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, 1.05f);
        mController.updateState(mPreference);
        verify(mPreference).setSummary("100%");

        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, -20);
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, -20f);
        mController.updateState(mPreference);
        verify(mPreference).setSummary("0%");

@@ -178,11 +182,11 @@ public class BrightnessLevelPreferenceControllerTest {
                System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);

        reset(mPreference);
        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, 115);
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FLOAT, 1.15f);
        mController.updateState(mPreference);
        verify(mPreference).setSummary("100%");

        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, -10);
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FLOAT, -10f);
        mController.updateState(mPreference);
        verify(mPreference).setSummary("0%");

@@ -191,11 +195,11 @@ public class BrightnessLevelPreferenceControllerTest {
                System.SCREEN_BRIGHTNESS_MODE_MANUAL);

        reset(mPreference);
        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, 115);
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FLOAT, 1.15f);
        mController.updateState(mPreference);
        verify(mPreference).setSummary("100%");

        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, -10);
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FLOAT, -10f);
        mController.updateState(mPreference);
        verify(mPreference).setSummary("0%");
    }