diff options
| author | 2015-08-04 15:20:50 -0700 | |
|---|---|---|
| committer | 2015-08-04 15:26:58 -0700 | |
| commit | eae451e57dc439644e0b2db9e5d3714a98d9969f (patch) | |
| tree | 3fe439e481d5a668b161db189407c1fd10addfe6 | |
| parent | f9efa73748f44292f60502bde731b4ecf5f53c16 (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.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; } |