diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt b/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt index c6f716ca7ac44..18b6699c80e9f 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt @@ -741,10 +741,11 @@ class MediaHierarchyManager @Inject constructor( * Updates the bounds that the view wants to be in at the end of the animation. */ private fun updateTargetState() { - if (isCurrentlyInGuidedTransformation() && !isCurrentlyFading()) { + var starthost = getHost(previousLocation) + var endHost = getHost(desiredLocation) + if (isCurrentlyInGuidedTransformation() && !isCurrentlyFading() && starthost != null && + endHost != null) { val progress = getTransformationProgress() - var endHost = getHost(desiredLocation)!! - var starthost = getHost(previousLocation)!! // If either of the hosts are invisible, let's keep them at the other host location to // have a nicer disappear animation. Otherwise the currentBounds of the state might // be undefined @@ -756,8 +757,8 @@ class MediaHierarchyManager @Inject constructor( val newBounds = endHost.currentBounds val previousBounds = starthost.currentBounds targetBounds = interpolateBounds(previousBounds, newBounds, progress) - } else { - val bounds = getHost(desiredLocation)?.currentBounds ?: return + } else if (endHost != null) { + val bounds = endHost.currentBounds targetBounds.set(bounds) } }