summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wale Ogunwale <ogunwale@google.com> 2015-07-21 15:24:00 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2015-07-21 15:24:00 +0000
commit013869253e77de091eaf3d365202cfda6c4c8b67 (patch)
tree99e47582f38be9a187b17b944983ed8ee0cb4be7
parent0ca81c89867a59f1add30c9e30d059b4676a4594 (diff)
parentf2f29dc4add3943eb4f0b06a5c748b99664212da (diff)
am f2f29dc4: am 18c87a1e: am 7dcad6a5: am e99f20f5: Merge "Don\'t duplicate recent tasks of the same affinity." into mnc-dev
* commit 'f2f29dc4add3943eb4f0b06a5c748b99664212da': Don't duplicate recent tasks of the same affinity.
-rw-r--r--services/core/java/com/android/server/am/RecentTasks.java20
1 files changed, 15 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/am/RecentTasks.java b/services/core/java/com/android/server/am/RecentTasks.java
index 9f11def4abdb..6ee165093e39 100644
--- a/services/core/java/com/android/server/am/RecentTasks.java
+++ b/services/core/java/com/android/server/am/RecentTasks.java
@@ -446,13 +446,23 @@ class RecentTasks extends ArrayList<TaskRecord> {
if (i > MAX_RECENT_BITMAPS) {
tr.freeLastThumbnail();
}
- if (task.realActivity == null || tr.realActivity == null ||
- !task.realActivity.equals(tr.realActivity)) {
+ final boolean sameAffinity =
+ task.affinity != null && task.affinity.equals(tr.affinity);
+ final boolean trIsDocument = tr.intent != null && tr.intent.isDocument();
+ final boolean bothDocuments = document && trIsDocument;
+ if (!sameAffinity && !bothDocuments) {
+ // Not the same affinity and not documents. Move along...
continue;
}
- final boolean trIsDocument = tr.intent != null && tr.intent.isDocument();
- if (document && trIsDocument) {
- // These are the same document activity (not necessarily the same doc).
+
+ if (bothDocuments) {
+ // Do these documents belong to the same activity?
+ final boolean sameActivity = task.realActivity != null
+ && tr.realActivity != null
+ && task.realActivity.equals(tr.realActivity);
+ if (!sameActivity) {
+ continue;
+ }
if (maxRecents > 0) {
--maxRecents;
continue;