Merge "Add ambient light ring buffer for initial data gathering period." into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ea999ac8e4
@@ -147,6 +147,9 @@ class AutomaticBrightnessController {
|
|||||||
// A ring buffer containing all of the recent ambient light sensor readings.
|
// A ring buffer containing all of the recent ambient light sensor readings.
|
||||||
private AmbientLightRingBuffer mAmbientLightRingBuffer;
|
private AmbientLightRingBuffer mAmbientLightRingBuffer;
|
||||||
|
|
||||||
|
// A ring buffer containing the light sensor readings for the initial horizon period.
|
||||||
|
private AmbientLightRingBuffer mInitialHorizonAmbientLightRingBuffer;
|
||||||
|
|
||||||
// The handler
|
// The handler
|
||||||
private AutomaticBrightnessHandler mHandler;
|
private AutomaticBrightnessHandler mHandler;
|
||||||
|
|
||||||
@@ -204,7 +207,10 @@ class AutomaticBrightnessController {
|
|||||||
mScreenAutoBrightnessAdjustmentMaxGamma = autoBrightnessAdjustmentMaxGamma;
|
mScreenAutoBrightnessAdjustmentMaxGamma = autoBrightnessAdjustmentMaxGamma;
|
||||||
|
|
||||||
mHandler = new AutomaticBrightnessHandler(looper);
|
mHandler = new AutomaticBrightnessHandler(looper);
|
||||||
mAmbientLightRingBuffer = new AmbientLightRingBuffer(mLightSensorRate, mAmbientLightHorizon);
|
mAmbientLightRingBuffer =
|
||||||
|
new AmbientLightRingBuffer(mLightSensorRate, mAmbientLightHorizon);
|
||||||
|
mInitialHorizonAmbientLightRingBuffer =
|
||||||
|
new AmbientLightRingBuffer(mLightSensorRate, mAmbientLightHorizon);
|
||||||
|
|
||||||
if (!DEBUG_PRETEND_LIGHT_SENSOR_ABSENT) {
|
if (!DEBUG_PRETEND_LIGHT_SENSOR_ABSENT) {
|
||||||
mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
|
mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
|
||||||
@@ -273,6 +279,8 @@ class AutomaticBrightnessController {
|
|||||||
pw.println(" mLastObservedLuxTime=" + TimeUtils.formatUptime(mLastObservedLuxTime));
|
pw.println(" mLastObservedLuxTime=" + TimeUtils.formatUptime(mLastObservedLuxTime));
|
||||||
pw.println(" mRecentLightSamples=" + mRecentLightSamples);
|
pw.println(" mRecentLightSamples=" + mRecentLightSamples);
|
||||||
pw.println(" mAmbientLightRingBuffer=" + mAmbientLightRingBuffer);
|
pw.println(" mAmbientLightRingBuffer=" + mAmbientLightRingBuffer);
|
||||||
|
pw.println(" mInitialHorizonAmbientLightRingBuffer=" +
|
||||||
|
mInitialHorizonAmbientLightRingBuffer);
|
||||||
pw.println(" mScreenAutoBrightness=" + mScreenAutoBrightness);
|
pw.println(" mScreenAutoBrightness=" + mScreenAutoBrightness);
|
||||||
pw.println(" mScreenAutoBrightnessAdjustment=" + mScreenAutoBrightnessAdjustment);
|
pw.println(" mScreenAutoBrightnessAdjustment=" + mScreenAutoBrightnessAdjustment);
|
||||||
pw.println(" mScreenAutoBrightnessAdjustmentMaxGamma=" + mScreenAutoBrightnessAdjustmentMaxGamma);
|
pw.println(" mScreenAutoBrightnessAdjustmentMaxGamma=" + mScreenAutoBrightnessAdjustmentMaxGamma);
|
||||||
@@ -295,6 +303,7 @@ class AutomaticBrightnessController {
|
|||||||
mAmbientLuxValid = !mResetAmbientLuxAfterWarmUpConfig;
|
mAmbientLuxValid = !mResetAmbientLuxAfterWarmUpConfig;
|
||||||
mRecentLightSamples = 0;
|
mRecentLightSamples = 0;
|
||||||
mAmbientLightRingBuffer.clear();
|
mAmbientLightRingBuffer.clear();
|
||||||
|
mInitialHorizonAmbientLightRingBuffer.clear();
|
||||||
mHandler.removeMessages(MSG_UPDATE_AMBIENT_LUX);
|
mHandler.removeMessages(MSG_UPDATE_AMBIENT_LUX);
|
||||||
mSensorManager.unregisterListener(mLightSensorListener);
|
mSensorManager.unregisterListener(mLightSensorListener);
|
||||||
}
|
}
|
||||||
@@ -311,6 +320,11 @@ class AutomaticBrightnessController {
|
|||||||
|
|
||||||
private void applyLightSensorMeasurement(long time, float lux) {
|
private void applyLightSensorMeasurement(long time, float lux) {
|
||||||
mRecentLightSamples++;
|
mRecentLightSamples++;
|
||||||
|
// Store all of the light measurements for the intial horizon period. This is to help
|
||||||
|
// diagnose dim wake ups and slow responses in b/27951906.
|
||||||
|
if (time <= mLightSensorEnableTime + mAmbientLightHorizon) {
|
||||||
|
mInitialHorizonAmbientLightRingBuffer.push(time, lux);
|
||||||
|
}
|
||||||
mAmbientLightRingBuffer.prune(time - mAmbientLightHorizon);
|
mAmbientLightRingBuffer.prune(time - mAmbientLightHorizon);
|
||||||
mAmbientLightRingBuffer.push(time, lux);
|
mAmbientLightRingBuffer.push(time, lux);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user