diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-12-07 16:05:46 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-12-07 16:05:46 -0800 |
commit | 0fea67ce9124a6eef913febc70a2d7b3e0ca1c99 (patch) | |
tree | e3ba60c07ea51ca9034f180761052308f5924a23 /services | |
parent | 9ff5d8daa423eafcc5bbe95a414bf6f086c90a9b (diff) | |
parent | 95c7cd56cc12179ad00623422814e8ba16646c34 (diff) | |
download | frameworks_base-0fea67ce9124a6eef913febc70a2d7b3e0ca1c99.zip frameworks_base-0fea67ce9124a6eef913febc70a2d7b3e0ca1c99.tar.gz frameworks_base-0fea67ce9124a6eef913febc70a2d7b3e0ca1c99.tar.bz2 |
am 95c7cd56: am 87e06ec2: Merge "Fix issue #5144065: Tap on Music icon from Home screen..." into ics-mr1
* commit '95c7cd56cc12179ad00623422814e8ba16646c34':
Fix issue #5144065: Tap on Music icon from Home screen...
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/am/ActivityStack.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index b5edc0a..6c11953 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -1932,8 +1932,9 @@ final class ActivityStack { // should be left as-is. replyChainEnd = -1; } - - } else if (target.resultTo != null) { + + } else if (target.resultTo != null && (below == null + || below.task == target.task)) { // If this activity is sending a reply to a previous // activity, we can't do anything with it now until // we reach the start of the reply chain. @@ -1963,6 +1964,8 @@ final class ActivityStack { replyChainEnd = targetI; } ActivityRecord p = null; + if (DEBUG_TASKS) Slog.v(TAG, "Finishing task at index " + + targetI + " to " + replyChainEnd); for (int srcPos=targetI; srcPos<=replyChainEnd; srcPos++) { p = mHistory.get(srcPos); if (p.finishing) { @@ -1981,6 +1984,8 @@ final class ActivityStack { if (replyChainEnd < 0) { replyChainEnd = targetI; } + if (DEBUG_TASKS) Slog.v(TAG, "Reparenting task at index " + + targetI + " to " + replyChainEnd); for (int srcPos=replyChainEnd; srcPos>=targetI; srcPos--) { ActivityRecord p = mHistory.get(srcPos); if (p.finishing) { @@ -2002,6 +2007,7 @@ final class ActivityStack { p.setTask(task, null, false); mHistory.add(lastReparentPos, p); if (DEBUG_TASKS) Slog.v(TAG, "Pulling activity " + p + + " from " + srcPos + " to " + lastReparentPos + " in to resetting task " + task); mService.mWindowManager.moveAppToken(lastReparentPos, p.appToken); mService.mWindowManager.setAppGroupId(p.appToken, p.task.taskId); @@ -2031,6 +2037,11 @@ final class ActivityStack { } } } + + } else if (below != null && below.task != target.task) { + // We hit the botton of a task; the reply chain can't + // pass through it. + replyChainEnd = -1; } target = below; |