From 9400cbf086b905ae30b9e9f38b2d3c93e2d7d58f Mon Sep 17 00:00:00 2001 From: Michal Brzezinski Date: Wed, 23 Nov 2022 17:10:11 +0000 Subject: Adding QS animation when going from pulsing to shade in split shade When animation is explicitly set to false, QS is not animating at all, leaving empty space. I don't see any regression in handheld compared to not having QS animated. Fixes: 260068288 Test: manual, video attached Change-Id: I7b830522a28a0dd17bb435fc2e597d565dac4b6c --- .../systemui/statusbar/LockscreenShadeTransitionController.kt | 9 +++++++-- .../statusbar/LockscreenShadeTransitionControllerTest.kt | 8 ++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt index b8302d706e8d..5fba1c5392a0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt @@ -503,9 +503,14 @@ class LockscreenShadeTransitionController @Inject constructor( * If secure with redaction: Show bouncer, go to unlocked shade. * If secure without redaction or no security: Go to [StatusBarState.SHADE_LOCKED]. * + * Split shade is special case and [needsQSAnimation] will be always overridden to true. + * That's because handheld shade will automatically follow notifications animation, but that's + * not the case for split shade. + * * @param expandView The view to expand after going to the shade * @param needsQSAnimation if this needs the quick settings to slide in from the top or if - * that's already handled separately + * that's already handled separately. This argument will be ignored on + * split shade as there QS animation can't be handled separately. */ @JvmOverloads fun goToLockedShade(expandedView: View?, needsQSAnimation: Boolean = true) { @@ -513,7 +518,7 @@ class LockscreenShadeTransitionController @Inject constructor( logger.logTryGoToLockedShade(isKeyguard) if (isKeyguard) { val animationHandler: ((Long) -> Unit)? - if (needsQSAnimation) { + if (needsQSAnimation || useSplitShade) { // Let's use the default animation animationHandler = null } else { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt index 3d11ced6207d..702f278746be 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LockscreenShadeTransitionControllerTest.kt @@ -243,6 +243,14 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() { assertNull(transitionController.dragDownAnimator) } + @Test + fun testGoToLockedShadeAlwaysCreatesQSAnimationInSplitShade() { + enableSplitShade() + transitionController.goToLockedShade(null, needsQSAnimation = true) + verify(notificationPanelController).animateToFullShade(anyLong()) + assertNotNull(transitionController.dragDownAnimator) + } + @Test fun testDragDownAmountDoesntCallOutInLockedDownShade() { whenever(nsslController.isInLockedDownShade).thenReturn(true) -- cgit v1.2.3-59-g8ed1b