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:
committed by
android-build-team Robot
parent
1751d893cf
commit
1bb13694ab
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user