From e902918a31c42545083bb7d48da45311e839291c Mon Sep 17 00:00:00 2001 From: Evan Rosky Date: Mon, 24 May 2021 16:11:04 -0700 Subject: [PATCH] Fix launcher-in-transition-targets detection Shell transitions promotes animation up to root task so we can't compare to leaf-taskid derived from ActivityRecord.getTaskId since home tasks are all children of a root and thus aren't organized. This replaces the task-id check with a componentname check. Bug: 172695387 Test: with shell transit enabled, launch an app from launcher and observer launcher content animating. Change-Id: Ieeca72b57ec47c9cbe15e635f5026b53edebd0ad --- .../android/launcher3/QuickstepTransitionManager.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 80754a00f4..cec49afbf2 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -35,7 +35,6 @@ import static com.android.launcher3.config.FeatureFlags.KEYGUARD_ANIMATION; import static com.android.launcher3.config.FeatureFlags.SEPARATE_RECENTS_ACTIVITY; import static com.android.launcher3.dragndrop.DragLayer.ALPHA_INDEX_TRANSITIONS; import static com.android.launcher3.statehandlers.DepthController.DEPTH; -import static com.android.quickstep.TaskUtils.taskIsATargetWithMode; import static com.android.quickstep.TaskViewUtils.findTaskViewToLaunch; import static com.android.systemui.shared.system.QuickStepContract.getWindowCornerRadius; import static com.android.systemui.shared.system.QuickStepContract.supportsRoundedCornersOnWindows; @@ -978,7 +977,15 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener } private boolean launcherIsATargetWithMode(RemoteAnimationTargetCompat[] targets, int mode) { - return taskIsATargetWithMode(targets, mLauncher.getTaskId(), mode); + for (RemoteAnimationTargetCompat target : targets) { + if (target.mode == mode && target.taskInfo != null + // Compare component name instead of task-id because transitions will promote + // the target up to the root task while getTaskId returns the leaf. + && target.taskInfo.topActivity.equals(mLauncher.getComponentName())) { + return true; + } + } + return false; } /**