Loading services/core/java/com/android/server/wm/ActivityMetricsLogger.java +7 −7 Original line number Diff line number Diff line Loading @@ -425,20 +425,20 @@ class ActivityMetricsLogger { mLastLogTimeSecs = now; mWindowState = WINDOW_STATE_INVALID; Task stack = mSupervisor.mRootWindowContainer.getTopDisplayFocusedStack(); if (stack == null) { Task rootTask = mSupervisor.mRootWindowContainer.getTopDisplayFocusedRootTask(); if (rootTask == null) { return; } if (stack.isActivityTypeAssistant()) { if (rootTask.isActivityTypeAssistant()) { mWindowState = WINDOW_STATE_ASSISTANT; return; } @WindowingMode int windowingMode = stack.getWindowingMode(); @WindowingMode int windowingMode = rootTask.getWindowingMode(); if (windowingMode == WINDOWING_MODE_PINNED) { stack = mSupervisor.mRootWindowContainer.findStackBehind(stack); windowingMode = stack.getWindowingMode(); rootTask = mSupervisor.mRootWindowContainer.findRootTaskBehind(rootTask); windowingMode = rootTask.getWindowingMode(); } switch (windowingMode) { case WINDOWING_MODE_FULLSCREEN: Loading @@ -456,7 +456,7 @@ class ActivityMetricsLogger { break; default: if (windowingMode != WINDOWING_MODE_UNDEFINED) { throw new IllegalStateException("Unknown windowing mode for stack=" + stack throw new IllegalStateException("Unknown windowing mode for task=" + rootTask + " windowingMode=" + windowingMode); } } Loading services/core/java/com/android/server/wm/ActivityRecord.java +12 −12 Original line number Diff line number Diff line Loading @@ -2550,15 +2550,15 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return FINISH_RESULT_CANCELLED; } final Task stack = getRootTask(); final boolean mayAdjustTop = (isState(RESUMED) || stack.mResumedActivity == null) && stack.isFocusedStackOnDisplay() final Task rootTask = getRootTask(); final boolean mayAdjustTop = (isState(RESUMED) || rootTask.mResumedActivity == null) && rootTask.isFocusedStackOnDisplay() // Do not adjust focus task because the task will be reused to launch new activity. && !task.isClearingToReuseTask(); final boolean shouldAdjustGlobalFocus = mayAdjustTop // It must be checked before {@link #makeFinishingLocked} is called, because a stack // is not visible if it only contains finishing activities. && mRootWindowContainer.isTopDisplayFocusedStack(stack); && mRootWindowContainer.isTopDisplayFocusedRootTask(rootTask); mAtmService.deferWindowLayout(); try { Loading Loading @@ -2623,12 +2623,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // Tell window manager to prepare for this one to be removed. setVisibility(false); if (stack.mPausingActivity == null) { if (rootTask.mPausingActivity == null) { ProtoLog.v(WM_DEBUG_STATES, "Finish needs to pause: %s", this); if (DEBUG_USER_LEAVING) { Slog.v(TAG_USER_LEAVING, "finish() => pause with userLeaving=false"); } stack.startPausingLocked(false /* userLeaving */, false /* uiSleeping */, rootTask.startPausingLocked(false /* userLeaving */, false /* uiSleeping */, null /* resuming */, "finish"); } Loading Loading @@ -2827,7 +2827,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A false /* markFrozenIfConfigChanged */, true /* deferResume */); } if (activityRemoved) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } ProtoLog.d(WM_DEBUG_CONTAINERS, "destroyIfPossible: r=%s destroy returned " Loading @@ -2849,7 +2849,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mTaskSupervisor.mFinishingActivities.add(this); } resumeKeyDispatchingLocked(); return mRootWindowContainer.resumeFocusedStacksTopActivities(); return mRootWindowContainer.resumeFocusedTasksTopActivities(); } /** Loading Loading @@ -3014,7 +3014,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A removeFromHistory(reason); } mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } /** Loading Loading @@ -5206,7 +5206,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } else { if (deferRelaunchUntilPaused) { destroyImmediately("stop-config"); mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } else { mRootWindowContainer.updatePreviousProcess(this); } Loading Loading @@ -5703,7 +5703,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // First find the real culprit... if this activity has stopped, then the key dispatching // timeout should not be caused by this. if (stopped) { final Task stack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task stack = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (stack == null) { return this; } Loading Loading @@ -6091,7 +6091,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A @Override public void onAnimationLeashCreated(Transaction t, SurfaceControl leash) { t.setLayer(leash, getAnimationLayer()); getDisplayContent().assignStackOrdering(); getDisplayContent().assignRootTaskOrdering(); } @Override Loading services/core/java/com/android/server/wm/ActivityStarter.java +15 −15 Original line number Diff line number Diff line Loading @@ -664,7 +664,7 @@ class ActivityStarter { synchronized (mService.mGlobalLock) { final boolean globalConfigWillChange = mRequest.globalConfig != null && mService.getGlobalConfiguration().diff(mRequest.globalConfig) != 0; final Task stack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task stack = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (stack != null) { stack.mConfigWillChange = globalConfigWillChange; } Loading Loading @@ -900,7 +900,7 @@ class ActivityStarter { ActivityRecord sourceRecord = null; ActivityRecord resultRecord = null; if (resultTo != null) { sourceRecord = mRootWindowContainer.isInAnyStack(resultTo); sourceRecord = mRootWindowContainer.isInAnyTask(resultTo); if (DEBUG_RESULTS) { Slog.v(TAG_RESULTS, "Will send result to " + resultTo + " " + sourceRecord); } Loading Loading @@ -1135,7 +1135,7 @@ class ActivityStarter { if (DEBUG_PERMISSIONS_REVIEW) { final Task focusedStack = mRootWindowContainer.getTopDisplayFocusedStack(); mRootWindowContainer.getTopDisplayFocusedRootTask(); Slog.i(TAG, "START u" + userId + " {" + intent.toShortString(true, true, true, false) + "} from uid " + callingUid + " on display " + (focusedStack == null ? DEFAULT_DISPLAY Loading Loading @@ -1175,7 +1175,7 @@ class ActivityStarter { r.appTimeTracker = sourceRecord.appTimeTracker; } final Task stack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task stack = mRootWindowContainer.getTopDisplayFocusedRootTask(); // If we are starting an activity that is not from the same uid as the currently resumed // one, check whether app switches are allowed. Loading Loading @@ -1718,7 +1718,7 @@ class ActivityStarter { // If the activity being launched is the same as the one currently at the top, then // we need to check if it should only be launched once. final Task topStack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task topStack = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (topStack != null) { startResult = deliverToCurrentTopIfNeeded(topStack, intentGrants); if (startResult != START_SUCCESS) { Loading Loading @@ -1806,14 +1806,14 @@ class ActivityStarter { // task stack to be focusable, then ensure that we now update the focused stack // accordingly. if (mTargetStack.isTopActivityFocusable() && !mRootWindowContainer.isTopDisplayFocusedStack(mTargetStack)) { && !mRootWindowContainer.isTopDisplayFocusedRootTask(mTargetStack)) { mTargetStack.moveToFront("startActivityInner"); } mRootWindowContainer.resumeFocusedStacksTopActivities( mRootWindowContainer.resumeFocusedTasksTopActivities( mTargetStack, mStartActivity, mOptions); } } mRootWindowContainer.updateUserStack(mStartActivity.mUserId, mTargetStack); mRootWindowContainer.updateUserRootTask(mStartActivity.mUserId, mTargetStack); // Update the recent tasks list immediately when the activity starts mSupervisor.mRecentTasks.add(mStartActivity.getTask()); Loading Loading @@ -1849,7 +1849,7 @@ class ActivityStarter { private void computeLaunchParams(ActivityRecord r, ActivityRecord sourceRecord, Task targetTask) { final Task sourceStack = mSourceStack != null ? mSourceStack : mRootWindowContainer.getTopDisplayFocusedStack(); : mRootWindowContainer.getTopDisplayFocusedRootTask(); if (sourceStack != null && sourceStack.inSplitScreenWindowingMode() && (mOptions == null || mOptions.getLaunchWindowingMode() == WINDOWING_MODE_UNDEFINED)) { Loading Loading @@ -2048,7 +2048,7 @@ class ActivityStarter { // For paranoia, make sure we have correctly resumed the top activity. topStack.mLastPausedActivity = null; if (mDoResume) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } ActivityOptions.abort(mOptions); if ((mStartFlags & START_FLAG_ONLY_IF_NEEDED) != 0) { Loading Loading @@ -2347,7 +2347,7 @@ class ActivityStarter { if ((startFlags & START_FLAG_ONLY_IF_NEEDED) != 0) { ActivityRecord checkedCaller = sourceRecord; if (checkedCaller == null) { Task topFocusedStack = mRootWindowContainer.getTopDisplayFocusedStack(); Task topFocusedStack = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (topFocusedStack != null) { checkedCaller = topFocusedStack.topRunningNonDelayedActivityLocked(mNotTop); } Loading Loading @@ -2567,7 +2567,7 @@ class ActivityStarter { // to the front if the caller is not itself in the front. final boolean differentTopTask; if (mTargetStack.getDisplayArea() == mPreferredTaskDisplayArea) { final Task focusStack = mTargetStack.mDisplayContent.getFocusedStack(); final Task focusStack = mTargetStack.mDisplayContent.getFocusedRootTask(); final ActivityRecord curTop = (focusStack == null) ? null : focusStack.topRunningNonDelayedActivityLocked(mNotTop); final Task topTask = curTop != null ? curTop.getTask() : null; Loading Loading @@ -2634,11 +2634,11 @@ class ActivityStarter { if (next != null) { next.setCurrentLaunchCanTurnScreenOn(true); } mRootWindowContainer.resumeFocusedStacksTopActivities(mTargetStack, null, mOptions); mRootWindowContainer.resumeFocusedTasksTopActivities(mTargetStack, null, mOptions); } else { ActivityOptions.abort(mOptions); } mRootWindowContainer.updateUserStack(mStartActivity.mUserId, mTargetStack); mRootWindowContainer.updateUserRootTask(mStartActivity.mUserId, mTargetStack); } private void setNewTask(Task taskToAffiliate) { Loading Loading @@ -2713,7 +2713,7 @@ class ActivityStarter { final boolean onTop = (aOptions == null || !aOptions.getAvoidMoveToFront()) && !mLaunchTaskBehind; return mRootWindowContainer.getLaunchStack(r, aOptions, task, onTop, mLaunchParams, return mRootWindowContainer.getLaunchRootTask(r, aOptions, task, onTop, mLaunchParams, mRequest.realCallingPid, mRequest.realCallingUid); } Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +34 −34 Original line number Diff line number Diff line Loading @@ -1156,7 +1156,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { // If this is coming from the currently resumed activity, it is // effectively saying that app switches are allowed at this point. final Task stack = getTopDisplayFocusedStack(); final Task stack = getTopDisplayFocusedRootTask(); if (stack != null && stack.mResumedActivity != null && stack.mResumedActivity.info.applicationInfo.uid == Binder.getCallingUid()) { mAppSwitchesAllowedTime = 0; Loading Loading @@ -1470,7 +1470,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { sourceToken = resultTo; } sourceRecord = mRootWindowContainer.isInAnyStack(sourceToken); sourceRecord = mRootWindowContainer.isInAnyTask(sourceToken); if (sourceRecord == null) { throw new SecurityException("Called with bad activity token: " + sourceToken); } Loading Loading @@ -2039,7 +2039,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public boolean isTopActivityImmersive() { enforceNotIsolatedCaller("isTopActivityImmersive"); synchronized (mGlobalLock) { final Task topFocusedStack = getTopDisplayFocusedStack(); final Task topFocusedStack = getTopDisplayFocusedRootTask(); if (topFocusedStack == null) { return false; } Loading Loading @@ -2074,7 +2074,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public int getFrontActivityScreenCompatMode() { enforceNotIsolatedCaller("getFrontActivityScreenCompatMode"); synchronized (mGlobalLock) { final Task stack = getTopDisplayFocusedStack(); final Task stack = getTopDisplayFocusedRootTask(); final ActivityRecord r = stack != null ? stack.topRunningActivity() : null; if (r == null) { return ActivityManager.COMPAT_MODE_UNKNOWN; Loading @@ -2089,7 +2089,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { "setFrontActivityScreenCompatMode"); ApplicationInfo ai; synchronized (mGlobalLock) { final Task stack = getTopDisplayFocusedStack(); final Task stack = getTopDisplayFocusedRootTask(); final ActivityRecord r = stack != null ? stack.topRunningActivity() : null; if (r == null) { Slog.w(TAG, "setFrontActivityScreenCompatMode failed: no top activity"); Loading Loading @@ -2165,7 +2165,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public void notifyActivityDrawn(IBinder token) { if (DEBUG_VISIBILITY) Slog.d(TAG_VISIBILITY, "notifyActivityDrawn: token=" + token); synchronized (mGlobalLock) { ActivityRecord r = mRootWindowContainer.isInAnyStack(token); ActivityRecord r = mRootWindowContainer.isInAnyTask(token); if (r != null) { r.getRootTask().notifyActivityDrawnLocked(r); } Loading Loading @@ -2201,7 +2201,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final long ident = Binder.clearCallingIdentity(); try { synchronized (mGlobalLock) { Task focusedStack = getTopDisplayFocusedStack(); Task focusedStack = getTopDisplayFocusedRootTask(); if (focusedStack != null) { return mRootWindowContainer.getRootTaskInfo(focusedStack.mTaskId); } Loading @@ -2219,14 +2219,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final long callingId = Binder.clearCallingIdentity(); try { synchronized (mGlobalLock) { final Task task = mRootWindowContainer.getStack(taskId); final Task task = mRootWindowContainer.getRootTask(taskId); if (task == null) { Slog.w(TAG, "setFocusedRootTask: No task with id=" + taskId); return; } final ActivityRecord r = task.topRunningActivity(); if (r != null && r.moveFocusableActivityToTop("setFocusedRootTask")) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } } } finally { Loading @@ -2248,7 +2248,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } final ActivityRecord r = task.topRunningActivityLocked(); if (r != null && r.moveFocusableActivityToTop("setFocusedTask")) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } } } finally { Loading Loading @@ -2508,7 +2508,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { final long origId = Binder.clearCallingIdentity(); try { final Task topFocusedStack = getTopDisplayFocusedStack(); final Task topFocusedStack = getTopDisplayFocusedRootTask(); if (topFocusedStack != null) { topFocusedStack.unhandledBackLocked(); } Loading Loading @@ -2820,7 +2820,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { ProtoLog.d(WM_DEBUG_TASKS, "moveTaskToRootTask: moving task=%d to " + "rootTaskId=%d toTop=%b", taskId, rootTaskId, toTop); final Task rootTask = mRootWindowContainer.getStack(rootTaskId); final Task rootTask = mRootWindowContainer.getRootTask(rootTaskId); if (rootTask == null) { throw new IllegalStateException( "moveTaskToRootTask: No rootTask for rootTaskId=" + rootTaskId); Loading Loading @@ -3088,8 +3088,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { return; } final Task stack = mRootWindowContainer.getTopDisplayFocusedStack(); if (stack == null || task != stack.getTopMostTask()) { final Task rootTask = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (rootTask == null || task != rootTask.getTopMostTask()) { throw new IllegalArgumentException("Invalid task, not in foreground"); } Loading Loading @@ -3370,7 +3370,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } final Task stack = r.getRootTask(); final Task task = stack.getDisplayArea().createStack(stack.getWindowingMode(), final Task task = stack.getDisplayArea().createRootTask(stack.getWindowingMode(), stack.getActivityType(), !ON_TOP, ainfo, intent, false /* createdByOrganizer */); Loading Loading @@ -3533,7 +3533,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { try { ProtoLog.d(WM_DEBUG_TASKS, "moveRootTaskToDisplay: moving taskId=%d to " + "displayId=%d", taskId, displayId); mRootWindowContainer.moveStackToDisplay(taskId, displayId, ON_TOP); mRootWindowContainer.moveRootTaskToDisplay(taskId, displayId, ON_TOP); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading @@ -3741,7 +3741,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { "enqueueAssistContext()"); synchronized (mGlobalLock) { final Task stack = getTopDisplayFocusedStack(); final Task stack = getTopDisplayFocusedRootTask(); ActivityRecord activity = stack != null ? stack.getTopNonFinishingActivity() : null; if (activity == null) { Slog.w(TAG, "getAssistContextExtras failed: no top activity"); Loading Loading @@ -3870,7 +3870,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public boolean isAssistDataAllowedOnCurrentActivity() { int userId; synchronized (mGlobalLock) { final Task focusedStack = getTopDisplayFocusedStack(); final Task focusedStack = getTopDisplayFocusedRootTask(); if (focusedStack == null || focusedStack.isActivityTypeAssistant()) { return false; } Loading @@ -3890,7 +3890,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { try { synchronized (mGlobalLock) { ActivityRecord caller = ActivityRecord.forTokenLocked(token); ActivityRecord top = getTopDisplayFocusedStack().getTopNonFinishingActivity(); ActivityRecord top = getTopDisplayFocusedRootTask().getTopNonFinishingActivity(); if (top != caller) { Slog.w(TAG, "showAssistFromActivity failed: caller " + caller + " is not current top " + top); Loading Loading @@ -4069,7 +4069,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final long ident = Binder.clearCallingIdentity(); try { return mRootWindowContainer.moveTopStackActivityToPinnedRootTask(rootTaskId); return mRootWindowContainer.moveTopRootTaskActivityToPinnedRootTask(rootTaskId); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading @@ -4113,7 +4113,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { r.setPictureInPictureParams(params); final float aspectRatio = r.pictureInPictureArgs.getAspectRatio(); final List<RemoteAction> actions = r.pictureInPictureArgs.getActions(); mRootWindowContainer.moveActivityToPinnedStack( mRootWindowContainer.moveActivityToPinnedRootTask( r, "enterPictureInPictureMode"); final Task stack = r.getRootTask(); stack.setPictureInPictureAspectRatio(aspectRatio); Loading Loading @@ -4345,7 +4345,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public void startLocalVoiceInteraction(IBinder callingActivity, Bundle options) { Slog.i(TAG, "Activity tried to startLocalVoiceInteraction"); synchronized (mGlobalLock) { ActivityRecord activity = getTopDisplayFocusedStack().getTopNonFinishingActivity(); ActivityRecord activity = getTopDisplayFocusedRootTask().getTopNonFinishingActivity(); if (ActivityRecord.forTokenLocked(callingActivity) != activity) { throw new SecurityException("Only focused activity can call startVoiceInteraction"); } Loading Loading @@ -4749,7 +4749,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { if (r.requestedVrComponent != null && r.getDisplayId() != DEFAULT_DISPLAY) { Slog.i(TAG, "Moving " + r.shortComponentName + " from display " + r.getDisplayId() + " to main display for VR"); mRootWindowContainer.moveStackToDisplay( mRootWindowContainer.moveRootTaskToDisplay( r.getRootTaskId(), DEFAULT_DISPLAY, true /* toTop */); } mH.post(() -> { Loading Loading @@ -4813,8 +4813,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } Task getTopDisplayFocusedStack() { return mRootWindowContainer.getTopDisplayFocusedStack(); Task getTopDisplayFocusedRootTask() { return mRootWindowContainer.getTopDisplayFocusedRootTask(); } /** Pokes the task persister. */ Loading Loading @@ -5827,7 +5827,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { /** Applies latest configuration and/or visibility updates if needed. */ boolean ensureConfigAndVisibilityAfterUpdate(ActivityRecord starting, int changes) { boolean kept = true; final Task mainStack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task mainStack = mRootWindowContainer.getTopDisplayFocusedRootTask(); // mainStack is null during startup. if (mainStack != null) { if (changes != 0 && starting == null) { Loading Loading @@ -6082,8 +6082,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { static final int REPORT_TIME_TRACKER_MSG = 1; static final int FIRST_ACTIVITY_STACK_MSG = 100; static final int FIRST_SUPERVISOR_STACK_MSG = 200; static final int FIRST_ACTIVITY_TASK_MSG = 100; static final int FIRST_SUPERVISOR_TASK_MSG = 200; H(Looper looper) { super(looper); Loading Loading @@ -6292,7 +6292,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { "setFocusedActivity: No activity record matching token=" + token); } if (r.moveFocusableActivityToTop("setFocusedActivity")) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } } } Loading Loading @@ -6796,7 +6796,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { if (!restarting && hasVisibleActivities) { deferWindowLayout(); try { if (!mRootWindowContainer.resumeFocusedStacksTopActivities()) { if (!mRootWindowContainer.resumeFocusedTasksTopActivities()) { // If there was nothing to resume, and we are not already restarting // this process, but there is a visible activity that is hosted by the // process...then make sure all visible activities are running, taking Loading Loading @@ -6849,7 +6849,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { if (mRootWindowContainer.finishDisabledPackageActivities( packageName, disabledClasses, true /* doit */, false /* evenPersistent */, userId, false /* onlyRemoveNoProcess */) && booted) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); mTaskSupervisor.scheduleIdle(); } Loading Loading @@ -6879,7 +6879,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { @Override public void resumeTopActivities(boolean scheduleIdle) { synchronized (mGlobalLock) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); if (scheduleIdle) { mTaskSupervisor.scheduleIdle(); } Loading Loading @@ -7056,7 +7056,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { mRootWindowContainer.dumpDisplayConfigs(pw, " "); } if (dumpAll) { final Task topFocusedStack = getTopDisplayFocusedStack(); final Task topFocusedStack = getTopDisplayFocusedRootTask(); if (dumpPackage == null && topFocusedStack != null) { pw.println(" mConfigWillChange: " + topFocusedStack.mConfigWillChange); } Loading Loading @@ -7139,7 +7139,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { if (dumpPackage == null) { getGlobalConfiguration().dumpDebug(proto, GLOBAL_CONFIGURATION); final Task topFocusedStack = getTopDisplayFocusedStack(); final Task topFocusedStack = getTopDisplayFocusedRootTask(); if (topFocusedStack != null) { proto.write(CONFIG_WILL_CHANGE, topFocusedStack.mConfigWillChange); } Loading services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +57 −57 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
services/core/java/com/android/server/wm/ActivityMetricsLogger.java +7 −7 Original line number Diff line number Diff line Loading @@ -425,20 +425,20 @@ class ActivityMetricsLogger { mLastLogTimeSecs = now; mWindowState = WINDOW_STATE_INVALID; Task stack = mSupervisor.mRootWindowContainer.getTopDisplayFocusedStack(); if (stack == null) { Task rootTask = mSupervisor.mRootWindowContainer.getTopDisplayFocusedRootTask(); if (rootTask == null) { return; } if (stack.isActivityTypeAssistant()) { if (rootTask.isActivityTypeAssistant()) { mWindowState = WINDOW_STATE_ASSISTANT; return; } @WindowingMode int windowingMode = stack.getWindowingMode(); @WindowingMode int windowingMode = rootTask.getWindowingMode(); if (windowingMode == WINDOWING_MODE_PINNED) { stack = mSupervisor.mRootWindowContainer.findStackBehind(stack); windowingMode = stack.getWindowingMode(); rootTask = mSupervisor.mRootWindowContainer.findRootTaskBehind(rootTask); windowingMode = rootTask.getWindowingMode(); } switch (windowingMode) { case WINDOWING_MODE_FULLSCREEN: Loading @@ -456,7 +456,7 @@ class ActivityMetricsLogger { break; default: if (windowingMode != WINDOWING_MODE_UNDEFINED) { throw new IllegalStateException("Unknown windowing mode for stack=" + stack throw new IllegalStateException("Unknown windowing mode for task=" + rootTask + " windowingMode=" + windowingMode); } } Loading
services/core/java/com/android/server/wm/ActivityRecord.java +12 −12 Original line number Diff line number Diff line Loading @@ -2550,15 +2550,15 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return FINISH_RESULT_CANCELLED; } final Task stack = getRootTask(); final boolean mayAdjustTop = (isState(RESUMED) || stack.mResumedActivity == null) && stack.isFocusedStackOnDisplay() final Task rootTask = getRootTask(); final boolean mayAdjustTop = (isState(RESUMED) || rootTask.mResumedActivity == null) && rootTask.isFocusedStackOnDisplay() // Do not adjust focus task because the task will be reused to launch new activity. && !task.isClearingToReuseTask(); final boolean shouldAdjustGlobalFocus = mayAdjustTop // It must be checked before {@link #makeFinishingLocked} is called, because a stack // is not visible if it only contains finishing activities. && mRootWindowContainer.isTopDisplayFocusedStack(stack); && mRootWindowContainer.isTopDisplayFocusedRootTask(rootTask); mAtmService.deferWindowLayout(); try { Loading Loading @@ -2623,12 +2623,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // Tell window manager to prepare for this one to be removed. setVisibility(false); if (stack.mPausingActivity == null) { if (rootTask.mPausingActivity == null) { ProtoLog.v(WM_DEBUG_STATES, "Finish needs to pause: %s", this); if (DEBUG_USER_LEAVING) { Slog.v(TAG_USER_LEAVING, "finish() => pause with userLeaving=false"); } stack.startPausingLocked(false /* userLeaving */, false /* uiSleeping */, rootTask.startPausingLocked(false /* userLeaving */, false /* uiSleeping */, null /* resuming */, "finish"); } Loading Loading @@ -2827,7 +2827,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A false /* markFrozenIfConfigChanged */, true /* deferResume */); } if (activityRemoved) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } ProtoLog.d(WM_DEBUG_CONTAINERS, "destroyIfPossible: r=%s destroy returned " Loading @@ -2849,7 +2849,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A mTaskSupervisor.mFinishingActivities.add(this); } resumeKeyDispatchingLocked(); return mRootWindowContainer.resumeFocusedStacksTopActivities(); return mRootWindowContainer.resumeFocusedTasksTopActivities(); } /** Loading Loading @@ -3014,7 +3014,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A removeFromHistory(reason); } mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } /** Loading Loading @@ -5206,7 +5206,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } else { if (deferRelaunchUntilPaused) { destroyImmediately("stop-config"); mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } else { mRootWindowContainer.updatePreviousProcess(this); } Loading Loading @@ -5703,7 +5703,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // First find the real culprit... if this activity has stopped, then the key dispatching // timeout should not be caused by this. if (stopped) { final Task stack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task stack = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (stack == null) { return this; } Loading Loading @@ -6091,7 +6091,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A @Override public void onAnimationLeashCreated(Transaction t, SurfaceControl leash) { t.setLayer(leash, getAnimationLayer()); getDisplayContent().assignStackOrdering(); getDisplayContent().assignRootTaskOrdering(); } @Override Loading
services/core/java/com/android/server/wm/ActivityStarter.java +15 −15 Original line number Diff line number Diff line Loading @@ -664,7 +664,7 @@ class ActivityStarter { synchronized (mService.mGlobalLock) { final boolean globalConfigWillChange = mRequest.globalConfig != null && mService.getGlobalConfiguration().diff(mRequest.globalConfig) != 0; final Task stack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task stack = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (stack != null) { stack.mConfigWillChange = globalConfigWillChange; } Loading Loading @@ -900,7 +900,7 @@ class ActivityStarter { ActivityRecord sourceRecord = null; ActivityRecord resultRecord = null; if (resultTo != null) { sourceRecord = mRootWindowContainer.isInAnyStack(resultTo); sourceRecord = mRootWindowContainer.isInAnyTask(resultTo); if (DEBUG_RESULTS) { Slog.v(TAG_RESULTS, "Will send result to " + resultTo + " " + sourceRecord); } Loading Loading @@ -1135,7 +1135,7 @@ class ActivityStarter { if (DEBUG_PERMISSIONS_REVIEW) { final Task focusedStack = mRootWindowContainer.getTopDisplayFocusedStack(); mRootWindowContainer.getTopDisplayFocusedRootTask(); Slog.i(TAG, "START u" + userId + " {" + intent.toShortString(true, true, true, false) + "} from uid " + callingUid + " on display " + (focusedStack == null ? DEFAULT_DISPLAY Loading Loading @@ -1175,7 +1175,7 @@ class ActivityStarter { r.appTimeTracker = sourceRecord.appTimeTracker; } final Task stack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task stack = mRootWindowContainer.getTopDisplayFocusedRootTask(); // If we are starting an activity that is not from the same uid as the currently resumed // one, check whether app switches are allowed. Loading Loading @@ -1718,7 +1718,7 @@ class ActivityStarter { // If the activity being launched is the same as the one currently at the top, then // we need to check if it should only be launched once. final Task topStack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task topStack = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (topStack != null) { startResult = deliverToCurrentTopIfNeeded(topStack, intentGrants); if (startResult != START_SUCCESS) { Loading Loading @@ -1806,14 +1806,14 @@ class ActivityStarter { // task stack to be focusable, then ensure that we now update the focused stack // accordingly. if (mTargetStack.isTopActivityFocusable() && !mRootWindowContainer.isTopDisplayFocusedStack(mTargetStack)) { && !mRootWindowContainer.isTopDisplayFocusedRootTask(mTargetStack)) { mTargetStack.moveToFront("startActivityInner"); } mRootWindowContainer.resumeFocusedStacksTopActivities( mRootWindowContainer.resumeFocusedTasksTopActivities( mTargetStack, mStartActivity, mOptions); } } mRootWindowContainer.updateUserStack(mStartActivity.mUserId, mTargetStack); mRootWindowContainer.updateUserRootTask(mStartActivity.mUserId, mTargetStack); // Update the recent tasks list immediately when the activity starts mSupervisor.mRecentTasks.add(mStartActivity.getTask()); Loading Loading @@ -1849,7 +1849,7 @@ class ActivityStarter { private void computeLaunchParams(ActivityRecord r, ActivityRecord sourceRecord, Task targetTask) { final Task sourceStack = mSourceStack != null ? mSourceStack : mRootWindowContainer.getTopDisplayFocusedStack(); : mRootWindowContainer.getTopDisplayFocusedRootTask(); if (sourceStack != null && sourceStack.inSplitScreenWindowingMode() && (mOptions == null || mOptions.getLaunchWindowingMode() == WINDOWING_MODE_UNDEFINED)) { Loading Loading @@ -2048,7 +2048,7 @@ class ActivityStarter { // For paranoia, make sure we have correctly resumed the top activity. topStack.mLastPausedActivity = null; if (mDoResume) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } ActivityOptions.abort(mOptions); if ((mStartFlags & START_FLAG_ONLY_IF_NEEDED) != 0) { Loading Loading @@ -2347,7 +2347,7 @@ class ActivityStarter { if ((startFlags & START_FLAG_ONLY_IF_NEEDED) != 0) { ActivityRecord checkedCaller = sourceRecord; if (checkedCaller == null) { Task topFocusedStack = mRootWindowContainer.getTopDisplayFocusedStack(); Task topFocusedStack = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (topFocusedStack != null) { checkedCaller = topFocusedStack.topRunningNonDelayedActivityLocked(mNotTop); } Loading Loading @@ -2567,7 +2567,7 @@ class ActivityStarter { // to the front if the caller is not itself in the front. final boolean differentTopTask; if (mTargetStack.getDisplayArea() == mPreferredTaskDisplayArea) { final Task focusStack = mTargetStack.mDisplayContent.getFocusedStack(); final Task focusStack = mTargetStack.mDisplayContent.getFocusedRootTask(); final ActivityRecord curTop = (focusStack == null) ? null : focusStack.topRunningNonDelayedActivityLocked(mNotTop); final Task topTask = curTop != null ? curTop.getTask() : null; Loading Loading @@ -2634,11 +2634,11 @@ class ActivityStarter { if (next != null) { next.setCurrentLaunchCanTurnScreenOn(true); } mRootWindowContainer.resumeFocusedStacksTopActivities(mTargetStack, null, mOptions); mRootWindowContainer.resumeFocusedTasksTopActivities(mTargetStack, null, mOptions); } else { ActivityOptions.abort(mOptions); } mRootWindowContainer.updateUserStack(mStartActivity.mUserId, mTargetStack); mRootWindowContainer.updateUserRootTask(mStartActivity.mUserId, mTargetStack); } private void setNewTask(Task taskToAffiliate) { Loading Loading @@ -2713,7 +2713,7 @@ class ActivityStarter { final boolean onTop = (aOptions == null || !aOptions.getAvoidMoveToFront()) && !mLaunchTaskBehind; return mRootWindowContainer.getLaunchStack(r, aOptions, task, onTop, mLaunchParams, return mRootWindowContainer.getLaunchRootTask(r, aOptions, task, onTop, mLaunchParams, mRequest.realCallingPid, mRequest.realCallingUid); } Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +34 −34 Original line number Diff line number Diff line Loading @@ -1156,7 +1156,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { // If this is coming from the currently resumed activity, it is // effectively saying that app switches are allowed at this point. final Task stack = getTopDisplayFocusedStack(); final Task stack = getTopDisplayFocusedRootTask(); if (stack != null && stack.mResumedActivity != null && stack.mResumedActivity.info.applicationInfo.uid == Binder.getCallingUid()) { mAppSwitchesAllowedTime = 0; Loading Loading @@ -1470,7 +1470,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { sourceToken = resultTo; } sourceRecord = mRootWindowContainer.isInAnyStack(sourceToken); sourceRecord = mRootWindowContainer.isInAnyTask(sourceToken); if (sourceRecord == null) { throw new SecurityException("Called with bad activity token: " + sourceToken); } Loading Loading @@ -2039,7 +2039,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public boolean isTopActivityImmersive() { enforceNotIsolatedCaller("isTopActivityImmersive"); synchronized (mGlobalLock) { final Task topFocusedStack = getTopDisplayFocusedStack(); final Task topFocusedStack = getTopDisplayFocusedRootTask(); if (topFocusedStack == null) { return false; } Loading Loading @@ -2074,7 +2074,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public int getFrontActivityScreenCompatMode() { enforceNotIsolatedCaller("getFrontActivityScreenCompatMode"); synchronized (mGlobalLock) { final Task stack = getTopDisplayFocusedStack(); final Task stack = getTopDisplayFocusedRootTask(); final ActivityRecord r = stack != null ? stack.topRunningActivity() : null; if (r == null) { return ActivityManager.COMPAT_MODE_UNKNOWN; Loading @@ -2089,7 +2089,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { "setFrontActivityScreenCompatMode"); ApplicationInfo ai; synchronized (mGlobalLock) { final Task stack = getTopDisplayFocusedStack(); final Task stack = getTopDisplayFocusedRootTask(); final ActivityRecord r = stack != null ? stack.topRunningActivity() : null; if (r == null) { Slog.w(TAG, "setFrontActivityScreenCompatMode failed: no top activity"); Loading Loading @@ -2165,7 +2165,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public void notifyActivityDrawn(IBinder token) { if (DEBUG_VISIBILITY) Slog.d(TAG_VISIBILITY, "notifyActivityDrawn: token=" + token); synchronized (mGlobalLock) { ActivityRecord r = mRootWindowContainer.isInAnyStack(token); ActivityRecord r = mRootWindowContainer.isInAnyTask(token); if (r != null) { r.getRootTask().notifyActivityDrawnLocked(r); } Loading Loading @@ -2201,7 +2201,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final long ident = Binder.clearCallingIdentity(); try { synchronized (mGlobalLock) { Task focusedStack = getTopDisplayFocusedStack(); Task focusedStack = getTopDisplayFocusedRootTask(); if (focusedStack != null) { return mRootWindowContainer.getRootTaskInfo(focusedStack.mTaskId); } Loading @@ -2219,14 +2219,14 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final long callingId = Binder.clearCallingIdentity(); try { synchronized (mGlobalLock) { final Task task = mRootWindowContainer.getStack(taskId); final Task task = mRootWindowContainer.getRootTask(taskId); if (task == null) { Slog.w(TAG, "setFocusedRootTask: No task with id=" + taskId); return; } final ActivityRecord r = task.topRunningActivity(); if (r != null && r.moveFocusableActivityToTop("setFocusedRootTask")) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } } } finally { Loading @@ -2248,7 +2248,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } final ActivityRecord r = task.topRunningActivityLocked(); if (r != null && r.moveFocusableActivityToTop("setFocusedTask")) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } } } finally { Loading Loading @@ -2508,7 +2508,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { final long origId = Binder.clearCallingIdentity(); try { final Task topFocusedStack = getTopDisplayFocusedStack(); final Task topFocusedStack = getTopDisplayFocusedRootTask(); if (topFocusedStack != null) { topFocusedStack.unhandledBackLocked(); } Loading Loading @@ -2820,7 +2820,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { ProtoLog.d(WM_DEBUG_TASKS, "moveTaskToRootTask: moving task=%d to " + "rootTaskId=%d toTop=%b", taskId, rootTaskId, toTop); final Task rootTask = mRootWindowContainer.getStack(rootTaskId); final Task rootTask = mRootWindowContainer.getRootTask(rootTaskId); if (rootTask == null) { throw new IllegalStateException( "moveTaskToRootTask: No rootTask for rootTaskId=" + rootTaskId); Loading Loading @@ -3088,8 +3088,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { return; } final Task stack = mRootWindowContainer.getTopDisplayFocusedStack(); if (stack == null || task != stack.getTopMostTask()) { final Task rootTask = mRootWindowContainer.getTopDisplayFocusedRootTask(); if (rootTask == null || task != rootTask.getTopMostTask()) { throw new IllegalArgumentException("Invalid task, not in foreground"); } Loading Loading @@ -3370,7 +3370,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } final Task stack = r.getRootTask(); final Task task = stack.getDisplayArea().createStack(stack.getWindowingMode(), final Task task = stack.getDisplayArea().createRootTask(stack.getWindowingMode(), stack.getActivityType(), !ON_TOP, ainfo, intent, false /* createdByOrganizer */); Loading Loading @@ -3533,7 +3533,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { try { ProtoLog.d(WM_DEBUG_TASKS, "moveRootTaskToDisplay: moving taskId=%d to " + "displayId=%d", taskId, displayId); mRootWindowContainer.moveStackToDisplay(taskId, displayId, ON_TOP); mRootWindowContainer.moveRootTaskToDisplay(taskId, displayId, ON_TOP); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading @@ -3741,7 +3741,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { "enqueueAssistContext()"); synchronized (mGlobalLock) { final Task stack = getTopDisplayFocusedStack(); final Task stack = getTopDisplayFocusedRootTask(); ActivityRecord activity = stack != null ? stack.getTopNonFinishingActivity() : null; if (activity == null) { Slog.w(TAG, "getAssistContextExtras failed: no top activity"); Loading Loading @@ -3870,7 +3870,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public boolean isAssistDataAllowedOnCurrentActivity() { int userId; synchronized (mGlobalLock) { final Task focusedStack = getTopDisplayFocusedStack(); final Task focusedStack = getTopDisplayFocusedRootTask(); if (focusedStack == null || focusedStack.isActivityTypeAssistant()) { return false; } Loading @@ -3890,7 +3890,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { try { synchronized (mGlobalLock) { ActivityRecord caller = ActivityRecord.forTokenLocked(token); ActivityRecord top = getTopDisplayFocusedStack().getTopNonFinishingActivity(); ActivityRecord top = getTopDisplayFocusedRootTask().getTopNonFinishingActivity(); if (top != caller) { Slog.w(TAG, "showAssistFromActivity failed: caller " + caller + " is not current top " + top); Loading Loading @@ -4069,7 +4069,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final long ident = Binder.clearCallingIdentity(); try { return mRootWindowContainer.moveTopStackActivityToPinnedRootTask(rootTaskId); return mRootWindowContainer.moveTopRootTaskActivityToPinnedRootTask(rootTaskId); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading @@ -4113,7 +4113,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { r.setPictureInPictureParams(params); final float aspectRatio = r.pictureInPictureArgs.getAspectRatio(); final List<RemoteAction> actions = r.pictureInPictureArgs.getActions(); mRootWindowContainer.moveActivityToPinnedStack( mRootWindowContainer.moveActivityToPinnedRootTask( r, "enterPictureInPictureMode"); final Task stack = r.getRootTask(); stack.setPictureInPictureAspectRatio(aspectRatio); Loading Loading @@ -4345,7 +4345,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { public void startLocalVoiceInteraction(IBinder callingActivity, Bundle options) { Slog.i(TAG, "Activity tried to startLocalVoiceInteraction"); synchronized (mGlobalLock) { ActivityRecord activity = getTopDisplayFocusedStack().getTopNonFinishingActivity(); ActivityRecord activity = getTopDisplayFocusedRootTask().getTopNonFinishingActivity(); if (ActivityRecord.forTokenLocked(callingActivity) != activity) { throw new SecurityException("Only focused activity can call startVoiceInteraction"); } Loading Loading @@ -4749,7 +4749,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { if (r.requestedVrComponent != null && r.getDisplayId() != DEFAULT_DISPLAY) { Slog.i(TAG, "Moving " + r.shortComponentName + " from display " + r.getDisplayId() + " to main display for VR"); mRootWindowContainer.moveStackToDisplay( mRootWindowContainer.moveRootTaskToDisplay( r.getRootTaskId(), DEFAULT_DISPLAY, true /* toTop */); } mH.post(() -> { Loading Loading @@ -4813,8 +4813,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } Task getTopDisplayFocusedStack() { return mRootWindowContainer.getTopDisplayFocusedStack(); Task getTopDisplayFocusedRootTask() { return mRootWindowContainer.getTopDisplayFocusedRootTask(); } /** Pokes the task persister. */ Loading Loading @@ -5827,7 +5827,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { /** Applies latest configuration and/or visibility updates if needed. */ boolean ensureConfigAndVisibilityAfterUpdate(ActivityRecord starting, int changes) { boolean kept = true; final Task mainStack = mRootWindowContainer.getTopDisplayFocusedStack(); final Task mainStack = mRootWindowContainer.getTopDisplayFocusedRootTask(); // mainStack is null during startup. if (mainStack != null) { if (changes != 0 && starting == null) { Loading Loading @@ -6082,8 +6082,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { static final int REPORT_TIME_TRACKER_MSG = 1; static final int FIRST_ACTIVITY_STACK_MSG = 100; static final int FIRST_SUPERVISOR_STACK_MSG = 200; static final int FIRST_ACTIVITY_TASK_MSG = 100; static final int FIRST_SUPERVISOR_TASK_MSG = 200; H(Looper looper) { super(looper); Loading Loading @@ -6292,7 +6292,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { "setFocusedActivity: No activity record matching token=" + token); } if (r.moveFocusableActivityToTop("setFocusedActivity")) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); } } } Loading Loading @@ -6796,7 +6796,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { if (!restarting && hasVisibleActivities) { deferWindowLayout(); try { if (!mRootWindowContainer.resumeFocusedStacksTopActivities()) { if (!mRootWindowContainer.resumeFocusedTasksTopActivities()) { // If there was nothing to resume, and we are not already restarting // this process, but there is a visible activity that is hosted by the // process...then make sure all visible activities are running, taking Loading Loading @@ -6849,7 +6849,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { if (mRootWindowContainer.finishDisabledPackageActivities( packageName, disabledClasses, true /* doit */, false /* evenPersistent */, userId, false /* onlyRemoveNoProcess */) && booted) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); mTaskSupervisor.scheduleIdle(); } Loading Loading @@ -6879,7 +6879,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { @Override public void resumeTopActivities(boolean scheduleIdle) { synchronized (mGlobalLock) { mRootWindowContainer.resumeFocusedStacksTopActivities(); mRootWindowContainer.resumeFocusedTasksTopActivities(); if (scheduleIdle) { mTaskSupervisor.scheduleIdle(); } Loading Loading @@ -7056,7 +7056,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { mRootWindowContainer.dumpDisplayConfigs(pw, " "); } if (dumpAll) { final Task topFocusedStack = getTopDisplayFocusedStack(); final Task topFocusedStack = getTopDisplayFocusedRootTask(); if (dumpPackage == null && topFocusedStack != null) { pw.println(" mConfigWillChange: " + topFocusedStack.mConfigWillChange); } Loading Loading @@ -7139,7 +7139,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { synchronized (mGlobalLock) { if (dumpPackage == null) { getGlobalConfiguration().dumpDebug(proto, GLOBAL_CONFIGURATION); final Task topFocusedStack = getTopDisplayFocusedStack(); final Task topFocusedStack = getTopDisplayFocusedRootTask(); if (topFocusedStack != null) { proto.write(CONFIG_WILL_CHANGE, topFocusedStack.mConfigWillChange); } Loading
services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +57 −57 File changed.Preview size limit exceeded, changes collapsed. Show changes