diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStack.java | 16 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStackSupervisor.java | 2 |
2 files changed, 15 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index e6c8d4382ab5..2b3cc929b6a7 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -478,7 +478,15 @@ final class ActivityStack { mActivityContainer.mActivityDisplay.mDisplayId == Display.DEFAULT_DISPLAY; } - final void moveToFront(String reason) { + void moveToFront(String reason) { + moveToFront(reason, null); + } + + /** + * @param reason The reason for moving the stack to the front. + * @param task If non-null, the task will be moved to the top of the stack. + * */ + void moveToFront(String reason, TaskRecord task) { if (isAttached()) { final boolean homeStack = isHomeStack() || (mActivityContainer.mParentActivity != null @@ -496,7 +504,11 @@ final class ActivityStack { if (isOnHomeDisplay()) { mStackSupervisor.moveHomeStack(homeStack, reason, lastFocusStack); } - final TaskRecord task = topTask(); + if (task != null) { + insertTaskAtTop(task, null); + } else { + task = topTask(); + } if (task != null) { mWindowManager.moveTaskToTop(task.taskId); } diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index c22bff34a1e4..76bac911cdf4 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -1822,7 +1822,7 @@ public final class ActivityStackSupervisor implements DisplayListener { Slog.w(TAG, "Can't set focus stack for r=" + r + " task=" + task); return false; } - task.stack.moveToFront(reason); + task.stack.moveToFront(reason, task); return true; } |