From a1d372c4ce418511317c7d2e249c6b31b0a02cfb Mon Sep 17 00:00:00 2001 From: Beverly Date: Wed, 16 Feb 2022 14:21:37 +0000 Subject: [PATCH] DO NOT MERGE Doze-Pulsing should always go to display on The only exception is if the device requires a blank frame before turning the display back on. Test: atest DozeMachineTest Test: make a phone call, then enter AOD and attempt UDFPS to see HBM Bug: 213875085 Change-Id: Ia3025c1b6e479180edf489dcb53dec8f81f7820f --- .../com/android/systemui/doze/DozeMachine.java | 4 +++- .../android/systemui/doze/DozeMachineTest.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java index befb648152d4a..789ad6223e79a 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java @@ -118,9 +118,11 @@ public class DozeMachine { switch (this) { case UNINITIALIZED: case INITIALIZED: - case DOZE_REQUEST_PULSE: return parameters.shouldControlScreenOff() ? Display.STATE_ON : Display.STATE_OFF; + case DOZE_REQUEST_PULSE: + return parameters.getDisplayNeedsBlanking() ? Display.STATE_OFF + : Display.STATE_ON; case DOZE_AOD_PAUSED: case DOZE: return Display.STATE_OFF; diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java index 8078b6c8bda46..56844292ce4a7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java @@ -42,12 +42,14 @@ import static org.mockito.Mockito.when; import android.hardware.display.AmbientDisplayConfiguration; import android.testing.AndroidTestingRunner; import android.testing.UiThreadTest; +import android.view.Display; import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import com.android.systemui.dock.DockManager; import com.android.systemui.keyguard.WakefulnessLifecycle; +import com.android.systemui.statusbar.phone.DozeParameters; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.util.wakelock.WakeLockFake; @@ -444,4 +446,20 @@ public class DozeMachineTest extends SysuiTestCase { assertTrue(mServiceFake.requestedWakeup); } + + @Test + public void testDozePulsing_displayRequiresBlanking_screenState() { + DozeParameters dozeParameters = mock(DozeParameters.class); + when(dozeParameters.getDisplayNeedsBlanking()).thenReturn(true); + + assertEquals(Display.STATE_OFF, DOZE_REQUEST_PULSE.screenState(dozeParameters)); + } + + @Test + public void testDozePulsing_displayDoesNotRequireBlanking_screenState() { + DozeParameters dozeParameters = mock(DozeParameters.class); + when(dozeParameters.getDisplayNeedsBlanking()).thenReturn(false); + + assertEquals(Display.STATE_ON, DOZE_REQUEST_PULSE.screenState(dozeParameters)); + } }