summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wale Ogunwale <ogunwale@google.com> 2015-08-04 15:20:50 -0700
committer Wale Ogunwale <ogunwale@google.com> 2015-08-04 15:26:58 -0700
commiteae451e57dc439644e0b2db9e5d3714a98d9969f (patch)
tree3fe439e481d5a668b161db189407c1fd10addfe6
parentf9efa73748f44292f60502bde731b4ecf5f53c16 (diff)
Move task focusing activity task to the front when we focus on the stack
Fixes issue where we don't correctly set the current focus window since the task isn't on top. Change-Id: Ib541f2a8289571c716c182264f8ec4fccdae30a3
-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;
}