From 1346b066bde27e89f876eca6ada31c63d8ea29d0 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 24 Apr 2018 11:31:58 -0700 Subject: [PATCH] Update brightness percentage display logic to match sysui. The brightness raw value is in linear pace, we need to convert it to gamma space to make it match the way sysui represents the brightness level. Bug: 73810208 Change-Id: Ic4551bbeff4a6af30f7af2871a79a7d797279edb Fixes: 78173473 Test: robotests --- .../BrightnessLevelPreferenceController.java | 31 ++++++++++++------- ...ightnessLevelPreferenceControllerTest.java | 6 ++-- 2 files changed, 22 insertions(+), 15 deletions(-) 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