summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Craig Mautner <cmautner@google.com> 2014-10-16 05:51:48 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2014-10-16 05:51:48 +0000
commitd1bba16da53f927792f489057c1d477b8079876e (patch)
tree02252a9bd279cfd09856848c31a79b382479871c
parent4f7eee438be7e51d7988a2a61123139e74b7b802 (diff)
parent87441860bf4df2da7ce4537ad31c8240547da655 (diff)
am 87441860: am e5279105: Merge "Move desired task to top if not already there." into lmp-dev
* commit '87441860bf4df2da7ce4537ad31c8240547da655': Move desired task to top if not already there.
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index bbfb62abff05..879ddc040519 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -2058,7 +2058,13 @@ public final class ActivityStackSupervisor implements DisplayListener {
}
targetStack = sourceTask.stack;
targetStack.moveToFront();
- mWindowManager.moveTaskToTop(targetStack.topTask().taskId);
+ final TaskRecord topTask = targetStack.topTask();
+ if (topTask != sourceTask) {
+ targetStack.moveTaskToFrontLocked(sourceTask, r, options);
+ Slog.w(TAG, "top task and source task don't match. would have caused anr");
+ } else {
+ mWindowManager.moveTaskToTop(topTask.taskId);
+ }
if (!addingToTask && (launchFlags&Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0) {
// In this case, we are adding the activity to an existing
// task, but the caller has asked to clear that task if the
@@ -3097,10 +3103,9 @@ public final class ActivityStackSupervisor implements DisplayListener {
for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); ++displayNdx) {
ActivityDisplay activityDisplay = mActivityDisplays.valueAt(displayNdx);
pw.print("Display #"); pw.print(activityDisplay.mDisplayId);
- pw.println(" (activities from bottom to top):");
+ pw.println(" (activities from top to bottom):");
ArrayList<ActivityStack> stacks = activityDisplay.mStacks;
- final int numStacks = stacks.size();
- for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
final ActivityStack stack = stacks.get(stackNdx);
StringBuilder stackHeader = new StringBuilder(128);
stackHeader.append(" Stack #");