Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -638,7 +638,8 @@ public abstract class WMShellModule { RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState, IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer) { MSDLPlayer msdlPlayer, Optional<BubbleController> bubbleController) { return new SplitScreenController( context, shellInit, Loading Loading @@ -667,7 +668,8 @@ public abstract class WMShellModule { rootDisplayAreaOrganizer, desktopState, activityTaskManager, msdlPlayer); msdlPlayer, bubbleController); } // Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java +7 −2 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import com.android.wm.shell.R; import com.android.wm.shell.RootDisplayAreaOrganizer; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.bubbles.BubbleController; import com.android.wm.shell.common.ComponentUtils; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayImeController; Loading Loading @@ -215,6 +216,7 @@ public class SplitScreenController implements SplitDragPolicy.Starter, private final SplitScreenShellCommandHandler mSplitScreenShellCommandHandler; private final DesktopState mDesktopState; private final MSDLPlayer mMSDLPlayer; private final Optional<BubbleController> mBubbleController; @VisibleForTesting StageCoordinator mStageCoordinator; Loading Loading @@ -250,7 +252,8 @@ public class SplitScreenController implements SplitDragPolicy.Starter, RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState, IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer) { MSDLPlayer msdlPlayer, Optional<BubbleController> bubbleController) { mShellCommandHandler = shellCommandHandler; mShellController = shellController; mTaskOrganizer = shellTaskOrganizer; Loading Loading @@ -280,6 +283,7 @@ public class SplitScreenController implements SplitDragPolicy.Starter, mSplitScreenShellCommandHandler = new SplitScreenShellCommandHandler(this); mDesktopState = desktopState; mMSDLPlayer = msdlPlayer; mBubbleController = bubbleController; // TODO(b/238217847): Temporarily add this check here until we can remove the dynamic // override for this controller from the base module if (ActivityTaskManager.supportsSplitScreenMultiWindow(context)) { Loading Loading @@ -325,7 +329,8 @@ public class SplitScreenController implements SplitDragPolicy.Starter, mMainExecutor, mMainHandler, mRecentTasksOptional, mLaunchAdjacentController, mWindowDecorViewModel, mSplitState, mDesktopTasksController, mDesktopUserRepositories, mRootTDAOrganizer, mRootDisplayAreaOrganizer, mDesktopState, mActivityTaskManager, mMSDLPlayer); mRootDisplayAreaOrganizer, mDesktopState, mActivityTaskManager, mMSDLPlayer, mBubbleController); } @Override Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +16 −5 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ import com.android.wm.shell.R; import com.android.wm.shell.RootDisplayAreaOrganizer; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.bubbles.BubbleController; import com.android.wm.shell.common.ComponentUtils; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayImeController; Loading Loading @@ -255,6 +256,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, private final DesktopState mDesktopState; /** A haptics controller that plays haptic effects. */ private final MSDLPlayer mMSDLPlayer; private final Optional<BubbleController> mBubbleController; private final Rect mTempRect1 = new Rect(); private final Rect mTempRect2 = new Rect(); Loading Loading @@ -402,7 +404,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, Optional<DesktopUserRepositories> desktopUserRepositories, RootTaskDisplayAreaOrganizer rootTDAOrganizer, RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState, IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer) { IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer, Optional<BubbleController> bubbleController) { mContext = context; mDisplayId = displayId; mSyncQueue = syncQueue; Loading @@ -420,6 +423,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mRootTDAOrganizer = rootTDAOrganizer; mDesktopState = desktopState; mMSDLPlayer = msdlPlayer; mBubbleController = bubbleController; DisplayManager displayManager = context.getSystemService(DisplayManager.class); Loading Loading @@ -509,7 +513,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, Optional<DesktopUserRepositories> desktopUserRepositories, RootTaskDisplayAreaOrganizer rootTDAOrganizer, RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState, IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer) { IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer, Optional<BubbleController> bubbleController) { mContext = context; mDisplayId = displayId; mSyncQueue = syncQueue; Loading Loading @@ -537,6 +542,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mRootTDAOrganizer = rootTDAOrganizer; mDesktopState = desktopState; mMSDLPlayer = msdlPlayer; mBubbleController = bubbleController; mDisplayController.addDisplayWindowListener(this); transitions.addHandler(this); Loading Loading @@ -2087,10 +2093,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, // this might have to be changed as more split-to-pip cujs are defined. options.setDisallowEnterPictureInPictureWhileLaunching(true); if (enableEnterSplitRemoveBubble()) { // Set an empty rect as the requested launch bounds. This ensures that if an existing // task is reused, and it has bounds set, they are cleared. mBubbleController.ifPresent(bc -> { if (bc.hasBubbles()) { // Bubbles are present. Set an empty rect for the launch bounds in case we // are launching an existing bubble task to split. Bubbles sets bounds on the // task level and we need to clear them before a task can enter split screen. options.setLaunchBounds(new Rect()); } }); } opts.putAll(options.toBundle()); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/tv/TvSplitScreenController.java +1 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,7 @@ public class TvSplitScreenController extends SplitScreenController { Optional.empty(), Optional.empty(), null /* stageCoordinator */, multiInstanceHelper, splitState, mainExecutor, mainHandler, rootDisplayAreaOrganizer, desktopState, activityTaskManager, msdlPlayer); activityTaskManager, msdlPlayer, Optional.empty()); mTaskOrganizer = shellTaskOrganizer; mSyncQueue = syncQueue; Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/tv/TvStageCoordinator.java +2 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,8 @@ public class TvStageCoordinator extends StageCoordinator displayInsetsController, transitions, transactionPool, iconProvider, mainExecutor, mainHandler, recentTasks, launchAdjacentController, Optional.empty(), splitState, Optional.empty(), Optional.empty(), rootTDAOrganizer, rootDisplayAreaOrganizer, desktopState, activityTaskManager, msdlPlayer); rootDisplayAreaOrganizer, desktopState, activityTaskManager, msdlPlayer, Optional.empty()); mTvSplitMenuController = new TvSplitMenuController(context, this, systemWindows, mainHandler); Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -638,7 +638,8 @@ public abstract class WMShellModule { RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState, IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer) { MSDLPlayer msdlPlayer, Optional<BubbleController> bubbleController) { return new SplitScreenController( context, shellInit, Loading Loading @@ -667,7 +668,8 @@ public abstract class WMShellModule { rootDisplayAreaOrganizer, desktopState, activityTaskManager, msdlPlayer); msdlPlayer, bubbleController); } // Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java +7 −2 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import com.android.wm.shell.R; import com.android.wm.shell.RootDisplayAreaOrganizer; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.bubbles.BubbleController; import com.android.wm.shell.common.ComponentUtils; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayImeController; Loading Loading @@ -215,6 +216,7 @@ public class SplitScreenController implements SplitDragPolicy.Starter, private final SplitScreenShellCommandHandler mSplitScreenShellCommandHandler; private final DesktopState mDesktopState; private final MSDLPlayer mMSDLPlayer; private final Optional<BubbleController> mBubbleController; @VisibleForTesting StageCoordinator mStageCoordinator; Loading Loading @@ -250,7 +252,8 @@ public class SplitScreenController implements SplitDragPolicy.Starter, RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState, IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer) { MSDLPlayer msdlPlayer, Optional<BubbleController> bubbleController) { mShellCommandHandler = shellCommandHandler; mShellController = shellController; mTaskOrganizer = shellTaskOrganizer; Loading Loading @@ -280,6 +283,7 @@ public class SplitScreenController implements SplitDragPolicy.Starter, mSplitScreenShellCommandHandler = new SplitScreenShellCommandHandler(this); mDesktopState = desktopState; mMSDLPlayer = msdlPlayer; mBubbleController = bubbleController; // TODO(b/238217847): Temporarily add this check here until we can remove the dynamic // override for this controller from the base module if (ActivityTaskManager.supportsSplitScreenMultiWindow(context)) { Loading Loading @@ -325,7 +329,8 @@ public class SplitScreenController implements SplitDragPolicy.Starter, mMainExecutor, mMainHandler, mRecentTasksOptional, mLaunchAdjacentController, mWindowDecorViewModel, mSplitState, mDesktopTasksController, mDesktopUserRepositories, mRootTDAOrganizer, mRootDisplayAreaOrganizer, mDesktopState, mActivityTaskManager, mMSDLPlayer); mRootDisplayAreaOrganizer, mDesktopState, mActivityTaskManager, mMSDLPlayer, mBubbleController); } @Override Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +16 −5 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ import com.android.wm.shell.R; import com.android.wm.shell.RootDisplayAreaOrganizer; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.bubbles.BubbleController; import com.android.wm.shell.common.ComponentUtils; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayImeController; Loading Loading @@ -255,6 +256,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, private final DesktopState mDesktopState; /** A haptics controller that plays haptic effects. */ private final MSDLPlayer mMSDLPlayer; private final Optional<BubbleController> mBubbleController; private final Rect mTempRect1 = new Rect(); private final Rect mTempRect2 = new Rect(); Loading Loading @@ -402,7 +404,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, Optional<DesktopUserRepositories> desktopUserRepositories, RootTaskDisplayAreaOrganizer rootTDAOrganizer, RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState, IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer) { IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer, Optional<BubbleController> bubbleController) { mContext = context; mDisplayId = displayId; mSyncQueue = syncQueue; Loading @@ -420,6 +423,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mRootTDAOrganizer = rootTDAOrganizer; mDesktopState = desktopState; mMSDLPlayer = msdlPlayer; mBubbleController = bubbleController; DisplayManager displayManager = context.getSystemService(DisplayManager.class); Loading Loading @@ -509,7 +513,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, Optional<DesktopUserRepositories> desktopUserRepositories, RootTaskDisplayAreaOrganizer rootTDAOrganizer, RootDisplayAreaOrganizer rootDisplayAreaOrganizer, DesktopState desktopState, IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer) { IActivityTaskManager activityTaskManager, MSDLPlayer msdlPlayer, Optional<BubbleController> bubbleController) { mContext = context; mDisplayId = displayId; mSyncQueue = syncQueue; Loading Loading @@ -537,6 +542,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mRootTDAOrganizer = rootTDAOrganizer; mDesktopState = desktopState; mMSDLPlayer = msdlPlayer; mBubbleController = bubbleController; mDisplayController.addDisplayWindowListener(this); transitions.addHandler(this); Loading Loading @@ -2087,10 +2093,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, // this might have to be changed as more split-to-pip cujs are defined. options.setDisallowEnterPictureInPictureWhileLaunching(true); if (enableEnterSplitRemoveBubble()) { // Set an empty rect as the requested launch bounds. This ensures that if an existing // task is reused, and it has bounds set, they are cleared. mBubbleController.ifPresent(bc -> { if (bc.hasBubbles()) { // Bubbles are present. Set an empty rect for the launch bounds in case we // are launching an existing bubble task to split. Bubbles sets bounds on the // task level and we need to clear them before a task can enter split screen. options.setLaunchBounds(new Rect()); } }); } opts.putAll(options.toBundle()); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/tv/TvSplitScreenController.java +1 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,7 @@ public class TvSplitScreenController extends SplitScreenController { Optional.empty(), Optional.empty(), null /* stageCoordinator */, multiInstanceHelper, splitState, mainExecutor, mainHandler, rootDisplayAreaOrganizer, desktopState, activityTaskManager, msdlPlayer); activityTaskManager, msdlPlayer, Optional.empty()); mTaskOrganizer = shellTaskOrganizer; mSyncQueue = syncQueue; Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/tv/TvStageCoordinator.java +2 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,8 @@ public class TvStageCoordinator extends StageCoordinator displayInsetsController, transitions, transactionPool, iconProvider, mainExecutor, mainHandler, recentTasks, launchAdjacentController, Optional.empty(), splitState, Optional.empty(), Optional.empty(), rootTDAOrganizer, rootDisplayAreaOrganizer, desktopState, activityTaskManager, msdlPlayer); rootDisplayAreaOrganizer, desktopState, activityTaskManager, msdlPlayer, Optional.empty()); mTvSplitMenuController = new TvSplitMenuController(context, this, systemWindows, mainHandler); Loading