Merge "Avoid adjusting top focused root task while clear task" into rvc-qpr-dev
This commit is contained in:
@@ -2543,7 +2543,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
|
||||
final ActivityStack stack = getRootTask();
|
||||
final boolean mayAdjustTop = (isState(RESUMED) || stack.mResumedActivity == null)
|
||||
&& stack.isFocusedStackOnDisplay();
|
||||
&& stack.isFocusedStackOnDisplay()
|
||||
// Do not adjust focus task because the task will be reused to launch new activity.
|
||||
&& !task.isClearingToReuseTask();
|
||||
final boolean shouldAdjustGlobalFocus = mayAdjustTop
|
||||
// It must be checked before {@link #makeFinishingLocked} is called, because a stack
|
||||
// is not visible if it only contains finishing activities.
|
||||
|
||||
@@ -2009,8 +2009,6 @@ class ActivityStarter {
|
||||
// of history or if it is finished immediately), thus disassociating the task. Also note
|
||||
// that mReuseTask is reset as a result of {@link Task#performClearTaskLocked}
|
||||
// launching another activity.
|
||||
// TODO(b/36119896): We shouldn't trigger activity launches in this path since we are
|
||||
// already launching one.
|
||||
targetTask.performClearTaskLocked();
|
||||
targetTask.setIntent(mStartActivity);
|
||||
mAddingToTask = true;
|
||||
|
||||
@@ -1528,14 +1528,25 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
*/
|
||||
void performClearTaskLocked() {
|
||||
mReuseTask = true;
|
||||
performClearTask("clear-task-all");
|
||||
mReuseTask = false;
|
||||
mStackSupervisor.beginDeferResume();
|
||||
try {
|
||||
performClearTask("clear-task-all");
|
||||
} finally {
|
||||
mStackSupervisor.endDeferResume();
|
||||
mReuseTask = false;
|
||||
}
|
||||
}
|
||||
|
||||
ActivityRecord performClearTaskForReuseLocked(ActivityRecord newR, int launchFlags) {
|
||||
mReuseTask = true;
|
||||
final ActivityRecord result = performClearTaskLocked(newR, launchFlags);
|
||||
mReuseTask = false;
|
||||
mStackSupervisor.beginDeferResume();
|
||||
final ActivityRecord result;
|
||||
try {
|
||||
result = performClearTaskLocked(newR, launchFlags);
|
||||
} finally {
|
||||
mStackSupervisor.endDeferResume();
|
||||
mReuseTask = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user