diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java index bbd6f8053fe..4bb0a99b7ff 100644 --- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java +++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java @@ -13,6 +13,9 @@ */ package com.android.settings.display; +import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MAX; +import static com.android.settingslib.display.BrightnessUtils.convertLinearToGamma; + import android.content.ContentResolver; import android.content.Context; import android.database.ContentObserver; @@ -63,12 +66,12 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr } private ContentObserver mBrightnessObserver = - new ContentObserver(new Handler(Looper.getMainLooper())) { - @Override - public void onChange(boolean selfChange) { - updatedSummary(mPreference); - } - }; + new ContentObserver(new Handler(Looper.getMainLooper())) { + @Override + public void onChange(boolean selfChange) { + updatedSummary(mPreference); + } + }; public BrightnessLevelPreferenceController(Context context, Lifecycle lifecycle) { super(context); @@ -103,6 +106,7 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr public void updateState(Preference preference) { updatedSummary(preference); } + @Override public void onStart() { mContentResolver.registerContentObserver(BRIGHTNESS_URI, false, mBrightnessObserver); @@ -122,15 +126,18 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr } private double getCurrentBrightness() { + final int value; if (isInVrMode()) { - final double value = System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, - mMaxBrightness); - return getPercentage(value, mMinVrBrightness, mMaxVrBrightness); + value = convertLinearToGamma(System.getInt(mContentResolver, + System.SCREEN_BRIGHTNESS_FOR_VR, mMaxBrightness), + mMinVrBrightness, mMaxVrBrightness); } else { - final double value = Settings.System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS, - mMinBrightness); - return getPercentage(value, mMinBrightness, mMaxBrightness); + value = convertLinearToGamma(Settings.System.getInt(mContentResolver, + System.SCREEN_BRIGHTNESS, mMinBrightness), + mMinBrightness, mMaxBrightness); + } + return getPercentage(value, 0, GAMMA_SPACE_MAX); } private double getPercentage(double value, int min, int max) { diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java index adc3b66be06..e29ded0ee30 100644 --- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java @@ -122,7 +122,7 @@ public class BrightnessLevelPreferenceControllerTest { mController.updateState(mPreference); - verify(mPreference).setSummary("85%"); + verify(mPreference).setSummary("97%"); } @Test @@ -135,7 +135,7 @@ public class BrightnessLevelPreferenceControllerTest { mController.updateState(mPreference); - verify(mPreference).setSummary("31%"); + verify(mPreference).setSummary("78%"); } @Test @@ -148,7 +148,7 @@ public class BrightnessLevelPreferenceControllerTest { mController.updateState(mPreference); - verify(mPreference).setSummary("45%"); + verify(mPreference).setSummary("85%"); } @Test