diff options
| author | 2017-12-19 20:08:23 +0000 | |
|---|---|---|
| committer | 2017-12-19 20:08:23 +0000 | |
| commit | a9935f3469c5c9c82ecb76a2b739cadbf5221b0a (patch) | |
| tree | ec311379d0ba4a2c8e8f0a42b54bd0d514ea22ed | |
| parent | 107f7cc4c4adfc01402dc5a52dc39976b75abbe2 (diff) | |
| parent | eea53b3c0f7ff29adc720155c81da91abe68770f (diff) | |
Merge "Avoid unecessary IPC during scrim animation"
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java | 9 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java | 10 |
2 files changed, 16 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index 8abc3f4789e8..14329b564800 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -255,8 +255,13 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, mKeyguardFadeoutAnimation.cancel(); } - // Do not let the device sleep until we're done with all animations - holdWakeLock(); + // The device might sleep if it's entering AOD, we need to make sure that + // the animation plays properly until the last frame. + // It's important to avoid holding the wakelock unless necessary because + // WakeLock#aqcuire will trigger an IPC and will cause jank. + if (mState == ScrimState.AOD) { + holdWakeLock(); + } // AOD wallpapers should fade away after a while if (mWallpaperSupportsAmbientMode && mDozeParameters.getAlwaysOn() diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java index 9b7efe9949ad..6d2691c899f2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java @@ -27,6 +27,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; import android.animation.Animator; @@ -275,7 +276,7 @@ public class ScrimControllerTest extends SysuiTestCase { } @Test - public void testHoldsWakeLock() { + public void testHoldsWakeLock_whenAOD() { mScrimController.transitionTo(ScrimState.AOD); verify(mWakeLock).acquire(); verify(mWakeLock, never()).release(); @@ -284,6 +285,13 @@ public class ScrimControllerTest extends SysuiTestCase { } @Test + public void testDoesNotHoldWakeLock_whenUnlocking() { + mScrimController.transitionTo(ScrimState.UNLOCKED); + mScrimController.finishAnimationsImmediately(); + verifyZeroInteractions(mWakeLock); + } + + @Test public void testCallbackInvokedOnSameStateTransition() { mScrimController.transitionTo(ScrimState.UNLOCKED); mScrimController.finishAnimationsImmediately(); |