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
(cherry picked from commit 1346b066bd)
This commit is contained in:
Fan Zhang
2018-04-24 11:31:58 -07:00
committed by android-build-team Robot
parent 1751d893cf
commit 1bb13694ab
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) {

View File

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