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
This commit is contained in:
Evan Rosky
2021-05-24 16:11:04 -07:00
parent f3649f5e98
commit e902918a31

View File

@@ -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;
}
/**