From 4aced5d9065ebf1abbe35a8bcfb8f3bd105cd77a Mon Sep 17 00:00:00 2001 From: "Chris.CC Lee" Date: Tue, 4 Feb 2020 09:34:48 +0800 Subject: [PATCH] [DO NOT MERGE] Fix AoD front scrim being opaque at DOZE_PULSING When doze state changed from DOZE to DOZE_PULSING on devices not supporting doze_brightness_sensor_type sensor, there would be no sensor events to update the AoD front scrim. And due to the scrim was set to opaque at DOZE state, most views on the statusbar will be invisible. This patch change the scrim to transparent again at leaving DOZE state. Bug: 148129743 Test: atest DozeScreenBrightnessTest Change-Id: I1cf9d02c9e35dcb3e94cbbc24fec483c51e372d9 --- .../systemui/doze/DozeScreenBrightness.java | 4 ++++ .../systemui/doze/DozeScreenBrightnessTest.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java index bd6882c01bbd0..c27e633f2a962 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java @@ -161,6 +161,10 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi // again, it will only show after the brightness sensor has stabilized, // avoiding a potential flicker. scrimOpacity = 255; + } else if (!mScreenOff && mLightSensor == null) { + // No light sensor but previous state turned the screen black. Make the scrim + // transparent and below views visible. + scrimOpacity = 0; } else if (brightnessReady) { // Only unblank scrim once brightness is ready. scrimOpacity = computeScrimOpacity(sensorValue); diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java index 392c677b98278..3b760e31b4ac0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java @@ -156,6 +156,20 @@ public class DozeScreenBrightnessTest extends SysuiTestCase { assertEquals(1, mServiceFake.screenBrightness); } + @Test + public void testPulsing_withoutLightSensor_setsAoDDimmingScrimTransparent() throws Exception { + mScreen = new DozeScreenBrightness(mContext, mServiceFake, mSensorManager, + null /* sensor */, mHostFake, null /* handler */, + DEFAULT_BRIGHTNESS, SENSOR_TO_BRIGHTNESS, SENSOR_TO_OPACITY, + true /* debuggable */); + mScreen.transitionTo(UNINITIALIZED, INITIALIZED); + mScreen.transitionTo(INITIALIZED, DOZE); + + mScreen.transitionTo(DOZE, DOZE_REQUEST_PULSE); + + assertEquals(0f, mHostFake.aodDimmingScrimOpacity, 0.001f /* delta */); + } + @Test public void testDozingAfterPulsing_pausesLightSensor() throws Exception { mScreen.transitionTo(UNINITIALIZED, INITIALIZED);