diff options
| author | 2015-07-21 14:52:05 +0000 | |
|---|---|---|
| committer | 2015-07-21 14:52:05 +0000 | |
| commit | 18c87a1eb8c7f1e11fe48daa61ec37f6ec29691b (patch) | |
| tree | 6d931053b40fa52ecdaf78652a19993782f95e40 | |
| parent | 6ff64bc34daf55874f5372d0cda444f67c892bdf (diff) | |
| parent | 7dcad6a5d426e1a243e36cbd084c60bc8038c56b (diff) | |
am 7dcad6a5: am e99f20f5: Merge "Don\'t duplicate recent tasks of the same affinity." into mnc-dev
* commit '7dcad6a5d426e1a243e36cbd084c60bc8038c56b':
Don't duplicate recent tasks of the same affinity.
| -rw-r--r-- | services/core/java/com/android/server/am/RecentTasks.java | 20 |
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; |