Limit number of recents entries for an app to maxRecents allowed.

Regression in the API caused by the fixes for b/28293748 and b/25460953
which prevented the task entries from been trimmed if the task don't
have the same intent filter (additional documents launched will normally
have different intent action/filter than the base activity) or it allows
multiple task entries.
We now trim when we go over the maxRecents allowed in both cases.

Bug: 30645949
Bug: 28293748
Bug: 25460953
Change-Id: I74c8ecc38f72a5d03c213dea8d3e62261d42f8f6
This commit is contained in:
Wale Ogunwale
2016-08-09 09:21:10 -07:00
parent 0b26adbb8b
commit 847167fe3d

View File

@@ -653,12 +653,17 @@ class RecentTasks extends ArrayList<TaskRecord> {
&& task.realActivity.equals(tr.realActivity);
// If the document is open in another app or is not the same
// document, we don't need to trim it.
if (!sameActivity || !sameIntentFilter || multiTasksAllowed) {
if (!sameActivity) {
continue;
// Otherwise only trim if we are over our max recents for this task
} else if (maxRecents > 0 && !doTrim) {
} else if (maxRecents > 0) {
--maxRecents;
continue;
if (!doTrim || !sameIntentFilter || multiTasksAllowed) {
// We don't want to trim if we are not over the max allowed entries and
// the caller doesn't want us to trim, the tasks are not of the same
// intent filter, or multiple entries fot the task is allowed.
continue;
}
}
// Hit the maximum number of documents for this task. Fall through
// and remove this document from recents.