Loading libs/WindowManager/Shell/src/com/android/wm/shell/RootDisplayAreaOrganizer.java +7 −0 Original line number Diff line number Diff line Loading @@ -25,9 +25,11 @@ import android.view.SurfaceControl; import android.window.DisplayAreaAppearedInfo; import android.window.DisplayAreaInfo; import android.window.DisplayAreaOrganizer; import android.window.WindowContainerToken; import android.window.WindowContainerTransaction; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.protolog.ProtoLog; import com.android.wm.shell.sysui.ShellInit; Loading Loading @@ -142,6 +144,11 @@ public class RootDisplayAreaOrganizer extends DisplayAreaOrganizer { return wct; } @Nullable public WindowContainerToken getDisplayTokenForDisplay(int displayId) { return mDisplayAreasInfo.get(displayId).token; } public void dump(@NonNull PrintWriter pw, String prefix) { final String innerPrefix = prefix + " "; final String childPrefix = innerPrefix + " "; Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +9 −3 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ import com.android.wm.shell.shared.annotations.ShellMainThread; import com.android.wm.shell.shared.split.SplitScreenConstants.PersistentSnapPosition; import com.android.wm.shell.shared.split.SplitScreenConstants.SnapPosition; import com.android.wm.shell.shared.split.SplitScreenConstants.SplitPosition; import com.android.wm.shell.splitscreen.SplitStatusBarHider; import com.android.wm.shell.splitscreen.StageTaskListener; import java.io.PrintWriter; Loading Loading @@ -142,6 +143,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange new PathInterpolator(0.45f, 0f, 0.5f, 1f); @ShellMainThread private final Handler mHandler; private final SplitStatusBarHider mStatusBarHider; /** Singleton source of truth for the current state of split screen on this device. */ private final SplitState mSplitState; Loading Loading @@ -207,11 +209,12 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange public SplitLayout(String windowName, Context context, Configuration configuration, SplitLayoutHandler splitLayoutHandler, SplitWindowManager.ParentContainerCallbacks parentContainerCallbacks, ParentContainerCallbacks parentContainerCallbacks, DisplayController displayController, DisplayImeController displayImeController, ShellTaskOrganizer taskOrganizer, int parallaxType, SplitState splitState, @ShellMainThread Handler handler) { @ShellMainThread Handler handler, SplitStatusBarHider statusBarHider) { mHandler = handler; mStatusBarHider = statusBarHider; mContext = context.createConfigurationContext(configuration); mOrientation = configuration.orientation; mRotation = configuration.windowConfiguration.getRotation(); Loading @@ -233,7 +236,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mAllowLeftRightSplitInPortrait = SplitScreenUtils.allowLeftRightSplitInPortrait(res); mIsLeftRightSplit = SplitScreenUtils.isLeftRightSplit(mAllowLeftRightSplitInPortrait, configuration); statusBarHider.onLeftRightSplitUpdated(mIsLeftRightSplit); updateDividerConfig(mContext); mRootBounds.set(configuration.windowConfiguration.getBounds()); Loading Loading @@ -506,6 +509,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mIsLargeScreen = configuration.smallestScreenWidthDp >= 600; mIsLeftRightSplit = SplitScreenUtils.isLeftRightSplit(mAllowLeftRightSplitInPortrait, configuration); mStatusBarHider.onLeftRightSplitUpdated(mIsLeftRightSplit); updateLayouts(); updateDividerConfig(mContext); initDividerPosition(mTempRect, wasLeftRightSplit); Loading Loading @@ -534,6 +538,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mRootBounds.set(tmpRect); mIsLeftRightSplit = SplitScreenUtils.isLeftRightSplit(mAllowLeftRightSplitInPortrait, mIsLargeScreen, mRootBounds.width() >= mRootBounds.height()); mStatusBarHider.onLeftRightSplitUpdated(mIsLeftRightSplit); updateLayouts(); initDividerPosition(mTempRect, wasLeftRightSplit); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/TvWMShellModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.Context; import android.os.Handler; import com.android.launcher3.icons.IconProvider; import com.android.wm.shell.RootDisplayAreaOrganizer; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.common.DisplayController; Loading Loading @@ -93,11 +94,12 @@ public class TvWMShellModule { SplitState splitState, @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler, SystemWindows systemWindows) { SystemWindows systemWindows, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { return new TvSplitScreenController(context, shellInit, shellCommandHandler, shellController, shellTaskOrganizer, syncQueue, rootTDAOrganizer, displayController, displayImeController, displayInsetsController, transitions, transactionPool, iconProvider, recentTasks, launchAdjacentController, multiInstanceHelper, splitState, mainExecutor, mainHandler, systemWindows); splitState, mainExecutor, mainHandler, systemWindows, rootDisplayAreaOrganizer); } } libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +5 −2 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import com.android.internal.statusbar.IStatusBarService; import com.android.internal.util.LatencyTracker; import com.android.launcher3.icons.IconProvider; import com.android.window.flags.Flags; import com.android.wm.shell.RootDisplayAreaOrganizer; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.activityembedding.ActivityEmbeddingController; Loading Loading @@ -577,7 +578,8 @@ public abstract class WMShellModule { MultiInstanceHelper multiInstanceHelper, SplitState splitState, @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler) { @ShellMainThread Handler mainHandler, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { return new SplitScreenController( context, shellInit, Loading @@ -601,7 +603,8 @@ public abstract class WMShellModule { multiInstanceHelper, splitState, mainExecutor, mainHandler); mainHandler, rootDisplayAreaOrganizer); } // Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java +7 −2 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ import com.android.internal.logging.InstanceId; import com.android.internal.protolog.ProtoLog; import com.android.launcher3.icons.IconProvider; 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.common.ComponentUtils; Loading Loading @@ -202,6 +203,7 @@ public class SplitScreenController implements SplitDragPolicy.Starter, private final Optional<DesktopTasksController> mDesktopTasksController; private final MultiInstanceHelper mMultiInstanceHelpher; private final SplitState mSplitState; private final RootDisplayAreaOrganizer mRootDisplayAreaOrganizer; private final SplitScreenShellCommandHandler mSplitScreenShellCommandHandler; @VisibleForTesting Loading Loading @@ -233,7 +235,8 @@ public class SplitScreenController implements SplitDragPolicy.Starter, MultiInstanceHelper multiInstanceHelper, SplitState splitState, ShellExecutor mainExecutor, Handler mainHandler) { Handler mainHandler, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { mShellCommandHandler = shellCommandHandler; mShellController = shellController; mTaskOrganizer = shellTaskOrganizer; Loading @@ -257,6 +260,7 @@ public class SplitScreenController implements SplitDragPolicy.Starter, mStageCoordinator = stageCoordinator; mMultiInstanceHelpher = multiInstanceHelper; mSplitState = splitState; mRootDisplayAreaOrganizer = rootDisplayAreaOrganizer; mSplitScreenShellCommandHandler = new SplitScreenShellCommandHandler(this); // TODO(b/238217847): Temporarily add this check here until we can remove the dynamic // override for this controller from the base module Loading Loading @@ -301,7 +305,8 @@ public class SplitScreenController implements SplitDragPolicy.Starter, mTaskOrganizer, mDisplayController, mDisplayImeController, mDisplayInsetsController, mTransitions, mTransactionPool, mIconProvider, mMainExecutor, mMainHandler, mRecentTasksOptional, mLaunchAdjacentController, mWindowDecorViewModel, mSplitState, mDesktopTasksController, mRootTDAOrganizer); mWindowDecorViewModel, mSplitState, mDesktopTasksController, mRootTDAOrganizer, mRootDisplayAreaOrganizer); } @Override Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/RootDisplayAreaOrganizer.java +7 −0 Original line number Diff line number Diff line Loading @@ -25,9 +25,11 @@ import android.view.SurfaceControl; import android.window.DisplayAreaAppearedInfo; import android.window.DisplayAreaInfo; import android.window.DisplayAreaOrganizer; import android.window.WindowContainerToken; import android.window.WindowContainerTransaction; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.protolog.ProtoLog; import com.android.wm.shell.sysui.ShellInit; Loading Loading @@ -142,6 +144,11 @@ public class RootDisplayAreaOrganizer extends DisplayAreaOrganizer { return wct; } @Nullable public WindowContainerToken getDisplayTokenForDisplay(int displayId) { return mDisplayAreasInfo.get(displayId).token; } public void dump(@NonNull PrintWriter pw, String prefix) { final String innerPrefix = prefix + " "; final String childPrefix = innerPrefix + " "; Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +9 −3 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ import com.android.wm.shell.shared.annotations.ShellMainThread; import com.android.wm.shell.shared.split.SplitScreenConstants.PersistentSnapPosition; import com.android.wm.shell.shared.split.SplitScreenConstants.SnapPosition; import com.android.wm.shell.shared.split.SplitScreenConstants.SplitPosition; import com.android.wm.shell.splitscreen.SplitStatusBarHider; import com.android.wm.shell.splitscreen.StageTaskListener; import java.io.PrintWriter; Loading Loading @@ -142,6 +143,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange new PathInterpolator(0.45f, 0f, 0.5f, 1f); @ShellMainThread private final Handler mHandler; private final SplitStatusBarHider mStatusBarHider; /** Singleton source of truth for the current state of split screen on this device. */ private final SplitState mSplitState; Loading Loading @@ -207,11 +209,12 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange public SplitLayout(String windowName, Context context, Configuration configuration, SplitLayoutHandler splitLayoutHandler, SplitWindowManager.ParentContainerCallbacks parentContainerCallbacks, ParentContainerCallbacks parentContainerCallbacks, DisplayController displayController, DisplayImeController displayImeController, ShellTaskOrganizer taskOrganizer, int parallaxType, SplitState splitState, @ShellMainThread Handler handler) { @ShellMainThread Handler handler, SplitStatusBarHider statusBarHider) { mHandler = handler; mStatusBarHider = statusBarHider; mContext = context.createConfigurationContext(configuration); mOrientation = configuration.orientation; mRotation = configuration.windowConfiguration.getRotation(); Loading @@ -233,7 +236,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mAllowLeftRightSplitInPortrait = SplitScreenUtils.allowLeftRightSplitInPortrait(res); mIsLeftRightSplit = SplitScreenUtils.isLeftRightSplit(mAllowLeftRightSplitInPortrait, configuration); statusBarHider.onLeftRightSplitUpdated(mIsLeftRightSplit); updateDividerConfig(mContext); mRootBounds.set(configuration.windowConfiguration.getBounds()); Loading Loading @@ -506,6 +509,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mIsLargeScreen = configuration.smallestScreenWidthDp >= 600; mIsLeftRightSplit = SplitScreenUtils.isLeftRightSplit(mAllowLeftRightSplitInPortrait, configuration); mStatusBarHider.onLeftRightSplitUpdated(mIsLeftRightSplit); updateLayouts(); updateDividerConfig(mContext); initDividerPosition(mTempRect, wasLeftRightSplit); Loading Loading @@ -534,6 +538,8 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mRootBounds.set(tmpRect); mIsLeftRightSplit = SplitScreenUtils.isLeftRightSplit(mAllowLeftRightSplitInPortrait, mIsLargeScreen, mRootBounds.width() >= mRootBounds.height()); mStatusBarHider.onLeftRightSplitUpdated(mIsLeftRightSplit); updateLayouts(); initDividerPosition(mTempRect, wasLeftRightSplit); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/TvWMShellModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.content.Context; import android.os.Handler; import com.android.launcher3.icons.IconProvider; import com.android.wm.shell.RootDisplayAreaOrganizer; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.common.DisplayController; Loading Loading @@ -93,11 +94,12 @@ public class TvWMShellModule { SplitState splitState, @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler, SystemWindows systemWindows) { SystemWindows systemWindows, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { return new TvSplitScreenController(context, shellInit, shellCommandHandler, shellController, shellTaskOrganizer, syncQueue, rootTDAOrganizer, displayController, displayImeController, displayInsetsController, transitions, transactionPool, iconProvider, recentTasks, launchAdjacentController, multiInstanceHelper, splitState, mainExecutor, mainHandler, systemWindows); splitState, mainExecutor, mainHandler, systemWindows, rootDisplayAreaOrganizer); } }
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +5 −2 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import com.android.internal.statusbar.IStatusBarService; import com.android.internal.util.LatencyTracker; import com.android.launcher3.icons.IconProvider; import com.android.window.flags.Flags; import com.android.wm.shell.RootDisplayAreaOrganizer; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.activityembedding.ActivityEmbeddingController; Loading Loading @@ -577,7 +578,8 @@ public abstract class WMShellModule { MultiInstanceHelper multiInstanceHelper, SplitState splitState, @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler) { @ShellMainThread Handler mainHandler, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { return new SplitScreenController( context, shellInit, Loading @@ -601,7 +603,8 @@ public abstract class WMShellModule { multiInstanceHelper, splitState, mainExecutor, mainHandler); mainHandler, rootDisplayAreaOrganizer); } // Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java +7 −2 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ import com.android.internal.logging.InstanceId; import com.android.internal.protolog.ProtoLog; import com.android.launcher3.icons.IconProvider; 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.common.ComponentUtils; Loading Loading @@ -202,6 +203,7 @@ public class SplitScreenController implements SplitDragPolicy.Starter, private final Optional<DesktopTasksController> mDesktopTasksController; private final MultiInstanceHelper mMultiInstanceHelpher; private final SplitState mSplitState; private final RootDisplayAreaOrganizer mRootDisplayAreaOrganizer; private final SplitScreenShellCommandHandler mSplitScreenShellCommandHandler; @VisibleForTesting Loading Loading @@ -233,7 +235,8 @@ public class SplitScreenController implements SplitDragPolicy.Starter, MultiInstanceHelper multiInstanceHelper, SplitState splitState, ShellExecutor mainExecutor, Handler mainHandler) { Handler mainHandler, RootDisplayAreaOrganizer rootDisplayAreaOrganizer) { mShellCommandHandler = shellCommandHandler; mShellController = shellController; mTaskOrganizer = shellTaskOrganizer; Loading @@ -257,6 +260,7 @@ public class SplitScreenController implements SplitDragPolicy.Starter, mStageCoordinator = stageCoordinator; mMultiInstanceHelpher = multiInstanceHelper; mSplitState = splitState; mRootDisplayAreaOrganizer = rootDisplayAreaOrganizer; mSplitScreenShellCommandHandler = new SplitScreenShellCommandHandler(this); // TODO(b/238217847): Temporarily add this check here until we can remove the dynamic // override for this controller from the base module Loading Loading @@ -301,7 +305,8 @@ public class SplitScreenController implements SplitDragPolicy.Starter, mTaskOrganizer, mDisplayController, mDisplayImeController, mDisplayInsetsController, mTransitions, mTransactionPool, mIconProvider, mMainExecutor, mMainHandler, mRecentTasksOptional, mLaunchAdjacentController, mWindowDecorViewModel, mSplitState, mDesktopTasksController, mRootTDAOrganizer); mWindowDecorViewModel, mSplitState, mDesktopTasksController, mRootTDAOrganizer, mRootDisplayAreaOrganizer); } @Override Loading