private AppTimeTracker mCurAppTimeTracker;
/**
- * List of intents that were used to start the most recent tasks.
- */
- private final RecentTasks mRecentTasks;
-
- /**
* The package name of the DeviceOwner. This package is not permitted to have its data cleared.
*/
String mDeviceOwnerName;
mProcessCpuThread = null;
mProcessStats = null;
mProviderMap = null;
- mRecentTasks = null;
mServices = null;
mStackSupervisor = null;
mSystemThread = null;
mTaskChangeNotificationController =
new TaskChangeNotificationController(this, mStackSupervisor, mHandler);
mActivityStartController = new ActivityStartController(this);
- mRecentTasks = createRecentTasks();
- mStackSupervisor.setRecentTasks(mRecentTasks);
mLockTaskController = new LockTaskController(mContext, mStackSupervisor, mHandler);
mLifecycleManager = new ClientLifecycleManager();
return supervisor;
}
- protected RecentTasks createRecentTasks() {
- return new RecentTasks(this, mStackSupervisor);
- }
-
- RecentTasks getRecentTasks() {
- return mRecentTasks;
- }
-
public void setSystemServiceManager(SystemServiceManager mgr) {
mSystemServiceManager = mgr;
}
}
void onUserStoppedLocked(int userId) {
- mRecentTasks.unloadUserDataFromMemoryLocked(userId);
+ mActivityTaskManager.getRecentTasks().unloadUserDataFromMemoryLocked(userId);
mAllowAppSwitchUids.remove(userId);
}
if (appInfo != null) {
forceStopPackageLocked(packageName, appInfo.uid, "clear data");
- mRecentTasks.removeTasksByPackageName(packageName, resolvedUserId);
+ mActivityTaskManager.getRecentTasks().removeTasksByPackageName(packageName, resolvedUserId);
}
}
}
// Clean-up disabled tasks
- mRecentTasks.cleanupDisabledPackageTasksLocked(packageName, disabledClasses, userId);
+ mActivityTaskManager.getRecentTasks().cleanupDisabledPackageTasksLocked(packageName, disabledClasses, userId);
// Clean-up disabled services.
mServices.bringDownDisabledPackageServicesLocked(
* This can be called with or without the global lock held.
*/
void enforceCallerIsRecentsOrHasPermission(String permission, String func) {
- if (!mRecentTasks.isCallerRecents(Binder.getCallingUid())) {
+ if (!mActivityTaskManager.getRecentTasks().isCallerRecents(Binder.getCallingUid())) {
enforceCallingPermission(permission, func);
}
}
}
boolean isGetTasksAllowed(String caller, int callingPid, int callingUid) {
- if (mRecentTasks.isCallerRecents(callingUid)) {
+ if (mActivityTaskManager.getRecentTasks().isCallerRecents(callingUid)) {
// Always allow the recents component to get tasks
return true;
}
/** Pokes the task persister. */
void notifyTaskPersisterLocked(TaskRecord task, boolean flush) {
- mRecentTasks.notifyTaskPersisterLocked(task, flush);
+ mActivityTaskManager.getRecentTasks().notifyTaskPersisterLocked(task, flush);
}
@Override
return true;
}
- if (mRecentTasks.isCallerRecents(sourceUid)) {
+ if (mActivityTaskManager.getRecentTasks().isCallerRecents(sourceUid)) {
return true;
}
mVrController.onSystemReady();
// Make sure we have the current profile info, since it is needed for security checks.
mUserController.onSystemReady();
- mRecentTasks.onSystemReadyLocked();
+ mActivityTaskManager.getRecentTasks().onSystemReadyLocked();
mAppOpsService.systemReady();
mSystemReady = true;
}
}
} else if ("recents".equals(cmd) || "r".equals(cmd)) {
synchronized (this) {
- if (mRecentTasks != null) {
- mRecentTasks.dump(pw, true /* dumpAll */, dumpPackage);
+ if (mActivityTaskManager.getRecentTasks() != null) {
+ mActivityTaskManager.getRecentTasks().dump(pw, true /* dumpAll */, dumpPackage);
}
}
} else if ("binder-proxies".equals(cmd)) {
if (dumpAll) {
pw.println("-------------------------------------------------------------------------------");
}
- if (mRecentTasks != null) {
- mRecentTasks.dump(pw, dumpAll, dumpPackage);
+ if (mActivityTaskManager.getRecentTasks() != null) {
+ mActivityTaskManager.getRecentTasks().dump(pw, dumpAll, dumpPackage);
}
pw.println();
if (dumpAll) {
if (dumpAll) {
pw.println("-------------------------------------------------------------------------------");
}
- if (mRecentTasks != null) {
- mRecentTasks.dump(pw, dumpAll, dumpPackage);
+ if (mActivityTaskManager.getRecentTasks() != null) {
+ mActivityTaskManager.getRecentTasks().dump(pw, dumpAll, dumpPackage);
}
pw.println();
if (dumpAll) {
forceStopPackageLocked(list[i], -1, false, true, true,
false, false, userId, "storage unmount");
}
- mRecentTasks.cleanupLocked(UserHandle.USER_ALL);
+ mActivityTaskManager.getRecentTasks().cleanupLocked(
+ UserHandle.USER_ALL);
sendPackageBroadcastLocked(
ApplicationThreadConstants.EXTERNAL_STORAGE_UNAVAILABLE,
list, userId);
}
break;
case Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE:
- mRecentTasks.cleanupLocked(UserHandle.USER_ALL);
+ mActivityTaskManager.getRecentTasks().cleanupLocked(
+ UserHandle.USER_ALL);
break;
case Intent.ACTION_PACKAGE_REMOVED:
case Intent.ACTION_PACKAGE_CHANGED:
removeUriPermissionsForPackageLocked(ssp, userId, true,
false);
- mRecentTasks.removeTasksByPackageName(ssp, userId);
+ mActivityTaskManager.getRecentTasks().removeTasksByPackageName(ssp, userId);
mServices.forceStopPackageLocked(ssp, userId);
mAppWarnings.onPackageUninstalled(ssp);
Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
synchronized(ActivityManagerService.this) {
- mRecentTasks.onPackagesSuspendedChanged(
+ mActivityTaskManager.getRecentTasks().onPackagesSuspendedChanged(
packageNames, suspended, userHandle);
}
break;
int runWrite(PrintWriter pw) {
mInternal.enforceCallingPermission(android.Manifest.permission.SET_ACTIVITY_WATCHER,
"registerUidObserver()");
- mInternal.getRecentTasks().flush();
+ mInternal.mActivityTaskManager.getRecentTasks().flush();
pw.println("All tasks persisted.");
return 0;
}
return true;
}
// Allow the recents component to launch the home activity.
- final RecentTasks recentTasks = mStackSupervisor.mService.getRecentTasks();
+ final RecentTasks recentTasks = mStackSupervisor.mService.mActivityTaskManager.getRecentTasks();
if (recentTasks != null && recentTasks.isCallerRecents(uid)) {
return true;
}
// We only allow home activities to be resizeable if they explicitly requested it.
info.resizeMode = RESIZE_MODE_UNRESIZEABLE;
}
- } else if (realActivity.getClassName().contains(LEGACY_RECENTS_PACKAGE_NAME) ||
- service.getRecentTasks().isRecentsComponent(realActivity, appInfo.uid)) {
+ } else if (realActivity.getClassName().contains(LEGACY_RECENTS_PACKAGE_NAME)
+ || service.mActivityTaskManager.getRecentTasks().isRecentsComponent(realActivity, appInfo.uid)) {
activityType = ACTIVITY_TYPE_RECENTS;
} else if (options != null && options.getLaunchActivityType() == ACTIVITY_TYPE_ASSISTANT
&& canLaunchAssistActivity(launchedFromPackage)) {
final File iconFile = new File(TaskPersister.getUserImagesDir(task.userId),
iconFilename);
final String iconFilePath = iconFile.getAbsolutePath();
- service.getRecentTasks().saveImage(icon, iconFilePath);
+ service.mActivityTaskManager.getRecentTasks().saveImage(icon, iconFilePath);
_taskDescription.setIconFilename(iconFilePath);
}
taskDescription = _taskDescription;
String resultWho, int requestCode, int callingPid, int callingUid,
String callingPackage, boolean ignoreTargetSecurity, boolean launchingInTask,
ProcessRecord callerApp, ActivityRecord resultRecord, ActivityStack resultStack) {
- final boolean isCallerRecents = mService.getRecentTasks() != null &&
- mService.getRecentTasks().isCallerRecents(callingUid);
+ final boolean isCallerRecents = mService.mActivityTaskManager.getRecentTasks() != null
+ && mService.mActivityTaskManager.getRecentTasks().isCallerRecents(callingUid);
final int startAnyPerm = mService.checkPermission(START_ANY_ACTIVITY, callingPid,
callingUid);
if (startAnyPerm == PERMISSION_GRANTED || (isCallerRecents && launchingInTask)) {
private static final String TAG_VISIBILITY = TAG + POSTFIX_VISIBILITY;
private static final String TAG_LOCKTASK = TAG + POSTFIX_LOCKTASK;
- private Context mContext;
- private ActivityManagerService mAm;
+ Context mContext;
+ ActivityManagerService mAm;
/* Global service lock used by the package the owns this service. */
Object mGlobalLock;
- private ActivityStackSupervisor mStackSupervisor;
-
+ ActivityStackSupervisor mStackSupervisor;
+ /** List of intents that were used to start the most recent tasks. */
+ private RecentTasks mRecentTasks;
/** State of external calls telling us if the device is awake or asleep. */
private boolean mKeyguardShown = false;
mAm = am;
mGlobalLock = mAm;
mStackSupervisor = mAm.mStackSupervisor;
+ mRecentTasks = createRecentTasks();
+ mStackSupervisor.setRecentTasks(mRecentTasks);
+ }
+
+ protected RecentTasks createRecentTasks() {
+ return new RecentTasks(this, mStackSupervisor);
+ }
+
+ RecentTasks getRecentTasks() {
+ return mRecentTasks;
}
private void start() {
final long origId = Binder.clearCallingIdentity();
try {
synchronized (mGlobalLock) {
- final ComponentName recentsComponent = mAm.getRecentTasks().getRecentsComponent();
- final int recentsUid = mAm.getRecentTasks().getRecentsComponentUid();
+ final ComponentName recentsComponent = mRecentTasks.getRecentsComponent();
+ final int recentsUid = mRecentTasks.getRecentsComponentUid();
// Start a new recents animation
final RecentsAnimation anim = new RecentsAnimation(mAm, mStackSupervisor,
== PackageManager.PERMISSION_GRANTED;
synchronized (mGlobalLock) {
- return mAm.getRecentTasks().getRecentTasks(maxNum, flags, allowed, detailed, userId,
+ return mRecentTasks.getRecentTasks(maxNum, flags, allowed, detailed, userId,
callingUid);
}
}
long ident = Binder.clearCallingIdentity();
try {
synchronized (mGlobalLock) {
- return mAm.getRecentTasks().getAppTasksList(callingUid, callingPackage);
+ return mRecentTasks.getAppTasksList(callingUid, callingPackage);
}
} finally {
Binder.restoreCallingIdentity(ident);
final TaskRecord task = stack.createTaskRecord(
mStackSupervisor.getNextTaskIdForUserLocked(r.userId), ainfo, intent,
null /* voiceSession */, null /* voiceInteractor */, !ON_TOP);
- if (!mAm.getRecentTasks().addToBottom(task)) {
+ if (!mRecentTasks.addToBottom(task)) {
// The app has too many tasks already and we can't add any more
stack.removeTask(task, "addAppTask", REMOVE_TASK_MODE_DESTROYING);
return INVALID_TASK_ID;
throw new IllegalArgumentException("Bad file path: " + filePath
+ " passed for userId " + userId);
}
- return mAm.getRecentTasks().getTaskDescriptionIcon(filePath);
+ return mRecentTasks.getTaskDescriptionIcon(filePath);
}
@Override
@Override
public boolean isCallerRecents(int callingUid) {
- return mAm.getRecentTasks().isCallerRecents(callingUid);
+ return getRecentTasks().isCallerRecents(callingUid);
}
@Override
public boolean isRecentsComponentHomeActivity(int userId) {
- return mAm.getRecentTasks().isRecentsComponentHomeActivity(userId);
+ return getRecentTasks().isRecentsComponentHomeActivity(userId);
}
@Override
* only the process that calls getAppTasks() can call the AppTask methods.
*/
class AppTaskImpl extends IAppTask.Stub {
- private ActivityManagerService mService;
+ private ActivityTaskManagerService mService;
private int mTaskId;
private int mCallingUid;
- public AppTaskImpl(ActivityManagerService service, int taskId, int callingUid) {
+ public AppTaskImpl(ActivityTaskManagerService service, int taskId, int callingUid) {
mService = service;
mTaskId = taskId;
mCallingUid = callingUid;
public void finishAndRemoveTask() {
checkCaller();
- synchronized (mService) {
+ synchronized (mService.mGlobalLock) {
long origId = Binder.clearCallingIdentity();
try {
// We remove the task from recents to preserve backwards
public ActivityManager.RecentTaskInfo getTaskInfo() {
checkCaller();
- synchronized (mService) {
+ synchronized (mService.mGlobalLock) {
long origId = Binder.clearCallingIdentity();
try {
TaskRecord tr = mService.mStackSupervisor.anyTaskForIdLocked(mTaskId,
int callingUser = UserHandle.getCallingUserId();
TaskRecord tr;
IApplicationThread appThread;
- synchronized (mService) {
+ synchronized (mService.mGlobalLock) {
tr = mService.mStackSupervisor.anyTaskForIdLocked(mTaskId,
MATCH_TASK_IN_STACKS_OR_RECENT_TASKS);
if (tr == null) {
}
}
- return mService.getActivityStartController().obtainStarter(intent, "AppTaskImpl")
+ return mService.mAm.getActivityStartController().obtainStarter(intent, "AppTaskImpl")
.setCaller(appThread)
.setCallingPackage(callingPackage)
.setResolvedType(resolvedType)
public void setExcludeFromRecents(boolean exclude) {
checkCaller();
- synchronized (mService) {
+ synchronized (mService.mGlobalLock) {
long origId = Binder.clearCallingIdentity();
try {
TaskRecord tr = mService.mStackSupervisor.anyTaskForIdLocked(mTaskId,
* Save recent tasks information across reboots.
*/
private final TaskPersister mTaskPersister;
- private final ActivityManagerService mService;
+ private final ActivityTaskManagerService mService;
+ private final ActivityStackSupervisor mSupervisor;
private final UserController mUserController;
/**
private final TaskActivitiesReport mTmpReport = new TaskActivitiesReport();
@VisibleForTesting
- RecentTasks(ActivityManagerService service, TaskPersister taskPersister,
+ RecentTasks(ActivityTaskManagerService service, TaskPersister taskPersister,
UserController userController) {
mService = service;
+ mSupervisor = mService.mStackSupervisor;
mUserController = userController;
mTaskPersister = taskPersister;
mGlobalMaxNumTasks = ActivityTaskManager.getMaxRecentTasksStatic();
mHasVisibleRecentTasks = true;
}
- RecentTasks(ActivityManagerService service, ActivityStackSupervisor stackSupervisor) {
+ RecentTasks(ActivityTaskManagerService service, ActivityStackSupervisor stackSupervisor) {
final File systemDir = Environment.getDataSystemDirectory();
final Resources res = service.mContext.getResources();
mService = service;
- mUserController = service.mUserController;
+ mSupervisor = mService.mStackSupervisor;
+ mUserController = service.mAm.mUserController;
mTaskPersister = new TaskPersister(systemDir, stackSupervisor, service, this);
mGlobalMaxNumTasks = ActivityTaskManager.getMaxRecentTasksStatic();
mHasVisibleRecentTasks = res.getBoolean(com.android.internal.R.bool.config_hasRecents);
* @return whether the home app is also the active handler of recent tasks.
*/
boolean isRecentsComponentHomeActivity(int userId) {
- final ComponentName defaultHomeActivity = mService.getPackageManagerInternalLocked()
+ final ComponentName defaultHomeActivity = mService.mAm.getPackageManagerInternalLocked()
.getDefaultHomeActivity(userId);
return defaultHomeActivity != null && mRecentsComponent != null &&
defaultHomeActivity.getPackageName().equals(mRecentsComponent.getPackageName());
}
void flush() {
- synchronized (mService) {
+ synchronized (mService.mGlobalLock) {
syncPersistentTaskIdsLocked();
}
mTaskPersister.flush();
&& tr.realActivitySuspended != suspended) {
tr.realActivitySuspended = suspended;
if (suspended) {
- mService.mStackSupervisor.removeTaskByIdLocked(tr.taskId, false,
+ mSupervisor.removeTaskByIdLocked(tr.taskId, false,
REMOVE_FROM_RECENTS, "suspended-package");
}
notifyTaskPersisterLocked(tr, false);
}
for (int i = mTasks.size() - 1; i >= 0; --i) {
final TaskRecord tr = mTasks.get(i);
- if (tr.userId == userId && !mService.getLockTaskController().isTaskWhitelisted(tr)) {
+ if (tr.userId == userId && !mService.mAm.getLockTaskController().isTaskWhitelisted(tr)) {
remove(tr);
}
}
if (tr.userId != userId) continue;
if (!taskPackageName.equals(packageName)) continue;
- mService.mStackSupervisor.removeTaskByIdLocked(tr.taskId, true, REMOVE_FROM_RECENTS,
+ mSupervisor.removeTaskByIdLocked(tr.taskId, true, REMOVE_FROM_RECENTS,
"remove-package-task");
}
}
final boolean sameComponent = cn != null && cn.getPackageName().equals(packageName)
&& (filterByClasses == null || filterByClasses.contains(cn.getClassName()));
if (sameComponent) {
- mService.mStackSupervisor.removeTaskByIdLocked(tr.taskId, false,
+ mSupervisor.removeTaskByIdLocked(tr.taskId, false,
REMOVE_FROM_RECENTS, "disabled-package");
}
}
boolean getTasksAllowed, boolean getDetailedTasks, int userId, int callingUid) {
final boolean withExcluded = (flags & RECENT_WITH_EXCLUDED) != 0;
- if (!mService.isUserRunning(userId, FLAG_AND_UNLOCKED)) {
+ if (!mService.mAm.isUserRunning(userId, FLAG_AND_UNLOCKED)) {
Slog.i(TAG, "user " + userId + " is still locked. Cannot load recents");
return ParceledListSlice.emptyList();
}
}
// If we're in lock task mode, ignore the root task
- if (task == mService.getLockTaskController().getRootTask()) {
+ if (task == mService.mAm.getLockTaskController().getRootTask()) {
return false;
}
*/
protected boolean isTrimmable(TaskRecord task) {
final ActivityStack stack = task.getStack();
- final ActivityStack homeStack = mService.mStackSupervisor.mHomeStack;
+ final ActivityStack homeStack = mSupervisor.mHomeStack;
// No stack for task, just trim it
if (stack == null) {
private static final String TAG_TASK = "task";
- private final ActivityManagerService mService;
+ private final ActivityTaskManagerService mService;
private final ActivityStackSupervisor mStackSupervisor;
private final RecentTasks mRecentTasks;
private final SparseArray<SparseBooleanArray> mTaskIdsInFile = new SparseArray<>();
ArrayList<WriteQueueItem> mWriteQueue = new ArrayList<WriteQueueItem>();
TaskPersister(File systemDir, ActivityStackSupervisor stackSupervisor,
- ActivityManagerService service, RecentTasks recentTasks) {
+ ActivityTaskManagerService service, RecentTasks recentTasks) {
final File legacyImagesDir = new File(systemDir, IMAGES_DIRNAME);
if (legacyImagesDir.exists()) {
private void writeTaskIdsFiles() {
SparseArray<SparseBooleanArray> changedTaskIdsPerUser = new SparseArray<>();
- synchronized (mService) {
+ synchronized (mService.mGlobalLock) {
for (int userId : mRecentTasks.usersWithRecentsLoadedLocked()) {
SparseBooleanArray taskIdsToSave = mRecentTasks.getTaskIdsForUser(userId);
SparseBooleanArray persistedIdsInFile = mTaskIdsInFile.get(userId);
private void removeObsoleteFiles(ArraySet<Integer> persistentTaskIds) {
int[] candidateUserIds;
- synchronized (mService) {
+ synchronized (mService.mGlobalLock) {
// Remove only from directories of the users who have recents in memory synchronized
// with persistent storage.
candidateUserIds = mRecentTasks.usersWithRecentsLoadedLocked();
if (probablyDone) {
if (DEBUG) Slog.d(TAG, "Looking for obsolete files.");
persistentTaskIds.clear();
- synchronized (mService) {
+ synchronized (mService.mGlobalLock) {
if (DEBUG) Slog.d(TAG, "mRecents=" + mRecentTasks);
mRecentTasks.getPersistableTaskIds(persistentTaskIds);
- mService.mWindowManager.removeObsoleteTaskFiles(persistentTaskIds,
+ mService.mAm.mWindowManager.removeObsoleteTaskFiles(persistentTaskIds,
mRecentTasks.usersWithRecentsLoadedLocked());
}
removeObsoleteFiles(persistentTaskIds);
StringWriter stringWriter = null;
TaskRecord task = ((TaskWriteQueueItem) item).mTask;
if (DEBUG) Slog.d(TAG, "Writing task=" + task);
- synchronized (mService) {
+ synchronized (mService.mGlobalLock) {
if (task.inRecents) {
// Still there.
try {
void loadUserRecents(int userId) {
synchronized (mService) {
- mService.getRecentTasks().loadUserRecentsLocked(userId);
+ mService.mActivityTaskManager.getRecentTasks().loadUserRecentsLocked(userId);
}
}
}
protected boolean isCallerRecents(int callingUid) {
- return mService.getRecentTasks().isCallerRecents(callingUid);
+ return mService.mActivityTaskManager.getRecentTasks().isCallerRecents(callingUid);
}
}
}
// Activity manager runs the show.
traceBeginAndSlog("StartActivityManager");
+ // TODO: Might need to move after migration to WM.
+ ActivityTaskManagerService atm = mSystemServiceManager.startService(
+ ActivityTaskManagerService.Lifecycle.class).getService();
mActivityManagerService = mSystemServiceManager.startService(
ActivityManagerService.Lifecycle.class).getService();
mActivityManagerService.setSystemServiceManager(mSystemServiceManager);
mActivityManagerService.setInstaller(installer);
- // TODO: Might need to move after migration to WM.
- ActivityTaskManagerService atm = mSystemServiceManager.startService(
- ActivityTaskManagerService.Lifecycle.class).getService();
mActivityManagerService.setActivityTaskManager(atm);
traceEnd();
return service;
}
- protected ActivityManagerService setupActivityManagerService(ActivityManagerService service) {
+ protected ActivityManagerService setupActivityManagerService(
+ ActivityManagerService service, ActivityTaskManagerService atm) {
service = spy(service);
+ atm = spy(atm);
// Makes sure the supervisor is using with the spy object.
service.mStackSupervisor.setService(service);
- // Makes sure activity task is created with the spy object.
- TestActivityTaskManagerService atm =
- spy(new TestActivityTaskManagerService(service.mContext));
service.setActivityTaskManager(atm);
doReturn(mock(IPackageManager.class)).when(service).getPackageManager();
doNothing().when(service).grantEphemeralAccessLocked(anyInt(), any(), anyInt(), anyInt());
return service;
}
+ protected ActivityManagerService setupActivityManagerService(ActivityManagerService service) {
+ return setupActivityManagerService(
+ service, new TestActivityTaskManagerService(service.mContext));
+ }
+
/**
* Builder for creating new activities.
*/
super.setUp();
mTaskPersister = new TestTaskPersister(mContext.getFilesDir());
- mService = setupActivityManagerService(new MyTestActivityManagerService(mContext));
- mRecentTasks = (TestRecentTasks) mService.getRecentTasks();
+ mService = setupActivityManagerService(new MyTestActivityManagerService(mContext),
+ new MyTestActivityTaskManagerService(mContext));
+ mRecentTasks = (TestRecentTasks) mService.mActivityTaskManager.getRecentTasks();
mRecentTasks.loadParametersFromResources(mContext.getResources());
mHomeStack = mService.mStackSupervisor.getDefaultDisplay().createStack(
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, true /* onTop */);
}
}
+ private class MyTestActivityTaskManagerService extends TestActivityTaskManagerService {
+ MyTestActivityTaskManagerService(Context context) {
+ super(context);
+ }
+
+ @Override
+ protected RecentTasks createRecentTasks() {
+ return new TestRecentTasks(this, mTaskPersister, new TestUserController(mAm));
+ }
+ }
+
private class MyTestActivityManagerService extends TestActivityManagerService {
MyTestActivityManagerService(Context context) {
super(context);
}
@Override
- protected RecentTasks createRecentTasks() {
- return new TestRecentTasks(this, mTaskPersister, new TestUserController(this));
- }
-
- @Override
public boolean isUserRunning(int userId, int flags) {
return true;
}
boolean lastAllowed;
- TestRecentTasks(ActivityManagerService service, TaskPersister taskPersister,
+ TestRecentTasks(ActivityTaskManagerService service, TaskPersister taskPersister,
UserController userController) {
super(service, taskPersister, userController);
}
super.setUp();
mRecentsComponent = new ComponentName(mContext.getPackageName(), "RecentsActivity");
- mService = setupActivityManagerService(new MyTestActivityManagerService(mContext));
+ mService = setupActivityManagerService(new TestActivityManagerService(mContext),
+ new MyTestActivityTaskManagerService(mContext));
AttributeCache.init(mContext);
}
eq(REORDER_KEEP_IN_PLACE), any());
}
- private class MyTestActivityManagerService extends TestActivityManagerService {
- MyTestActivityManagerService(Context context) {
+ private class MyTestActivityTaskManagerService extends TestActivityTaskManagerService {
+ MyTestActivityTaskManagerService(Context context) {
super(context);
}