Add RecentTasks class to house recent tasks functionality.

Cleaned-up ActivityManagerService a little by moving recent
tasks functionality to new class RecentTasks.

Bug: 18556524
Change-Id: I4c877c9695b63d7fdb1b6b7addb737fd663e86c7
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index a612575..383f297 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -166,6 +166,8 @@
 
     final ActivityManagerService mService;
 
+    private final RecentTasks mRecentTasks;
+
     final ActivityStackSupervisorHandler mHandler;
 
     /** Short cut */
@@ -298,8 +300,9 @@
         }
     }
 
-    public ActivityStackSupervisor(ActivityManagerService service) {
+    public ActivityStackSupervisor(ActivityManagerService service, RecentTasks recentTasks) {
         mService = service;
+        mRecentTasks = recentTasks;
         mHandler = new ActivityStackSupervisorHandler(mService.mHandler.getLooper());
     }
 
@@ -464,7 +467,7 @@
 
         // Don't give up! Look in recents.
         if (DEBUG_RECENTS) Slog.v(TAG, "Looking for task id=" + id + " in recents");
-        TaskRecord task = mService.recentTaskForIdLocked(id);
+        TaskRecord task = mRecentTasks.taskForIdLocked(id);
         if (task == null) {
             if (DEBUG_RECENTS) Slog.d(TAG, "\tDidn't find task id=" + id + " in recents");
             return null;
@@ -2912,7 +2915,7 @@
         r.mLaunchTaskBehind = false;
         final TaskRecord task = r.task;
         task.setLastThumbnail(task.stack.screenshotActivities(r));
-        mService.addRecentTaskLocked(task);
+        mRecentTasks.addLocked(task);
         mService.notifyTaskStackChangedLocked();
         mWindowManager.setAppVisibility(r.appToken, false);
     }
@@ -3675,7 +3678,7 @@
         ActivityContainer(int stackId) {
             synchronized (mService) {
                 mStackId = stackId;
-                mStack = new ActivityStack(this);
+                mStack = new ActivityStack(this, mRecentTasks);
                 mIdString = "ActivtyContainer{" + mStackId + "}";
                 if (DEBUG_STACK) Slog.d(TAG, "Creating " + this);
             }