diff options
author | Adam Powell <adamp@google.com> | 2012-09-17 17:15:09 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-09-17 17:15:09 -0700 |
commit | 49a22f2969df6e4f53653d16400268e8d06aa1c2 (patch) | |
tree | e484d85918fca71552b39b6d67f064a97e890a13 /core | |
parent | a8a402f8ad1549e23f4238786269bd548b6b445d (diff) | |
parent | 75e0af8982cd29cfe8a01c18d1e82d7abcfd1711 (diff) | |
download | frameworks_base-49a22f2969df6e4f53653d16400268e8d06aa1c2.zip frameworks_base-49a22f2969df6e4f53653d16400268e8d06aa1c2.tar.gz frameworks_base-49a22f2969df6e4f53653d16400268e8d06aa1c2.tar.bz2 |
Merge "TaskStackBuilder correctness fixes" into jb-mr1-dev
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/app/TaskStackBuilder.java | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/core/java/android/app/TaskStackBuilder.java b/core/java/android/app/TaskStackBuilder.java index 63987f1..cadf5e4 100644 --- a/core/java/android/app/TaskStackBuilder.java +++ b/core/java/android/app/TaskStackBuilder.java @@ -216,11 +216,7 @@ public class TaskStackBuilder { "No intents added to TaskStackBuilder; cannot startActivities"); } - Intent[] intents = mIntents.toArray(new Intent[mIntents.size()]); - intents[0].addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | - Intent.FLAG_ACTIVITY_CLEAR_TASK | - Intent.FLAG_ACTIVITY_TASK_ON_HOME); - mSourceContext.startActivities(intents, options); + mSourceContext.startActivities(getIntents(), options); } /** @@ -260,11 +256,8 @@ public class TaskStackBuilder { "No intents added to TaskStackBuilder; cannot getPendingIntent"); } - Intent[] intents = mIntents.toArray(new Intent[mIntents.size()]); - intents[0].addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | - Intent.FLAG_ACTIVITY_CLEAR_TASK | - Intent.FLAG_ACTIVITY_TASK_ON_HOME); - return PendingIntent.getActivities(mSourceContext, requestCode, intents, flags, options); + return PendingIntent.getActivities(mSourceContext, requestCode, getIntents(), + flags, options); } /** @@ -275,6 +268,15 @@ public class TaskStackBuilder { * @return An array containing the intents added to this builder. */ public Intent[] getIntents() { - return mIntents.toArray(new Intent[mIntents.size()]); + Intent[] intents = new Intent[mIntents.size()]; + if (intents.length == 0) return intents; + + intents[0] = new Intent(mIntents.get(0)).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | + Intent.FLAG_ACTIVITY_CLEAR_TASK | + Intent.FLAG_ACTIVITY_TASK_ON_HOME); + for (int i = 1; i < intents.length; i++) { + intents[i] = new Intent(mIntents.get(i)); + } + return intents; } } |