Revert "Report brightness event to StatsLog"

This reverts commit d5cdb61d35.

Reason for revert: b/269556535

Also, this accesses locked structures without holding the lock in an unsafe way.

Bug: b/269556535
Test: build success
Change-Id: I3a6d3e62d4418cb10199f569d6d750396a51443e
Merged-In: I3a6d3e62d4418cb10199f569d6d750396a51443e
This commit is contained in:
Michael Wright
2023-02-16 13:39:24 +00:00
parent 8c618e614b
commit 76ade2d4ff
2 changed files with 0 additions and 304 deletions

View File

@@ -1886,10 +1886,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
? BrightnessEvent.FLAG_USER_SET : 0));
Slog.i(mTag, newEvent.toString(/* includeTime= */ false));
// Log all events which are not temporary
if (newEvent.getReason().getReason() != BrightnessReason.REASON_TEMPORARY) {
logBrightnessEvent(newEvent, unthrottledBrightnessState);
}
if (userSetBrightnessChanged) {
logManualBrightnessEvent(newEvent);
}
@@ -3002,154 +2998,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
}
}
// Return bucket index of range_[left]_[right] where
// left <= nits < right
private int nitsToRangeIndex(float nits) {
float[] boundaries = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80,
90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1200,
1400, 1600, 1800, 2000, 2250, 2500, 2750, 3000};
int[] rangeIndex = {
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_UNKNOWN,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_0_1,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1_2,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2_3,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_3_4,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_4_5,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_5_6,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_6_7,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_7_8,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_8_9,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_9_10,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_10_20,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_20_30,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_30_40,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_40_50,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_50_60,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_60_70,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_70_80,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_80_90,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_90_100,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_100_200,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_200_300,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_300_400,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_400_500,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_500_600,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_600_700,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_700_800,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_800_900,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_900_1000,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1000_1200,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1200_1400,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1400_1600,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1600_1800,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1800_2000,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2000_2250,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2250_2500,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2500_2750,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2750_3000,
};
for (int i = 0; i < boundaries.length; i++) {
if (nits < boundaries[i]) {
return rangeIndex[i];
}
}
return FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_3000_INF;
}
private int convertBrightnessReasonToStatsEnum(int brightnessReason) {
switch(brightnessReason) {
case BrightnessReason.REASON_UNKNOWN:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_UNKNOWN;
case BrightnessReason.REASON_MANUAL:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_MANUAL;
case BrightnessReason.REASON_DOZE:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_DOZE;
case BrightnessReason.REASON_DOZE_DEFAULT:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_DOZE_DEFAULT;
case BrightnessReason.REASON_AUTOMATIC:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_AUTOMATIC;
case BrightnessReason.REASON_SCREEN_OFF:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_SCREEN_OFF;
case BrightnessReason.REASON_OVERRIDE:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_OVERRIDE;
case BrightnessReason.REASON_TEMPORARY:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_TEMPORARY;
case BrightnessReason.REASON_BOOST:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_BOOST;
case BrightnessReason.REASON_SCREEN_OFF_BRIGHTNESS_SENSOR:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_SCREEN_OFF_BRIGHTNESS_SENSOR;
case BrightnessReason.REASON_FOLLOWER:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_FOLLOWER;
}
return FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_UNKNOWN;
}
private int convertHbmModeToStatsEnum(int mode) {
switch(mode) {
case BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__HBM_MODE__HIGH_BRIGHTNESS_MODE_OFF;
case BrightnessInfo.HIGH_BRIGHTNESS_MODE_SUNLIGHT:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__HBM_MODE__HIGH_BRIGHTNESS_MODE_SUNLIGHT;
case BrightnessInfo.HIGH_BRIGHTNESS_MODE_HDR:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__HBM_MODE__HIGH_BRIGHTNESS_MODE_HDR;
}
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__HBM_MODE__HIGH_BRIGHTNESS_MODE_OFF;
}
// unmodifiedBrightness: the brightness value that has not been
// modified by any modifiers(dimming/throttling/low-power-mode)
private void logBrightnessEvent(BrightnessEvent event, float unmodifiedBrightness) {
int modifier = event.getReason().getModifier();
// It's easier to check if the brightness is at maximum level using the brightness
// value untouched by any modifiers
boolean brightnessIsMax = unmodifiedBrightness == event.getHbmMax();
float brightnessInNits = convertToNits(event.getBrightness());
float lowPowerModeFactor = event.getPowerFactor();
int rbcStrength = event.getRbcStrength();
float hbmMaxNits = convertToNits(event.getHbmMax());
float thermalCapNits = convertToNits(event.getThermalMax());
if (mLogicalDisplay.getPrimaryDisplayDeviceLocked() != null
&& mLogicalDisplay.getPrimaryDisplayDeviceLocked()
.getDisplayDeviceInfoLocked().type == Display.TYPE_INTERNAL) {
FrameworkStatsLog.write(FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2,
event.getPhysicalDisplayId().hashCode(),
brightnessInNits,
convertToNits(unmodifiedBrightness),
nitsToRangeIndex(brightnessInNits),
brightnessIsMax,
(event.getFlags() & BrightnessEvent.FLAG_USER_SET) > 0,
convertBrightnessReasonToStatsEnum(event.getReason().getReason()),
convertHbmModeToStatsEnum(event.getHbmMode()),
(modifier & BrightnessReason.MODIFIER_LOW_POWER) > 0,
(modifier & BrightnessReason.MODIFIER_THROTTLED) > 0,
event.isRbcEnabled(),
event.getLux(),
event.wasShortTermModelActive(),
lowPowerModeFactor,
rbcStrength,
hbmMaxNits,
thermalCapNits,
event.isAutomaticBrightnessEnabled());
}
}
private void logManualBrightnessEvent(BrightnessEvent event) {
float appliedLowPowerMode = event.isLowPowerModeSet() ? event.getPowerFactor() : -1f;
int appliedRbcStrength = event.isRbcEnabled() ? event.getRbcStrength() : -1;

View File

@@ -1601,10 +1601,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
? BrightnessEvent.FLAG_USER_SET : 0));
Slog.i(mTag, newEvent.toString(/* includeTime= */ false));
// Log all events which are not temporary
if (newEvent.getReason().getReason() != BrightnessReason.REASON_TEMPORARY) {
logBrightnessEvent(newEvent, unthrottledBrightnessState);
}
if (userSetBrightnessChanged) {
logManualBrightnessEvent(newEvent);
}
@@ -2541,154 +2537,6 @@ final class DisplayPowerController2 implements AutomaticBrightnessController.Cal
return mDisplayId == Display.DEFAULT_DISPLAY || mBootCompleted;
}
// Return bucket index of range_[left]_[right] where
// left <= nits < right
private int nitsToRangeIndex(float nits) {
float[] boundaries = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80,
90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1200,
1400, 1600, 1800, 2000, 2250, 2500, 2750, 3000};
int[] rangeIndex = {
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_UNKNOWN,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_0_1,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1_2,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2_3,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_3_4,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_4_5,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_5_6,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_6_7,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_7_8,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_8_9,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_9_10,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_10_20,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_20_30,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_30_40,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_40_50,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_50_60,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_60_70,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_70_80,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_80_90,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_90_100,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_100_200,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_200_300,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_300_400,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_400_500,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_500_600,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_600_700,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_700_800,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_800_900,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_900_1000,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1000_1200,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1200_1400,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1400_1600,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1600_1800,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_1800_2000,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2000_2250,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2250_2500,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2500_2750,
FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_2750_3000,
};
for (int i = 0; i < boundaries.length; i++) {
if (nits < boundaries[i]) {
return rangeIndex[i];
}
}
return FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__BUCKET_INDEX__RANGE_3000_INF;
}
private int convertBrightnessReasonToStatsEnum(int brightnessReason) {
switch(brightnessReason) {
case BrightnessReason.REASON_UNKNOWN:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_UNKNOWN;
case BrightnessReason.REASON_MANUAL:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_MANUAL;
case BrightnessReason.REASON_DOZE:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_DOZE;
case BrightnessReason.REASON_DOZE_DEFAULT:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_DOZE_DEFAULT;
case BrightnessReason.REASON_AUTOMATIC:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_AUTOMATIC;
case BrightnessReason.REASON_SCREEN_OFF:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_SCREEN_OFF;
case BrightnessReason.REASON_OVERRIDE:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_OVERRIDE;
case BrightnessReason.REASON_TEMPORARY:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_TEMPORARY;
case BrightnessReason.REASON_BOOST:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_BOOST;
case BrightnessReason.REASON_SCREEN_OFF_BRIGHTNESS_SENSOR:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_SCREEN_OFF_BRIGHTNESS_SENSOR;
case BrightnessReason.REASON_FOLLOWER:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_FOLLOWER;
}
return FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2__REASON__REASON_UNKNOWN;
}
private int convertHbmModeToStatsEnum(int mode) {
switch(mode) {
case BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__HBM_MODE__HIGH_BRIGHTNESS_MODE_OFF;
case BrightnessInfo.HIGH_BRIGHTNESS_MODE_SUNLIGHT:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__HBM_MODE__HIGH_BRIGHTNESS_MODE_SUNLIGHT;
case BrightnessInfo.HIGH_BRIGHTNESS_MODE_HDR:
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__HBM_MODE__HIGH_BRIGHTNESS_MODE_HDR;
}
return FrameworkStatsLog
.SCREEN_BRIGHTNESS_CHANGED_V2__HBM_MODE__HIGH_BRIGHTNESS_MODE_OFF;
}
// unmodifiedBrightness: the brightness value that has not been
// modified by any modifiers(dimming/throttling/low-power-mode)
private void logBrightnessEvent(BrightnessEvent event, float unmodifiedBrightness) {
int modifier = event.getReason().getModifier();
// It's easier to check if the brightness is at maximum level using the brightness
// value untouched by any modifiers
boolean brightnessIsMax = unmodifiedBrightness == event.getHbmMax();
float brightnessInNits = convertToNits(event.getBrightness());
float lowPowerModeFactor = event.getPowerFactor();
int rbcStrength = event.getRbcStrength();
float hbmMaxNits = convertToNits(event.getHbmMax());
float thermalCapNits = convertToNits(event.getThermalMax());
if (mLogicalDisplay.getPrimaryDisplayDeviceLocked() != null
&& mLogicalDisplay.getPrimaryDisplayDeviceLocked()
.getDisplayDeviceInfoLocked().type == Display.TYPE_INTERNAL) {
FrameworkStatsLog.write(FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED_V2,
event.getPhysicalDisplayId().hashCode(),
brightnessInNits,
convertToNits(unmodifiedBrightness),
nitsToRangeIndex(brightnessInNits),
brightnessIsMax,
(event.getFlags() & BrightnessEvent.FLAG_USER_SET) > 0,
convertBrightnessReasonToStatsEnum(event.getReason().getReason()),
convertHbmModeToStatsEnum(event.getHbmMode()),
(modifier & BrightnessReason.MODIFIER_LOW_POWER) > 0,
(modifier & BrightnessReason.MODIFIER_THROTTLED) > 0,
event.isRbcEnabled(),
event.getLux(),
event.wasShortTermModelActive(),
lowPowerModeFactor,
rbcStrength,
hbmMaxNits,
thermalCapNits,
event.isAutomaticBrightnessEnabled());
}
}
private final class DisplayControllerHandler extends Handler {
DisplayControllerHandler(Looper looper) {
super(looper, null, true /*async*/);