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
This commit is contained in:
Michal Brzezinski
2022-11-23 17:10:11 +00:00
parent e0d1e18ae9
commit 9400cbf086
2 changed files with 15 additions and 2 deletions

View File

@@ -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 {

View File

@@ -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)