DO NOT MERGE: Allow regular ambient light sensor sampling in doze mode.
Bug: 32249324 Change-Id: Ic6f08b7fa79e3a0ef88ebe9904b1f8b8acfb06d3
This commit is contained in:
@@ -1089,6 +1089,26 @@
|
|||||||
<!-- Period of time in which to consider light samples in milliseconds. -->
|
<!-- Period of time in which to consider light samples in milliseconds. -->
|
||||||
<integer name="config_autoBrightnessAmbientLightHorizon">10000</integer>
|
<integer name="config_autoBrightnessAmbientLightHorizon">10000</integer>
|
||||||
|
|
||||||
|
<!-- This flag enables light sensor sampling while dozing. A single sample is taken upon
|
||||||
|
entering doze mode, and another sample is taken every time the display enters STATE_DOZE
|
||||||
|
or STATE_DOZE_SUSPEND. It is recommended that config_dozeSensorLuxLevels and
|
||||||
|
config_dozeBrightnessBacklightValues have entries so that the doze mode brightness can be
|
||||||
|
determined dynamically.
|
||||||
|
-->
|
||||||
|
<bool name="config_allowAutoBrightnessActiveDozeLightSensor">false</bool>
|
||||||
|
|
||||||
|
<!-- This flag should be used with config_allowAutoBrightnessActiveDozeLightSensor set to true.
|
||||||
|
|
||||||
|
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 every time a new sample is taken in doze
|
||||||
|
mode and the screen brightness is based off the new reading. This mode may be better suited
|
||||||
|
for watches.
|
||||||
|
|
||||||
|
If this flag is false, then this buffer is untouched. -->
|
||||||
|
<bool name="config_useNewSensorSamplesForDoze">false</bool>
|
||||||
|
|
||||||
<!-- Screen brightness used to dim the screen when the user activity
|
<!-- Screen brightness used to dim the screen when the user activity
|
||||||
timeout expires. May be less than the minimum allowed brightness setting
|
timeout expires. May be less than the minimum allowed brightness setting
|
||||||
that can be set by the user. -->
|
that can be set by the user. -->
|
||||||
@@ -1184,21 +1204,6 @@
|
|||||||
<integer-array name="config_dynamicHysteresisLuxLevels">
|
<integer-array name="config_dynamicHysteresisLuxLevels">
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
|
||||||
<!-- 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
|
|
||||||
be better suited for watches.
|
|
||||||
|
|
||||||
If this flag is false, then this buffer is untouched. -->
|
|
||||||
<bool name="config_useNewSensorSamplesForDoze">false</bool>
|
|
||||||
|
|
||||||
<!-- Array of ambient light sensor lux threshold values for determining screen brightness for
|
<!-- Array of ambient light sensor lux threshold values for determining screen brightness for
|
||||||
devices that have both an ambient light sensor and the screen on while dozing. This is
|
devices that have both an ambient light sensor and the screen on while dozing. This is
|
||||||
used to determine the screen brightness while dozing by calculating the index to use for
|
used to determine the screen brightness while dozing by calculating the index to use for
|
||||||
|
|||||||
@@ -1668,6 +1668,7 @@
|
|||||||
<java-symbol type="array" name="config_notificationFallbackVibePattern" />
|
<java-symbol type="array" name="config_notificationFallbackVibePattern" />
|
||||||
<java-symbol type="array" name="config_onlySingleDcAllowed" />
|
<java-symbol type="array" name="config_onlySingleDcAllowed" />
|
||||||
<java-symbol type="bool" name="config_useNewSensorSamplesForDoze" />
|
<java-symbol type="bool" name="config_useNewSensorSamplesForDoze" />
|
||||||
|
<java-symbol type="bool" name="config_allowAutoBrightnessActiveDozeLightSensor" />
|
||||||
<java-symbol type="bool" name="config_useAttentionLight" />
|
<java-symbol type="bool" name="config_useAttentionLight" />
|
||||||
<java-symbol type="bool" name="config_animateScreenLights" />
|
<java-symbol type="bool" name="config_animateScreenLights" />
|
||||||
<java-symbol type="bool" name="config_automatic_brightness_available" />
|
<java-symbol type="bool" name="config_automatic_brightness_available" />
|
||||||
|
|||||||
@@ -178,8 +178,13 @@ class AutomaticBrightnessController {
|
|||||||
// Are we going to adjust brightness while dozing.
|
// Are we going to adjust brightness while dozing.
|
||||||
private boolean mDozing;
|
private boolean mDozing;
|
||||||
|
|
||||||
// True if we are collecting one last light sample when dozing to set the screen brightness
|
// True if we are collecting light samples when dozing to set the screen brightness. A single
|
||||||
private boolean mActiveDozeLightSensor = false;
|
// light sample is collected when entering doze mode. If autobrightness is enabled, calls to
|
||||||
|
// DisplayPowerController#updatePowerState in doze mode will also collect light samples.
|
||||||
|
private final boolean mUseActiveDozeLightSensorConfig;
|
||||||
|
|
||||||
|
// True if the ambient light sensor ring buffer should be cleared when entering doze mode.
|
||||||
|
private final boolean mUseNewSensorSamplesForDoze;
|
||||||
|
|
||||||
// True if we are collecting a brightness adjustment sample, along with some data
|
// True if we are collecting a brightness adjustment sample, along with some data
|
||||||
// for the initial state of the sample.
|
// for the initial state of the sample.
|
||||||
@@ -197,6 +202,7 @@ class AutomaticBrightnessController {
|
|||||||
int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig,
|
int lightSensorRate, int initialLightSensorRate, long brighteningLightDebounceConfig,
|
||||||
long darkeningLightDebounceConfig, boolean resetAmbientLuxAfterWarmUpConfig,
|
long darkeningLightDebounceConfig, boolean resetAmbientLuxAfterWarmUpConfig,
|
||||||
int ambientLightHorizon, float autoBrightnessAdjustmentMaxGamma,
|
int ambientLightHorizon, float autoBrightnessAdjustmentMaxGamma,
|
||||||
|
boolean activeDozeLightSensor, boolean useNewSensorSamplesForDoze,
|
||||||
LuxLevels luxLevels) {
|
LuxLevels luxLevels) {
|
||||||
mCallbacks = callbacks;
|
mCallbacks = callbacks;
|
||||||
mTwilight = LocalServices.getService(TwilightManager.class);
|
mTwilight = LocalServices.getService(TwilightManager.class);
|
||||||
@@ -215,6 +221,8 @@ class AutomaticBrightnessController {
|
|||||||
mAmbientLightHorizon = ambientLightHorizon;
|
mAmbientLightHorizon = ambientLightHorizon;
|
||||||
mWeightingIntercept = ambientLightHorizon;
|
mWeightingIntercept = ambientLightHorizon;
|
||||||
mScreenAutoBrightnessAdjustmentMaxGamma = autoBrightnessAdjustmentMaxGamma;
|
mScreenAutoBrightnessAdjustmentMaxGamma = autoBrightnessAdjustmentMaxGamma;
|
||||||
|
mUseNewSensorSamplesForDoze = useNewSensorSamplesForDoze;
|
||||||
|
mUseActiveDozeLightSensorConfig = activeDozeLightSensor;
|
||||||
mLuxLevels = luxLevels;
|
mLuxLevels = luxLevels;
|
||||||
|
|
||||||
mHandler = new AutomaticBrightnessHandler(looper);
|
mHandler = new AutomaticBrightnessHandler(looper);
|
||||||
@@ -242,20 +250,18 @@ class AutomaticBrightnessController {
|
|||||||
// switch to a wake-up light sensor instead but for now we will simply disable the sensor
|
// switch to a wake-up light sensor instead but for now we will simply disable the sensor
|
||||||
// and hold onto the last computed screen auto brightness. We save the dozing flag for
|
// and hold onto the last computed screen auto brightness. We save the dozing flag for
|
||||||
// debugging purposes.
|
// debugging purposes.
|
||||||
mDozing = dozing;
|
boolean enableSensor = enable && (dozing ? mUseActiveDozeLightSensorConfig : true);
|
||||||
boolean enableSensor = enable && !dozing;
|
if (enableSensor && dozing && !mDozing && mLightSensorEnabled
|
||||||
if (enableSensor && !mLightSensorEnabled && mActiveDozeLightSensor) {
|
&& mUseNewSensorSamplesForDoze) {
|
||||||
mActiveDozeLightSensor = false;
|
|
||||||
} else if (!enableSensor && mLightSensorEnabled && mLuxLevels.hasDynamicDozeBrightness()) {
|
|
||||||
// keep the light sensor active until another light sample is taken in doze mode
|
|
||||||
mActiveDozeLightSensor = true;
|
|
||||||
if (mLuxLevels.useNewSensorSamplesForDoze()) {
|
|
||||||
mAmbientLightRingBuffer.clear();
|
mAmbientLightRingBuffer.clear();
|
||||||
mInitialHorizonAmbientLightRingBuffer.clear();
|
mInitialHorizonAmbientLightRingBuffer.clear();
|
||||||
|
if (DEBUG) {
|
||||||
|
Slog.d(TAG, "configure: Clearing ambient light ring buffers when entering doze.");
|
||||||
|
}
|
||||||
mAmbientLuxValid = false;
|
mAmbientLuxValid = false;
|
||||||
return;
|
adjustLightSensorRate(mInitialLightSensorRate);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
mDozing = dozing;
|
||||||
boolean changed = setLightSensorEnabled(enableSensor);
|
boolean changed = setLightSensorEnabled(enableSensor);
|
||||||
changed |= setScreenAutoBrightnessAdjustment(adjustment);
|
changed |= setScreenAutoBrightnessAdjustment(adjustment);
|
||||||
changed |= setUseTwilight(useTwilight);
|
changed |= setUseTwilight(useTwilight);
|
||||||
@@ -315,6 +321,9 @@ class AutomaticBrightnessController {
|
|||||||
private boolean setLightSensorEnabled(boolean enable) {
|
private boolean setLightSensorEnabled(boolean enable) {
|
||||||
if (enable) {
|
if (enable) {
|
||||||
if (!mLightSensorEnabled) {
|
if (!mLightSensorEnabled) {
|
||||||
|
if (DEBUG) {
|
||||||
|
Slog.d(TAG, "setLightSensorEnabled: sensor enabled");
|
||||||
|
}
|
||||||
mLightSensorEnabled = true;
|
mLightSensorEnabled = true;
|
||||||
mAmbientLightRingBuffer.clear();
|
mAmbientLightRingBuffer.clear();
|
||||||
mInitialHorizonAmbientLightRingBuffer.clear();
|
mInitialHorizonAmbientLightRingBuffer.clear();
|
||||||
@@ -326,6 +335,9 @@ class AutomaticBrightnessController {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (mLightSensorEnabled) {
|
if (mLightSensorEnabled) {
|
||||||
|
if (DEBUG) {
|
||||||
|
Slog.d(TAG, "setLightSensorEnabled: sensor disabled");
|
||||||
|
}
|
||||||
mLightSensorEnabled = false;
|
mLightSensorEnabled = false;
|
||||||
mRecentLightSamples = 0;
|
mRecentLightSamples = 0;
|
||||||
if (mInitialLightSensorRate > 0) {
|
if (mInitialLightSensorRate > 0) {
|
||||||
@@ -347,8 +359,11 @@ class AutomaticBrightnessController {
|
|||||||
}
|
}
|
||||||
applyLightSensorMeasurement(time, lux);
|
applyLightSensorMeasurement(time, lux);
|
||||||
updateAmbientLux(time);
|
updateAmbientLux(time);
|
||||||
if (mActiveDozeLightSensor) {
|
if (mUseActiveDozeLightSensorConfig && mDozing) {
|
||||||
// disable the ambient light sensor and update the screen brightness
|
// disable the ambient light sensor and update the screen brightness
|
||||||
|
if (DEBUG) {
|
||||||
|
Slog.d(TAG, "handleLightSensorEvent: doze ambient light sensor reading: " + lux);
|
||||||
|
}
|
||||||
setLightSensorEnabled(false);
|
setLightSensorEnabled(false);
|
||||||
updateAutoBrightness(true /*sendUpdate*/);
|
updateAutoBrightness(true /*sendUpdate*/);
|
||||||
}
|
}
|
||||||
@@ -567,7 +582,7 @@ class AutomaticBrightnessController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int newScreenAutoBrightness;
|
int newScreenAutoBrightness;
|
||||||
if (mActiveDozeLightSensor) {
|
if (mUseActiveDozeLightSensorConfig && mDozing) {
|
||||||
newScreenAutoBrightness = mLuxLevels.getDozeBrightness(mAmbientLux);
|
newScreenAutoBrightness = mLuxLevels.getDozeBrightness(mAmbientLux);
|
||||||
} else {
|
} else {
|
||||||
newScreenAutoBrightness =
|
newScreenAutoBrightness =
|
||||||
|
|||||||
@@ -153,8 +153,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|||||||
// True if should use light sensor to automatically determine doze screen brightness.
|
// True if should use light sensor to automatically determine doze screen brightness.
|
||||||
private final boolean mAllowAutoBrightnessWhileDozingConfig;
|
private final boolean mAllowAutoBrightnessWhileDozingConfig;
|
||||||
|
|
||||||
// True if using only new sensor samples to automatically determine doze screen brightness.
|
// True if collecting light sensor samples in doze mode.
|
||||||
private boolean mUseNewSensorSamplesForDoze;
|
private boolean mUseActiveDozeLightSensorConfig;
|
||||||
|
|
||||||
// True if we should fade the screen while turning it off, false if we should play
|
// True if we should fade the screen while turning it off, false if we should play
|
||||||
// a stylish color fade animation instead.
|
// a stylish color fade animation instead.
|
||||||
@@ -350,11 +350,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|||||||
com.android.internal.R.array.config_dozeSensorLuxLevels);
|
com.android.internal.R.array.config_dozeSensorLuxLevels);
|
||||||
int[] dozeBrightnessBacklightValues = resources.getIntArray(
|
int[] dozeBrightnessBacklightValues = resources.getIntArray(
|
||||||
com.android.internal.R.array.config_dozeBrightnessBacklightValues);
|
com.android.internal.R.array.config_dozeBrightnessBacklightValues);
|
||||||
mUseNewSensorSamplesForDoze = resources.getBoolean(
|
boolean useNewSensorSamplesForDoze = resources.getBoolean(
|
||||||
com.android.internal.R.bool.config_useNewSensorSamplesForDoze);
|
com.android.internal.R.bool.config_useNewSensorSamplesForDoze);
|
||||||
|
mUseActiveDozeLightSensorConfig = resources.getBoolean(
|
||||||
|
com.android.internal.R.bool.config_allowAutoBrightnessActiveDozeLightSensor);
|
||||||
LuxLevels luxLevels = new LuxLevels(brightHysteresisLevels, darkHysteresisLevels,
|
LuxLevels luxLevels = new LuxLevels(brightHysteresisLevels, darkHysteresisLevels,
|
||||||
luxHysteresisLevels, mUseNewSensorSamplesForDoze, dozeSensorLuxLevels,
|
luxHysteresisLevels, dozeSensorLuxLevels, dozeBrightnessBacklightValues);
|
||||||
dozeBrightnessBacklightValues);
|
|
||||||
|
|
||||||
Spline screenAutoBrightnessSpline = createAutoBrightnessSpline(lux, screenBrightness);
|
Spline screenAutoBrightnessSpline = createAutoBrightnessSpline(lux, screenBrightness);
|
||||||
if (screenAutoBrightnessSpline == null) {
|
if (screenAutoBrightnessSpline == null) {
|
||||||
@@ -382,7 +383,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|||||||
mScreenBrightnessRangeMaximum, dozeScaleFactor, lightSensorRate,
|
mScreenBrightnessRangeMaximum, dozeScaleFactor, lightSensorRate,
|
||||||
initialLightSensorRate, brighteningLightDebounce, darkeningLightDebounce,
|
initialLightSensorRate, brighteningLightDebounce, darkeningLightDebounce,
|
||||||
autoBrightnessResetAmbientLuxAfterWarmUp, ambientLightHorizon,
|
autoBrightnessResetAmbientLuxAfterWarmUp, ambientLightHorizon,
|
||||||
autoBrightnessAdjustmentMaxGamma, luxLevels);
|
autoBrightnessAdjustmentMaxGamma, mUseActiveDozeLightSensorConfig,
|
||||||
|
useNewSensorSamplesForDoze, luxLevels);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -636,8 +638,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|||||||
if (mAutomaticBrightnessController != null) {
|
if (mAutomaticBrightnessController != null) {
|
||||||
final boolean autoBrightnessEnabledInDoze = mAllowAutoBrightnessWhileDozingConfig
|
final boolean autoBrightnessEnabledInDoze = mAllowAutoBrightnessWhileDozingConfig
|
||||||
&& (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND);
|
&& (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND);
|
||||||
autoBrightnessEnabled = mPowerRequest.useAutoBrightness
|
autoBrightnessEnabled = (mPowerRequest.useAutoBrightness
|
||||||
&& (state == Display.STATE_ON || autoBrightnessEnabledInDoze)
|
&& (state == Display.STATE_ON || autoBrightnessEnabledInDoze)
|
||||||
|
|| mUseActiveDozeLightSensorConfig && autoBrightnessEnabledInDoze)
|
||||||
&& brightness < 0;
|
&& brightness < 0;
|
||||||
final boolean userInitiatedChange = autoBrightnessAdjustmentChanged
|
final boolean userInitiatedChange = autoBrightnessAdjustmentChanged
|
||||||
&& mPowerRequest.brightnessSetByUser;
|
&& mPowerRequest.brightnessSetByUser;
|
||||||
@@ -680,8 +683,11 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
|
|||||||
if (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND) {
|
if (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND) {
|
||||||
if (brightness < 0) {
|
if (brightness < 0) {
|
||||||
brightness = mScreenBrightnessDozeConfig;
|
brightness = mScreenBrightnessDozeConfig;
|
||||||
} else if (mUseNewSensorSamplesForDoze) {
|
} else if (mUseActiveDozeLightSensorConfig) {
|
||||||
brightness = Math.min(brightness, mScreenBrightnessDozeConfig);
|
brightness = Math.min(brightness, mScreenBrightnessDozeConfig);
|
||||||
|
if (DEBUG) {
|
||||||
|
Slog.d(TAG, "updatePowerState: ALS-based doze brightness: " + brightness);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,12 +26,10 @@ final class LuxLevels {
|
|||||||
|
|
||||||
private static final boolean DEBUG = true;
|
private static final boolean DEBUG = true;
|
||||||
|
|
||||||
private final boolean mUseNewSensorSamplesForDoze;
|
|
||||||
|
|
||||||
private final float[] mBrightLevels;
|
private final float[] mBrightLevels;
|
||||||
private final float[] mDarkLevels;
|
private final float[] mDarkLevels;
|
||||||
private final float[] mLuxHysteresisLevels;
|
private final float[] mLuxHysteresisLevels;
|
||||||
private final float[] mDozeBacklightLevels;
|
private final float[] mDozeBrightnessBacklightValues;
|
||||||
private final float[] mDozeSensorLuxLevels;
|
private final float[] mDozeSensorLuxLevels;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,31 +39,29 @@ final class LuxLevels {
|
|||||||
* {@code luxLevels} has length n+1.
|
* {@code luxLevels} has length n+1.
|
||||||
*
|
*
|
||||||
* {@code dozeSensorLuxLevels} has length r.
|
* {@code dozeSensorLuxLevels} has length r.
|
||||||
* {@code dozeBacklightLevels} has length r+1.
|
* {@code dozeBrightnessBacklightValues} has length r+1.
|
||||||
*
|
*
|
||||||
* @param brightLevels an array of brightening hysteresis constraint constants
|
* @param brightLevels an array of brightening hysteresis constraint constants
|
||||||
* @param darkLevels an array of darkening hysteresis constraint constants
|
* @param darkLevels an array of darkening hysteresis constraint constants
|
||||||
* @param luxHysteresisLevels a monotonically increasing array of illuminance thresholds in lux
|
* @param luxHysteresisLevels a monotonically increasing array of illuminance thresholds in lux
|
||||||
* @param dozeSensorLuxLevels a monotonically increasing array of ALS thresholds in lux
|
* @param dozeSensorLuxLevels a monotonically increasing array of ALS thresholds in lux
|
||||||
* @param dozeBacklightLevels an array of screen brightness values for doze mode in lux
|
* @param dozeBrightnessBacklightValues an array of screen brightness values for doze mode in lux
|
||||||
*/
|
*/
|
||||||
public LuxLevels(int[] brightLevels, int[] darkLevels, int[] luxHysteresisLevels,
|
public LuxLevels(int[] brightLevels, int[] darkLevels, int[] luxHysteresisLevels,
|
||||||
boolean useNewSensorSamplesForDoze, int[] dozeSensorLuxLevels,
|
int[] dozeSensorLuxLevels, int[] dozeBrightnessBacklightValues) {
|
||||||
int[] dozeBacklightLevels) {
|
|
||||||
if (brightLevels.length != darkLevels.length ||
|
if (brightLevels.length != darkLevels.length ||
|
||||||
darkLevels.length !=luxHysteresisLevels.length + 1) {
|
darkLevels.length !=luxHysteresisLevels.length + 1) {
|
||||||
throw new IllegalArgumentException("Mismatch between hysteresis array lengths.");
|
throw new IllegalArgumentException("Mismatch between hysteresis array lengths.");
|
||||||
}
|
}
|
||||||
if (dozeBacklightLevels.length > 0 && dozeSensorLuxLevels.length > 0
|
if (dozeBrightnessBacklightValues.length > 0 && dozeSensorLuxLevels.length > 0
|
||||||
&& dozeBacklightLevels.length != dozeSensorLuxLevels.length + 1) {
|
&& dozeBrightnessBacklightValues.length != dozeSensorLuxLevels.length + 1) {
|
||||||
throw new IllegalArgumentException("Mismatch between doze lux array lengths.");
|
throw new IllegalArgumentException("Mismatch between doze lux array lengths.");
|
||||||
}
|
}
|
||||||
mBrightLevels = setArrayFormat(brightLevels, 1000.0f);
|
mBrightLevels = setArrayFormat(brightLevels, 1000.0f);
|
||||||
mDarkLevels = setArrayFormat(darkLevels, 1000.0f);
|
mDarkLevels = setArrayFormat(darkLevels, 1000.0f);
|
||||||
mLuxHysteresisLevels = setArrayFormat(luxHysteresisLevels, 1.0f);
|
mLuxHysteresisLevels = setArrayFormat(luxHysteresisLevels, 1.0f);
|
||||||
mUseNewSensorSamplesForDoze = useNewSensorSamplesForDoze;
|
|
||||||
mDozeSensorLuxLevels = setArrayFormat(dozeSensorLuxLevels, 1.0f);
|
mDozeSensorLuxLevels = setArrayFormat(dozeSensorLuxLevels, 1.0f);
|
||||||
mDozeBacklightLevels = setArrayFormat(dozeBacklightLevels, 1.0f);
|
mDozeBrightnessBacklightValues = setArrayFormat(dozeBrightnessBacklightValues, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -98,7 +94,7 @@ final class LuxLevels {
|
|||||||
* Return the doze backlight brightness level for the given ambient sensor lux level.
|
* Return the doze backlight brightness level for the given ambient sensor lux level.
|
||||||
*/
|
*/
|
||||||
public int getDozeBrightness(float lux) {
|
public int getDozeBrightness(float lux) {
|
||||||
int dozeBrightness = (int) getReferenceLevel(lux, mDozeBacklightLevels,
|
int dozeBrightness = (int) getReferenceLevel(lux, mDozeBrightnessBacklightValues,
|
||||||
mDozeSensorLuxLevels);
|
mDozeSensorLuxLevels);
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Slog.d(TAG, "doze brightness: " + dozeBrightness + ", lux=" + lux);
|
Slog.d(TAG, "doze brightness: " + dozeBrightness + ", lux=" + lux);
|
||||||
@@ -125,13 +121,6 @@ final class LuxLevels {
|
|||||||
return mDozeSensorLuxLevels.length > 0;
|
return mDozeSensorLuxLevels.length > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return if new ALS samples should be used for determining screen brightness while dozing.
|
|
||||||
*/
|
|
||||||
public boolean useNewSensorSamplesForDoze() {
|
|
||||||
return mUseNewSensorSamplesForDoze;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a float array where each i-th element equals {@code configArray[i]/divideFactor}.
|
* Return a float array where each i-th element equals {@code configArray[i]/divideFactor}.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user