Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +5 −11 Original line number Diff line number Diff line Loading @@ -4781,18 +4781,12 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { private void applyUpdateVrModeLocked(ActivityRecord r) { // VR apps are expected to run in a main display. If an app is turning on VR for // itself, but lives in a dynamic stack, then make sure that it is moved to the main // fullscreen stack before enabling VR Mode. // TODO: The goal of this code is to keep the VR app on the main display. When the // stack implementation changes in the future, keep in mind that the use of the fullscreen // stack is a means to move the activity to the main display and a moveActivityToDisplay() // option would be a better choice here. // itself, but isn't on the main display, then move it there before enabling VR Mode. if (r.requestedVrComponent != null && r.getDisplayId() != DEFAULT_DISPLAY) { Slog.i(TAG, "Moving " + r.shortComponentName + " from stack " + r.getStackId() + " to main stack for VR"); final ActivityStack stack = mRootActivityContainer.getDefaultDisplay().getOrCreateStack( WINDOWING_MODE_FULLSCREEN, r.getActivityType(), true /* toTop */); moveTaskToStack(r.getTaskRecord().taskId, stack.mStackId, true /* toTop */); Slog.i(TAG, "Moving " + r.shortComponentName + " from display " + r.getDisplayId() + " to main display for VR"); mRootActivityContainer.moveStackToDisplay( r.getStackId(), DEFAULT_DISPLAY, true /* toTop */); } mH.post(() -> { if (!mVrController.onVrModeChanged(r)) { Loading services/core/java/com/android/server/wm/AppWindowToken.java +11 −11 Original line number Diff line number Diff line Loading @@ -1322,7 +1322,15 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree if (prevDc == null || prevDc == mDisplayContent) { return; } if (prevDc.mChangingApps.contains(this)) { if (prevDc.mOpeningApps.remove(this)) { // Transfer opening transition to new display. mDisplayContent.mOpeningApps.add(this); mDisplayContent.prepareAppTransition(prevDc.mAppTransition.getAppTransition(), true); mDisplayContent.executeAppTransition(); } if (prevDc.mChangingApps.remove(this)) { // This gets called *after* the AppWindowToken has been reparented to the new display. // That reparenting resulted in this window changing modes (eg. FREEFORM -> FULLSCREEN), // so this token is now "frozen" while waiting for the animation to start on prevDc Loading @@ -1331,6 +1339,8 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree // so we need to cancel the change transition here. clearChangeLeash(getPendingTransaction(), true /* cancel */); } prevDc.mClosingApps.remove(this); if (prevDc.mFocusedApp == this) { prevDc.setFocusedApp(null); final TaskStack stack = dc.getTopStack(); Loading Loading @@ -3216,16 +3226,6 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree true /* topToBottom */); } void removeFromPendingTransition() { if (isWaitingForTransitionStart() && mDisplayContent != null) { mDisplayContent.mOpeningApps.remove(this); if (mDisplayContent.mChangingApps.remove(this)) { clearChangeLeash(getPendingTransaction(), true /* cancel */); } mDisplayContent.mClosingApps.remove(this); } } private void updateColorTransform() { if (mSurfaceControl != null && mLastAppSaturationInfo != null) { getPendingTransaction().setColorTransform(mSurfaceControl, Loading services/core/java/com/android/server/wm/DisplayContent.java +0 −3 Original line number Diff line number Diff line Loading @@ -2398,9 +2398,6 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo + " to its current displayId=" + mDisplayId); } // Clean up all pending transitions when stack reparent to another display. stack.forAllAppWindows(AppWindowToken::removeFromPendingTransition); prevDc.mTaskStackContainers.removeChild(stack); mTaskStackContainers.addStackToDisplay(stack, onTop); } Loading Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +5 −11 Original line number Diff line number Diff line Loading @@ -4781,18 +4781,12 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { private void applyUpdateVrModeLocked(ActivityRecord r) { // VR apps are expected to run in a main display. If an app is turning on VR for // itself, but lives in a dynamic stack, then make sure that it is moved to the main // fullscreen stack before enabling VR Mode. // TODO: The goal of this code is to keep the VR app on the main display. When the // stack implementation changes in the future, keep in mind that the use of the fullscreen // stack is a means to move the activity to the main display and a moveActivityToDisplay() // option would be a better choice here. // itself, but isn't on the main display, then move it there before enabling VR Mode. if (r.requestedVrComponent != null && r.getDisplayId() != DEFAULT_DISPLAY) { Slog.i(TAG, "Moving " + r.shortComponentName + " from stack " + r.getStackId() + " to main stack for VR"); final ActivityStack stack = mRootActivityContainer.getDefaultDisplay().getOrCreateStack( WINDOWING_MODE_FULLSCREEN, r.getActivityType(), true /* toTop */); moveTaskToStack(r.getTaskRecord().taskId, stack.mStackId, true /* toTop */); Slog.i(TAG, "Moving " + r.shortComponentName + " from display " + r.getDisplayId() + " to main display for VR"); mRootActivityContainer.moveStackToDisplay( r.getStackId(), DEFAULT_DISPLAY, true /* toTop */); } mH.post(() -> { if (!mVrController.onVrModeChanged(r)) { Loading
services/core/java/com/android/server/wm/AppWindowToken.java +11 −11 Original line number Diff line number Diff line Loading @@ -1322,7 +1322,15 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree if (prevDc == null || prevDc == mDisplayContent) { return; } if (prevDc.mChangingApps.contains(this)) { if (prevDc.mOpeningApps.remove(this)) { // Transfer opening transition to new display. mDisplayContent.mOpeningApps.add(this); mDisplayContent.prepareAppTransition(prevDc.mAppTransition.getAppTransition(), true); mDisplayContent.executeAppTransition(); } if (prevDc.mChangingApps.remove(this)) { // This gets called *after* the AppWindowToken has been reparented to the new display. // That reparenting resulted in this window changing modes (eg. FREEFORM -> FULLSCREEN), // so this token is now "frozen" while waiting for the animation to start on prevDc Loading @@ -1331,6 +1339,8 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree // so we need to cancel the change transition here. clearChangeLeash(getPendingTransaction(), true /* cancel */); } prevDc.mClosingApps.remove(this); if (prevDc.mFocusedApp == this) { prevDc.setFocusedApp(null); final TaskStack stack = dc.getTopStack(); Loading Loading @@ -3216,16 +3226,6 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree true /* topToBottom */); } void removeFromPendingTransition() { if (isWaitingForTransitionStart() && mDisplayContent != null) { mDisplayContent.mOpeningApps.remove(this); if (mDisplayContent.mChangingApps.remove(this)) { clearChangeLeash(getPendingTransaction(), true /* cancel */); } mDisplayContent.mClosingApps.remove(this); } } private void updateColorTransform() { if (mSurfaceControl != null && mLastAppSaturationInfo != null) { getPendingTransaction().setColorTransform(mSurfaceControl, Loading
services/core/java/com/android/server/wm/DisplayContent.java +0 −3 Original line number Diff line number Diff line Loading @@ -2398,9 +2398,6 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo + " to its current displayId=" + mDisplayId); } // Clean up all pending transitions when stack reparent to another display. stack.forAllAppWindows(AppWindowToken::removeFromPendingTransition); prevDc.mTaskStackContainers.removeChild(stack); mTaskStackContainers.addStackToDisplay(stack, onTop); } Loading