It is possible to return to an assistant stack over stack other
than the home stack despite starting over it. This can happen when
the assistant activity launches an activity in another stack, such as
the fullscreen stack. We were previously assuming that the stack
underneath would stay static and therefore did not account for the
another stack coming on top.
This CL addresses the issue by recognizing when home was below the
assistant stack and ensures that it is brought forward before
bringing the assistant stack forward
Change-Id: Ia279785f57bd62d0083274b20deea252b43a341f
Fixes:
64231497
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test CtsServicesHostTestCases android.server.cts.ActivityManagerAssistantStackTests#testTranslucentAssistantActivityStackVisibility
Test: go/wm-smoke
return mStackSupervisor.moveHomeStackTaskToTop(reason);
}
+ if (stack.isAssistantStack() && top != null
+ && top.getTask().getTaskToReturnTo() == HOME_ACTIVITY_TYPE) {
+ // It is possible for the home stack to not be directly underneath the assistant stack.
+ // For example, the assistant may start an activity in the fullscreen stack. Upon
+ // returning to the assistant stack, we must ensure that the home stack is underneath
+ // when appropriate.
+ mStackSupervisor.moveHomeStackTaskToTop("adjustAssistantReturnToHome");
+ }
+
stack.moveToFront(myReason);
return true;
}