Send -1.0 when brightness is off
Brightness was being sent as 0(MIN) previously, we want -1.0(OFF) to be sent to the display. Bug: 185853190 Bug: 184908496 Test: manual Change-Id: I14cff1a769e769fff1fa6e90ef0177c3b8518ba4
This commit is contained in:
@@ -74,6 +74,8 @@ public class DisplayDeviceConfig {
|
||||
// so -2 is used instead
|
||||
private static final float INVALID_BRIGHTNESS_IN_CONFIG = -2f;
|
||||
|
||||
private static final float NITS_INVALID = -1;
|
||||
|
||||
private final Context mContext;
|
||||
|
||||
// The details of the ambient light sensor associated with this display.
|
||||
@@ -230,7 +232,7 @@ public class DisplayDeviceConfig {
|
||||
public float getNitsFromBacklight(float backlight) {
|
||||
if (mBacklightToNitsSpline == null) {
|
||||
Slog.wtf(TAG, "requesting nits when no mapping exists.");
|
||||
return -1;
|
||||
return NITS_INVALID;
|
||||
}
|
||||
backlight = Math.max(backlight, mBacklightMinimum);
|
||||
return mBacklightToNitsSpline.interpolate(backlight);
|
||||
@@ -279,13 +281,6 @@ public class DisplayDeviceConfig {
|
||||
return mProximitySensor;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if a nits to backlight mapping is defined in this config, false otherwise.
|
||||
*/
|
||||
public boolean hasNitsMapping() {
|
||||
return mBacklightToNitsSpline != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param quirkValue The quirk to test.
|
||||
* @return {@code true} if the specified quirk is present in this configuration,
|
||||
|
||||
@@ -67,8 +67,6 @@ final class LocalDisplayAdapter extends DisplayAdapter {
|
||||
|
||||
private static final int NO_DISPLAY_MODE_ID = 0;
|
||||
|
||||
private static final float NITS_INVALID = -1;
|
||||
|
||||
private final LongSparseArray<LocalDisplayDevice> mDevices = new LongSparseArray<>();
|
||||
|
||||
private final Injector mInjector;
|
||||
@@ -770,48 +768,51 @@ final class LocalDisplayAdapter extends DisplayAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
private void setDisplayBrightness(float brightness, float sdrBrightness) {
|
||||
// Ensure brightnessState is valid before processing and sending to
|
||||
// surface control
|
||||
if (Float.isNaN(brightness)) {
|
||||
private void setDisplayBrightness(float brightnessState,
|
||||
float sdrBrightnessState) {
|
||||
// brightnessState includes invalid, off and full range.
|
||||
if (Float.isNaN(brightnessState) || Float.isNaN(sdrBrightnessState)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (DEBUG) {
|
||||
Slog.d(TAG, "setDisplayBrightness("
|
||||
+ "id=" + physicalDisplayId
|
||||
+ ", brightness=" + brightness
|
||||
+ ", sdrBrightness=" + sdrBrightness + ")");
|
||||
+ ", brightnessState=" + brightnessState
|
||||
+ ", sdrBrightnessState=" + sdrBrightnessState + ")");
|
||||
}
|
||||
|
||||
Trace.traceBegin(Trace.TRACE_TAG_POWER, "setDisplayBrightness("
|
||||
+ "id=" + physicalDisplayId + ", brightness=" + brightness
|
||||
+ ", sdrBrightness=" + sdrBrightness + ")");
|
||||
+ "id=" + physicalDisplayId + ", brightnessState="
|
||||
+ brightnessState + ", sdrBrightnessState=" + sdrBrightnessState
|
||||
+ ")");
|
||||
try {
|
||||
final float backlight = brightnessToBacklight(brightness);
|
||||
float nits = NITS_INVALID;
|
||||
float sdrBacklight = PowerManager.BRIGHTNESS_INVALID_FLOAT;
|
||||
float sdrNits = NITS_INVALID;
|
||||
if (getDisplayDeviceConfig().hasNitsMapping()
|
||||
&& sdrBrightness != PowerManager.BRIGHTNESS_INVALID_FLOAT) {
|
||||
nits = backlightToNits(backlight);
|
||||
sdrBacklight = brightnessToBacklight(sdrBrightness);
|
||||
sdrNits = backlightToNits(sdrBacklight);
|
||||
}
|
||||
final float backlight = brightnessToBacklight(brightnessState);
|
||||
final float sdrBacklight = brightnessToBacklight(sdrBrightnessState);
|
||||
|
||||
final float nits = backlightToNits(backlight);
|
||||
final float sdrNits = backlightToNits(sdrBacklight);
|
||||
|
||||
mBacklightAdapter.setBacklight(sdrBacklight, sdrNits, backlight, nits);
|
||||
Trace.traceCounter(Trace.TRACE_TAG_POWER,
|
||||
"ScreenBrightness",
|
||||
BrightnessSynchronizer.brightnessFloatToInt(brightness));
|
||||
BrightnessSynchronizer.brightnessFloatToInt(brightnessState));
|
||||
Trace.traceCounter(Trace.TRACE_TAG_POWER,
|
||||
"SdrScreenBrightness",
|
||||
BrightnessSynchronizer.brightnessFloatToInt(sdrBrightness));
|
||||
BrightnessSynchronizer.brightnessFloatToInt(
|
||||
sdrBrightnessState));
|
||||
} finally {
|
||||
Trace.traceEnd(Trace.TRACE_TAG_POWER);
|
||||
}
|
||||
}
|
||||
|
||||
private float brightnessToBacklight(float brightness) {
|
||||
return getDisplayDeviceConfig().getBacklightFromBrightness(brightness);
|
||||
if (BrightnessSynchronizer.floatEquals(
|
||||
brightness, PowerManager.BRIGHTNESS_OFF_FLOAT)) {
|
||||
return PowerManager.BRIGHTNESS_OFF_FLOAT;
|
||||
} else {
|
||||
return getDisplayDeviceConfig().getBacklightFromBrightness(brightness);
|
||||
}
|
||||
}
|
||||
|
||||
private float backlightToNits(float backlight) {
|
||||
|
||||
Reference in New Issue
Block a user