Exclude transient activity from hide-tasks

If the recents activity does not exist, it will go the standard
activity launch process, which will move the task of transient
activity to top before calling setTransientLaunch. That causes
it to be added into the hide-tasks and uses HIDE transition.

Bug: 273770222
Test: atest NexusLauncherTests:com.android.quickstep. \
      FallbackRecentsTest#testOverview

Change-Id: I725a8d62377593d47e11e3ac0d6785ace0269b25
This commit is contained in:
Riddle Hsu
2023-03-17 02:11:09 +08:00
parent aa24b1bdc5
commit 0cc3386d9f

View File

@@ -278,13 +278,14 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
setTransientLaunchToChanges(activity);
if (restoreBelow != null) {
final Task transientRootTask = activity.getRootTask();
// Collect all visible activities which can be occluded by the transient activity to
// make sure they are in the participants so their visibilities can be updated when
// finishing transition.
((WindowContainer<?>) restoreBelow.getParent()).forAllTasks(t -> {
if (t.isVisibleRequested() && !t.isAlwaysOnTop()
&& !t.getWindowConfiguration().tasksAreFloating()) {
if (t.isRootTask()) {
if (t.isRootTask() && t != transientRootTask) {
mTransientHideTasks.add(t);
}
if (t.isLeafTask()) {