Merge "DO NOT MERGE: Cap doze autobrightness when collecting new sensor samples" into cw-f-dev

This commit is contained in:
Julius D'souza
2016-10-22 03:58:25 +00:00
committed by Android (Google) Code Review
2 changed files with 19 additions and 9 deletions

View File

@@ -1178,9 +1178,13 @@
<integer-array name="config_dynamicHysteresisLuxLevels">
</integer-array>
<!-- This flag requires config_dozeSensorLuxLevels to have one or more entries and only affects
the screen brightness while dozing. The screen brightness of a device is based off of a
ring buffer of the last n seconds of ambient light sensor sample readings.
<!-- This flag requires config_dozeBrightnessBacklightValues to have two or more entries; it is
recommended that config_screenBrightnessDoze be greater than or equal to all these entries
since this value is used as the doze screen brightness until a new sensor sample is
acquired. This flag only affects the screen brightness while dozing.
The screen brightness of a device is based off of a ring buffer of the last n seconds of
ambient light sensor sample readings.
If this flag is true, then this buffer is cleared and the screen brightness is based off of
ambient light sensor readings that are obtained while the device is dozing. This mode may

View File

@@ -153,6 +153,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// True if should use light sensor to automatically determine doze screen brightness.
private final boolean mAllowAutoBrightnessWhileDozingConfig;
// True if using only new sensor samples to automatically determine doze screen brightness.
private boolean mUseNewSensorSamplesForDoze;
// True if we should fade the screen while turning it off, false if we should play
// a stylish color fade animation instead.
private boolean mColorFadeFadesConfig;
@@ -345,10 +348,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
com.android.internal.R.array.config_dozeSensorLuxLevels);
int[] dozeBrightnessBacklightValues = resources.getIntArray(
com.android.internal.R.array.config_dozeBrightnessBacklightValues);
boolean useNewSensorSamplesForDoze = resources.getBoolean(
mUseNewSensorSamplesForDoze = resources.getBoolean(
com.android.internal.R.bool.config_useNewSensorSamplesForDoze);
LuxLevels luxLevels = new LuxLevels(brightHysteresisLevels, darkHysteresisLevels,
luxHysteresisLevels, useNewSensorSamplesForDoze, dozeSensorLuxLevels,
luxHysteresisLevels, mUseNewSensorSamplesForDoze, dozeSensorLuxLevels,
dozeBrightnessBacklightValues);
Spline screenAutoBrightnessSpline = createAutoBrightnessSpline(lux, screenBrightness);
@@ -671,10 +674,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
mAppliedAutoBrightness = false;
}
// Use default brightness when dozing unless overridden.
if (brightness < 0 && (state == Display.STATE_DOZE
|| state == Display.STATE_DOZE_SUSPEND)) {
brightness = mScreenBrightnessDozeConfig;
// Use default brightness when dozing unless overridden or if collecting sensor samples.
if (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND) {
if (brightness < 0) {
brightness = mScreenBrightnessDozeConfig;
} else if (mUseNewSensorSamplesForDoze) {
brightness = Math.min(brightness, mScreenBrightnessDozeConfig);
}
}
// Apply manual brightness.