From b2a5f266ad9e9f828b32a5f7364617eacf95e7dd Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Tue, 8 Mar 2022 14:45:16 -0800 Subject: [PATCH] Play fallback animation if there are multiple closing targets. Bug: 200247089 Test: close app w/ gesture nav, 3 button nav close split screen apps Change-Id: I748f038eaf1542014f3acbb8fa31488936835dfe --- .../launcher3/QuickstepTransitionManager.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index c4a3fb5572..9168390385 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -1186,6 +1186,19 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener return false; } + private boolean hasMultipleTargetsWithMode(RemoteAnimationTargetCompat[] targets, int mode) { + int numTargets = 0; + for (RemoteAnimationTargetCompat target : targets) { + if (target.mode == mode) { + numTargets++; + } + if (numTargets > 1) { + return true; + } + } + return false; + } + /** * @return Runner that plays when user goes to Launcher * ie. pressing home, swiping up from nav bar. @@ -1580,7 +1593,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener View launcherView = findLauncherView(appTargets); boolean playFallBackAnimation = (launcherView == null && launcherIsForceInvisibleOrOpening) - || mLauncher.getWorkspace().isOverlayShown(); + || mLauncher.getWorkspace().isOverlayShown() + || hasMultipleTargetsWithMode(appTargets, MODE_CLOSING); boolean playWorkspaceReveal = true; boolean skipAllAppsScale = false;