DesktopMixed: check we have no valid changes if launch change is null
Sometimes a pending launch transition turns into a different type of
transitionthat DesktopMixedTransitionHandler doesn't handle. In this CL
verify that we are not expecting to make any minimize or immersive-exit
changes in such transitions.
Test: manual
Bug: 327428659
Flag: com.android.window.flags.enable_desktop_app_launch_transitions
Change-Id: I110a9079af9d459a97b2d20d30450700bf3cf78f
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt
index cefcb75..01c680d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt
@@ -205,11 +205,6 @@
finishTransaction: SurfaceControl.Transaction,
finishCallback: TransitionFinishCallback,
): Boolean {
- val launchChange = findDesktopTaskChange(info, pending.launchingTask)
- if (launchChange == null) {
- logV("No launch Change, returning")
- return false
- }
// Check if there's also an immersive change during this launch.
val immersiveExitChange = pending.exitingImmersiveTask?.let { exitingTask ->
findDesktopTaskChange(info, exitingTask)
@@ -217,6 +212,13 @@
val minimizeChange = pending.minimizingTask?.let { minimizingTask ->
findDesktopTaskChange(info, minimizingTask)
}
+ val launchChange = findDesktopTaskChange(info, pending.launchingTask)
+ if (launchChange == null) {
+ check(minimizeChange == null)
+ check(immersiveExitChange == null)
+ logV("No launch Change, returning")
+ return false
+ }
var subAnimationCount = -1
var combinedWct: WindowContainerTransaction? = null