From 7d52dd65ecbb82292f16e066579803d3dff932a4 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Thu, 18 Jun 2020 18:11:22 -0700 Subject: [PATCH] Fix paused player glitch on lock screen Test: pull down QS when player is not active Test: pull down QQS and QS when player is active Bug: 158691042 Change-Id: I80bd859f5cee41fefaf3582b7bb23fc85e725e5b --- .../android/systemui/media/MediaHierarchyManager.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt b/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt index b86e1d0503d45..26fa29613dc49 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt @@ -193,6 +193,8 @@ class MediaHierarchyManager @Inject constructor( override fun onDozingChanged(isDozing: Boolean) { if (!isDozing) { dozeAnimationRunning = false + } else { + updateDesiredLocation() } } }) @@ -510,12 +512,19 @@ class MediaHierarchyManager @Inject constructor( (statusbarState == StatusBarState.KEYGUARD || statusbarState == StatusBarState.FULLSCREEN_USER_SWITCHER)) val allowedOnLockscreen = notifLockscreenUserManager.shouldShowLockscreenNotifications() - return when { + val location = when { qsExpansion > 0.0f && !onLockscreen -> LOCATION_QS qsExpansion > 0.4f && onLockscreen -> LOCATION_QS onLockscreen && allowedOnLockscreen -> LOCATION_LOCKSCREEN else -> LOCATION_QQS } + // When we're on lock screen and the player is not active, we should keep it in QS. + // Otherwise it will try to animate a transition that doesn't make sense. + if (location == LOCATION_LOCKSCREEN && getHost(location)?.visible != true && + !statusBarStateController.isDozing) { + return LOCATION_QS + } + return location } companion object {