summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-12-07 16:05:46 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-12-07 16:05:46 -0800
commit0fea67ce9124a6eef913febc70a2d7b3e0ca1c99 (patch)
treee3ba60c07ea51ca9034f180761052308f5924a23 /services
parent9ff5d8daa423eafcc5bbe95a414bf6f086c90a9b (diff)
parent95c7cd56cc12179ad00623422814e8ba16646c34 (diff)
downloadframeworks_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.java15
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;