diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 80a68f514faf1..20995656f6938 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -202,7 +202,6 @@ import android.provider.Settings; import android.service.voice.IVoiceInteractionSession; import android.util.ArraySet; import android.util.DisplayMetrics; -import android.util.Log; import android.util.Slog; import android.util.TypedXmlPullParser; import android.util.TypedXmlSerializer; @@ -1076,25 +1075,6 @@ class Task extends WindowContainer { deferResume, true /* schedulePictureInPictureModeChange */, reason); } - /** - * Convenience method to reparent a task to the top or bottom position of the root task, with - * an option to skip scheduling the picture-in-picture mode change. - */ - boolean reparent(Task preferredRootTask, boolean toTop, - @ReparentMoveRootTaskMode int moveRootTaskMode, boolean animate, boolean deferResume, - boolean schedulePictureInPictureModeChange, String reason) { - return reparent(preferredRootTask, toTop ? MAX_VALUE : 0, moveRootTaskMode, animate, - deferResume, schedulePictureInPictureModeChange, reason); - } - - /** Convenience method to reparent a task to a specific position of the root task. */ - boolean reparent(Task preferredRootTask, int position, - @ReparentMoveRootTaskMode int moveRootTaskMode, boolean animate, boolean deferResume, - String reason) { - return reparent(preferredRootTask, position, moveRootTaskMode, animate, deferResume, - true /* schedulePictureInPictureModeChange */, reason); - } - /** * Reparents the task into a preferred root task, creating it if necessary. * @@ -2954,20 +2934,6 @@ class Task extends WindowContainer { return bounds; } - /** Updates the task's bounds and override configuration to match what is expected for the - * input root task. */ - void updateOverrideConfigurationForRootTask(Task inRootTask) { - final Task rootTask = getRootTask(); - - if (rootTask != null && rootTask == inRootTask) { - return; - } - - if (!inRootTask.inFreeformWindowingMode()) { - setBounds(inRootTask.getRequestedOverrideBounds()); - } - } - /** Returns the bounds that should be used to launch this task. */ Rect getLaunchBounds() { final Task rootTask = getRootTask(); @@ -6018,16 +5984,6 @@ class Task extends WindowContainer { return inPinnedWindowingMode(); } - // TODO(NOW!) - /** - * Returns {@code true} if this is the top-most split-screen-primary or - * split-screen-secondary root task, {@code false} otherwise. - */ - boolean isTopSplitScreenRootTask() { - return inSplitScreenWindowingMode() - && this == getDisplayArea().getTopRootTaskInWindowingMode(getWindowingMode()); - } - void checkTranslucentActivityWaiting(ActivityRecord top) { if (mTranslucentActivityWaiting != top) { mUndrawnActivitiesBelowTopTranslucent.clear(); @@ -6229,9 +6185,7 @@ class Task extends WindowContainer { // If we are sleeping, and there is no resumed activity, and the top activity is paused, // well that is the state we want. - if (shouldSleepOrShutDownActivities() - && mLastPausedActivity == next - && mRootWindowContainer.allPausedActivitiesComplete()) { + if (mLastPausedActivity == next && shouldSleepOrShutDownActivities()) { // Make sure we have executed any pending transitions, since there // should be nothing left to do at this point. executeAppTransition(options); @@ -6255,14 +6209,6 @@ class Task extends WindowContainer { if (DEBUG_SWITCH) Slog.v(TAG_SWITCH, "Resuming " + next); - // If we are currently pausing an activity, then don't do anything until that is done. - if (!mRootWindowContainer.allPausedActivitiesComplete()) { - ProtoLog.v(WM_DEBUG_STATES, - "resumeTopActivityLocked: Skip resume: some activity pausing."); - - return false; - } - mTaskSupervisor.setLaunchSource(next.info.applicationInfo.uid); ActivityRecord lastResumed = null; @@ -7275,21 +7221,6 @@ class Task extends WindowContainer { task.setBounds(displayedBounds); } - /** - * Until we can break this "set task bounds to same as root task bounds" behavior, this - * basically resizes both root task and task bounds to the same bounds. - */ - private void setTaskBounds(Rect bounds) { - final PooledConsumer c = PooledLambda.obtainConsumer(Task::setTaskBoundsInner, - PooledLambda.__(Task.class), bounds); - forAllLeafTasks(c, true /* traverseTopToBottom */); - c.recycle(); - } - - private static void setTaskBoundsInner(Task task, Rect bounds) { - task.setBounds(task.isResizeable() ? bounds : null); - } - boolean willActivityBeVisible(IBinder token) { final ActivityRecord r = ActivityRecord.forTokenLocked(token); if (r == null) { @@ -7549,51 +7480,6 @@ class Task extends WindowContainer { } } - void positionChildAt(Task task, int position) { - if (task.getRootTask() != this) { - throw new IllegalArgumentException("AS.positionChildAt: task=" + task - + " is not a child of root task=" + this + " current parent=" - + task.getRootTask()); - } - - task.updateOverrideConfigurationForRootTask(this); - - final ActivityRecord topRunningActivity = task.topRunningActivityLocked(); - final boolean wasResumed = topRunningActivity == task.mResumedActivity; - - boolean toTop = position >= getChildCount(); - boolean includingParents = toTop || getDisplayArea().getNextFocusableRootTask(this, - true /* ignoreCurrent */) == null; - if (WindowManagerDebugConfig.DEBUG_ROOT_TASK) { - Slog.i(TAG_WM, "positionChildAt: positioning task=" + task + " at " + position); - } - positionChildAt(position, task, includingParents); - getDisplayContent().layoutAndAssignWindowLayersIfNeeded(); - - - // TODO: Investigate if this random code is really needed. - if (task.voiceSession != null) { - try { - task.voiceSession.taskStarted(task.intent, task.mTaskId); - } catch (RemoteException e) { - } - } - - if (wasResumed) { - if (mResumedActivity != null) { - Log.wtf(TAG, "mResumedActivity was already set when moving mResumedActivity from" - + " other root task to this task mResumedActivity=" + mResumedActivity - + " other mResumedActivity=" + topRunningActivity); - } - topRunningActivity.setState(RESUMED, "positionChildAt"); - } - - // The task might have already been running and its visibility needs to be synchronized with - // the visibility of the root task / windows. - ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS); - mRootWindowContainer.resumeFocusedTasksTopActivities(); - } - public void setAlwaysOnTop(boolean alwaysOnTop) { // {@link #isAwaysonTop} overrides the original behavior which also evaluates if this // task is force hidden, so super.isAlwaysOnTop() is used here to see whether the @@ -7864,8 +7750,8 @@ class Task extends WindowContainer { // Do not sleep activities in this root task if we're marked as focused and the keyguard // is in the process of going away. - if (isFocusedRootTaskOnDisplay() - && mTaskSupervisor.getKeyguardController().isKeyguardGoingAway() + if (mTaskSupervisor.getKeyguardController().isKeyguardGoingAway() + && isFocusedRootTaskOnDisplay() // Avoid resuming activities on secondary displays since we don't want bubble // activities to be resumed while bubble is still collapsed. // TODO(b/113840485): Having keyguard going away state for secondary displays. @@ -7880,14 +7766,6 @@ class Task extends WindowContainer { return shouldSleepActivities() || mAtmService.mShuttingDown; } - /** Bounds of the root task without adjusting for other factors in the system like visibility - * of root docked task. - * Most callers should be using {@link ConfigurationContainer#getRequestedOverrideBounds} a - * it takes into consideration other system factors. */ - void getRawBounds(Rect out) { - out.set(getRawBounds()); - } - private Rect getRawBounds() { return super.getBounds(); }