Only adjust the task position when there is no move-to-top request.
Adjust the check order when adjusting the focus. If there is no move-to-top request, only adjust the task position, otherwise it may send top position change to unrelated activities. Bug: 154685134 Test: atest ActivityLifecycleTopResumedStateTests Test: atest ActivityRecordTests Change-Id: I0827641b8f24e8f42e6b8e8703648dc540c902ef
This commit is contained in:
@@ -2688,16 +2688,7 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
return null;
|
||||
}
|
||||
|
||||
final String myReason = reason + " adjustFocusToNextFocusableStack";
|
||||
final ActivityRecord top = focusableTask.topRunningActivity();
|
||||
final ActivityStack rootTask = (ActivityStack) focusableTask.getRootTask();
|
||||
if (focusableTask.isActivityTypeHome() && (top == null || !top.mVisibleRequested)) {
|
||||
// If we will be focusing on the home stack next and its current top activity isn't
|
||||
// visible, then use the move the home stack task to top to make the activity visible.
|
||||
focusableTask.getDisplayArea().moveHomeActivityToTop(myReason);
|
||||
return rootTask;
|
||||
}
|
||||
|
||||
if (!moveParentsToTop) {
|
||||
// Only move the next stack to top in its task container.
|
||||
WindowContainer parent = focusableTask.getParent();
|
||||
@@ -2705,6 +2696,15 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
return rootTask;
|
||||
}
|
||||
|
||||
final String myReason = reason + " adjustFocusToNextFocusableStack";
|
||||
final ActivityRecord top = focusableTask.topRunningActivity();
|
||||
if (focusableTask.isActivityTypeHome() && (top == null || !top.mVisibleRequested)) {
|
||||
// If we will be focusing on the home stack next and its current top activity isn't
|
||||
// visible, then use the move the home stack task to top to make the activity visible.
|
||||
focusableTask.getDisplayArea().moveHomeActivityToTop(myReason);
|
||||
return rootTask;
|
||||
}
|
||||
|
||||
// Move the entire hierarchy to top with updating global top resumed activity
|
||||
// and focused application if needed.
|
||||
focusableTask.moveToFront(myReason);
|
||||
|
||||
Reference in New Issue
Block a user