From 2ab53cf23e97468475601866bddb9c7631269d9c Mon Sep 17 00:00:00 2001 From: Wale Ogunwale Date: Sat, 1 Aug 2015 17:19:21 -0700 Subject: Also consider task intent when trimming recent tasks 7cbfcd88657ac7d5ab1baf8c964b669c9bd21e24 we stopped comparing the tasks realActivity when trimming recent task. This led to task with the same intent been duplicated in the recents list. We now consider the task intent when deciding when to trim like we did pre 510e554283d3dc250f836cd3e4abc36d87319333. Bug: 22812470 Bug: 22564474 Bug: 18642190 Change-Id: I90b3ab9cf7a06b4691099f697e723d8a54def9fa --- services/core/java/com/android/server/am/RecentTasks.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/am/RecentTasks.java b/services/core/java/com/android/server/am/RecentTasks.java index 6ee165093e39..b2161149d663 100644 --- a/services/core/java/com/android/server/am/RecentTasks.java +++ b/services/core/java/com/android/server/am/RecentTasks.java @@ -435,7 +435,8 @@ class RecentTasks extends ArrayList { */ int trimForTaskLocked(TaskRecord task, boolean doTrim) { int recentsCount = size(); - final boolean document = task.intent != null && task.intent.isDocument(); + final Intent intent = task.intent; + final boolean document = intent != null && intent.isDocument(); int maxRecents = task.maxRecents - 1; for (int i = 0; i < recentsCount; i++) { final TaskRecord tr = get(i); @@ -446,12 +447,13 @@ class RecentTasks extends ArrayList { if (i > MAX_RECENT_BITMAPS) { tr.freeLastThumbnail(); } + final Intent trIntent = tr.intent; final boolean sameAffinity = task.affinity != null && task.affinity.equals(tr.affinity); - final boolean trIsDocument = tr.intent != null && tr.intent.isDocument(); + final boolean sameIntent = (intent != null && intent.filterEquals(trIntent)); + final boolean trIsDocument = trIntent != null && trIntent.isDocument(); final boolean bothDocuments = document && trIsDocument; - if (!sameAffinity && !bothDocuments) { - // Not the same affinity and not documents. Move along... + if (!sameAffinity && !sameIntent && !bothDocuments) { continue; } -- cgit v1.2.3-59-g8ed1b