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
This commit is contained in:
Fan Zhang
2018-04-24 11:31:58 -07:00
parent ac951a69aa
commit 1346b066bd
2 changed files with 22 additions and 15 deletions

View File

@@ -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) {