From 648ea2df31eb372081a311487475436989d02081 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Thu, 20 Jul 2017 18:27:17 +0100 Subject: Add new bucket above high brightness for "sunlight". Being in direct sunlight can cause the screen to look like it's "strobing", so we want to tell the kernel when we think we're in this state so it can configure the display to avoid this effect. Bug: 63820596 Test: TBD Change-Id: Ie0b7a8d45d080231748337507d1037ab45950aed --- packages/SystemUI/res/values/config.xml | 3 +++ .../src/com/android/systemui/doze/DozeScreenBrightness.java | 12 +++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 1705f79389bd..58117bd73883 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -273,6 +273,9 @@ 27 + + 28 + false diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java index 28a45aae6892..ed4b131cd83f 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java @@ -39,6 +39,7 @@ public class DozeScreenBrightness implements DozeMachine.Part, SensorEventListen private final int mHighBrightness; private final int mLowBrightness; + private final int mSunlightBrightness; public DozeScreenBrightness(Context context, DozeMachine.Service service, SensorManager sensorManager, Sensor lightSensor, Handler handler) { @@ -52,6 +53,8 @@ public class DozeScreenBrightness implements DozeMachine.Part, SensorEventListen R.integer.config_doze_aod_brightness_low); mHighBrightness = context.getResources().getInteger( R.integer.config_doze_aod_brightness_high); + mSunlightBrightness = context.getResources().getInteger( + R.integer.config_doze_aod_brightness_sunlight); } @Override @@ -83,9 +86,12 @@ public class DozeScreenBrightness implements DozeMachine.Part, SensorEventListen } private int computeBrightness(int sensorValue) { - // The sensor reports 0 for off, 1 for low brightness and 2 for high brightness. - // We currently use DozeScreenState for screen off, so we treat off as low brightness. - if (sensorValue >= 2) { + // The sensor reports 0 for off, 1 for low brightness, 2 for high brightness, and 3 for + // sunlight. We currently use DozeScreenState for screen off, so we treat off as low + // brightness. + if (sensorValue >= 3) { + return mSunlightBrightness; + } else if (sensorValue == 2) { return mHighBrightness; } else { return mLowBrightness; -- cgit v1.2.3-59-g8ed1b