summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/ActivityStack.java16
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java2
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;
}