1/Clean up RecentTasks list

- Move some logic into the RecentTasks list
- Added some callbacks for future handling of trimming recent tasks based
  on additional policy
- Fix issue when cleaning up tasks where the wrong activity/app info can
  be fetched since the tmp caches were not cleared
- Add some initial tests for existing task list behaviour.

Bug: 34270611
Test: runtest --path frameworks/base/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java

Change-Id: I26730461fa5fb3f5afdabe092438c229381f4f2b
diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java
index 8300083..cceb576 100644
--- a/services/core/java/com/android/server/am/ActivityStarter.java
+++ b/services/core/java/com/android/server/am/ActivityStarter.java
@@ -1239,8 +1239,8 @@
                 mSupervisor.resumeFocusedStackTopActivityLocked(mTargetStack, mStartActivity,
                         mOptions);
             }
-        } else {
-            mSupervisor.addRecentActivity(mStartActivity);
+        } else if (mStartActivity != null) {
+            mSupervisor.mRecentTasks.add(mStartActivity.getTask());
         }
         mSupervisor.updateUserStackLocked(mStartActivity.userId, mTargetStack);