summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wale Ogunwale <ogunwale@google.com> 2015-08-03 20:39:46 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2015-08-03 20:39:46 +0000
commit5e4be98e40191439ef256affe2e660dbaafd0675 (patch)
tree39ef60ae81d274f93926e7b8d3a32545f85d369c
parente0d8a6ff60e253fe29083a29bc00e1839953bc4f (diff)
parentf85769797e14f0d10dcc99d695c6dee1eb56bd9c (diff)
am f8576979: Merge "Also consider task intent when trimming recent tasks" into mnc-dev
* commit 'f85769797e14f0d10dcc99d695c6dee1eb56bd9c': Also consider task intent when trimming recent tasks
-rw-r--r--services/core/java/com/android/server/am/RecentTasks.java10
1 files 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<TaskRecord> {
*/
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<TaskRecord> {
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;
}