OSDN Git Service

Blank screen when coming from pulse
authorLucas Dupin <dupin@google.com>
Fri, 1 Jun 2018 07:28:58 +0000 (00:28 -0700)
committerLucas Dupin <dupin@google.com>
Fri, 1 Jun 2018 18:32:48 +0000 (18:32 +0000)
We need to fade from black to the app to achieve a nice transition.

Test: visual
Test: atest packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
Change-Id: I13edd9c5f7a1bf9378851ac50c513d36ab821c43
Fixes: 87939048

packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java

index 1c5df58..713356b 100644 (file)
@@ -148,7 +148,7 @@ public enum ScrimState {
             mCurrentInFrontAlpha = 0;
             mAnimationDuration = StatusBar.FADE_KEYGUARD_DURATION;
 
-            if (previousState == ScrimState.AOD) {
+            if (previousState == ScrimState.AOD || previousState == ScrimState.PULSING) {
                 // Fade from black to transparent when coming directly from AOD
                 updateScrimColor(mScrimInFront, 1, Color.BLACK);
                 updateScrimColor(mScrimBehind, 1, Color.BLACK);
index a2a866e..40337b8 100644 (file)
@@ -351,6 +351,23 @@ public class ScrimControllerTest extends SysuiTestCase {
     }
 
     @Test
+    public void scrimBlanksWhenUnlockingFromPulse() {
+        boolean[] blanked = {false};
+        // Simulate unlock with fingerprint
+        mScrimController.transitionTo(ScrimState.PULSING);
+        mScrimController.finishAnimationsImmediately();
+        mScrimController.transitionTo(ScrimState.UNLOCKED,
+                new ScrimController.Callback() {
+                    @Override
+                    public void onDisplayBlanked() {
+                        blanked[0] = true;
+                    }
+                });
+        mScrimController.finishAnimationsImmediately();
+        Assert.assertTrue("Scrim should blank when unlocking from pulse.", blanked[0]);
+    }
+
+    @Test
     public void testScrimCallback() {
         int[] callOrder = {0, 0, 0};
         int[] currentCall = {0};