Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -199,6 +199,7 @@ public abstract class WMShellModule { @ShellMainThread Handler mainHandler, @ShellMainThread Handler mainHandler, @ShellMainThread Choreographer mainChoreographer, @ShellMainThread Choreographer mainChoreographer, ShellInit shellInit, ShellInit shellInit, ShellCommandHandler shellCommandHandler, ShellTaskOrganizer taskOrganizer, ShellTaskOrganizer taskOrganizer, DisplayController displayController, DisplayController displayController, ShellController shellController, ShellController shellController, Loading @@ -213,6 +214,7 @@ public abstract class WMShellModule { mainHandler, mainHandler, mainChoreographer, mainChoreographer, shellInit, shellInit, shellCommandHandler, taskOrganizer, taskOrganizer, displayController, displayController, shellController, shellController, Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +26 −1 Original line number Original line Diff line number Diff line Loading @@ -79,11 +79,13 @@ import com.android.wm.shell.recents.RecentsTransitionStateListener; import com.android.wm.shell.splitscreen.SplitScreen; import com.android.wm.shell.splitscreen.SplitScreen; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.sysui.KeyguardChangeListener; import com.android.wm.shell.sysui.KeyguardChangeListener; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.windowdecor.DesktopModeWindowDecoration.ExclusionRegionListener; import com.android.wm.shell.windowdecor.DesktopModeWindowDecoration.ExclusionRegionListener; import java.io.PrintWriter; import java.util.Optional; import java.util.Optional; import java.util.function.Supplier; import java.util.function.Supplier; Loading @@ -97,6 +99,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { private final DesktopModeWindowDecoration.Factory mDesktopModeWindowDecorFactory; private final DesktopModeWindowDecoration.Factory mDesktopModeWindowDecorFactory; private final ActivityTaskManager mActivityTaskManager; private final ActivityTaskManager mActivityTaskManager; private final ShellCommandHandler mShellCommandHandler; private final ShellTaskOrganizer mTaskOrganizer; private final ShellTaskOrganizer mTaskOrganizer; private final ShellController mShellController; private final ShellController mShellController; private final Context mContext; private final Context mContext; Loading Loading @@ -134,6 +137,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { Handler mainHandler, Handler mainHandler, Choreographer mainChoreographer, Choreographer mainChoreographer, ShellInit shellInit, ShellInit shellInit, ShellCommandHandler shellCommandHandler, ShellTaskOrganizer taskOrganizer, ShellTaskOrganizer taskOrganizer, DisplayController displayController, DisplayController displayController, ShellController shellController, ShellController shellController, Loading @@ -148,6 +152,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mainHandler, mainHandler, mainChoreographer, mainChoreographer, shellInit, shellInit, shellCommandHandler, taskOrganizer, taskOrganizer, displayController, displayController, shellController, shellController, Loading @@ -167,6 +172,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { Handler mainHandler, Handler mainHandler, Choreographer mainChoreographer, Choreographer mainChoreographer, ShellInit shellInit, ShellInit shellInit, ShellCommandHandler shellCommandHandler, ShellTaskOrganizer taskOrganizer, ShellTaskOrganizer taskOrganizer, DisplayController displayController, DisplayController displayController, ShellController shellController, ShellController shellController, Loading @@ -189,7 +195,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mTransitions = transitions; mTransitions = transitions; mDesktopTasksController = desktopTasksController; mDesktopTasksController = desktopTasksController; mRecentsTransitionHandler = recentsTransitionHandler; mRecentsTransitionHandler = recentsTransitionHandler; mShellCommandHandler = shellCommandHandler; mDesktopModeWindowDecorFactory = desktopModeWindowDecorFactory; mDesktopModeWindowDecorFactory = desktopModeWindowDecorFactory; mInputMonitorFactory = inputMonitorFactory; mInputMonitorFactory = inputMonitorFactory; mTransactionFactory = transactionFactory; mTransactionFactory = transactionFactory; Loading @@ -206,6 +212,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { onRecentsTransitionStarted(transition); onRecentsTransitionStarted(transition); } } }); }); mShellCommandHandler.addDumpCallback(this::dump, this); } } @Override @Override Loading Loading @@ -593,6 +600,15 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { super.dispose(); super.dispose(); } } @Override public String toString() { return "EventReceiver" + "{" + "tasksOnDisplay=" + mTasksOnDisplay + "}"; } private void incrementTaskNumber() { private void incrementTaskNumber() { mTasksOnDisplay++; mTasksOnDisplay++; } } Loading Loading @@ -981,6 +997,15 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { && mSplitScreenController.isTaskInSplitScreen(taskId); && mSplitScreenController.isTaskInSplitScreen(taskId); } } private void dump(PrintWriter pw, String prefix) { final String innerPrefix = prefix + " "; pw.println(prefix + "DesktopModeWindowDecorViewModel"); pw.println(innerPrefix + "DesktopModeStatus=" + DesktopModeStatus.isEnabled()); pw.println(innerPrefix + "mTransitionDragActive=" + mTransitionDragActive); pw.println(innerPrefix + "mEventReceiversByDisplay=" + mEventReceiversByDisplay); pw.println(innerPrefix + "mWindowDecorByTaskId=" + mWindowDecorByTaskId); } private class DragStartListenerImpl private class DragStartListenerImpl implements DragPositioningCallbackUtility.DragStartListener { implements DragPositioningCallbackUtility.DragStartListener { @Override @Override Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +12 −0 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.wm.shell.windowdecor; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.windowingModeToString; import android.app.ActivityManager; import android.app.ActivityManager; import android.app.WindowConfiguration.WindowingMode; import android.app.WindowConfiguration.WindowingMode; Loading Loading @@ -661,6 +662,17 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mRelayoutBlock++; mRelayoutBlock++; } } @Override public String toString() { return "{" + "mPositionInParent=" + mPositionInParent + ", " + "mRelayoutBlock=" + mRelayoutBlock + ", " + "taskId=" + mTaskInfo.taskId + ", " + "windowingMode=" + windowingModeToString(mTaskInfo.getWindowingMode()) + ", " + "isFocused=" + isFocused() + "}"; } static class Factory { static class Factory { DesktopModeWindowDecoration create( DesktopModeWindowDecoration create( Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt +3 −0 Original line number Original line Diff line number Diff line Loading @@ -49,6 +49,7 @@ import com.android.wm.shell.desktopmode.DesktopTasksController import com.android.wm.shell.recents.RecentsTransitionHandler import com.android.wm.shell.recents.RecentsTransitionHandler import com.android.wm.shell.recents.RecentsTransitionStateListener import com.android.wm.shell.recents.RecentsTransitionStateListener import com.android.wm.shell.sysui.KeyguardChangeListener import com.android.wm.shell.sysui.KeyguardChangeListener import com.android.wm.shell.sysui.ShellCommandHandler import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.sysui.ShellInit import com.android.wm.shell.sysui.ShellInit import com.android.wm.shell.transition.Transitions import com.android.wm.shell.transition.Transitions Loading Loading @@ -89,6 +90,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { @Mock private lateinit var mockShellExecutor: ShellExecutor @Mock private lateinit var mockShellExecutor: ShellExecutor @Mock private lateinit var mockRootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer @Mock private lateinit var mockRootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer @Mock private lateinit var mockRecentsTransitionHandler: RecentsTransitionHandler @Mock private lateinit var mockRecentsTransitionHandler: RecentsTransitionHandler @Mock private lateinit var mockShellCommandHandler: ShellCommandHandler private val transactionFactory = Supplier<SurfaceControl.Transaction> { private val transactionFactory = Supplier<SurfaceControl.Transaction> { SurfaceControl.Transaction() SurfaceControl.Transaction() Loading @@ -105,6 +107,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { mockMainHandler, mockMainHandler, mockMainChoreographer, mockMainChoreographer, shellInit, shellInit, mockShellCommandHandler, mockTaskOrganizer, mockTaskOrganizer, mockDisplayController, mockDisplayController, mockShellController, mockShellController, Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -199,6 +199,7 @@ public abstract class WMShellModule { @ShellMainThread Handler mainHandler, @ShellMainThread Handler mainHandler, @ShellMainThread Choreographer mainChoreographer, @ShellMainThread Choreographer mainChoreographer, ShellInit shellInit, ShellInit shellInit, ShellCommandHandler shellCommandHandler, ShellTaskOrganizer taskOrganizer, ShellTaskOrganizer taskOrganizer, DisplayController displayController, DisplayController displayController, ShellController shellController, ShellController shellController, Loading @@ -213,6 +214,7 @@ public abstract class WMShellModule { mainHandler, mainHandler, mainChoreographer, mainChoreographer, shellInit, shellInit, shellCommandHandler, taskOrganizer, taskOrganizer, displayController, displayController, shellController, shellController, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +26 −1 Original line number Original line Diff line number Diff line Loading @@ -79,11 +79,13 @@ import com.android.wm.shell.recents.RecentsTransitionStateListener; import com.android.wm.shell.splitscreen.SplitScreen; import com.android.wm.shell.splitscreen.SplitScreen; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.sysui.KeyguardChangeListener; import com.android.wm.shell.sysui.KeyguardChangeListener; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.windowdecor.DesktopModeWindowDecoration.ExclusionRegionListener; import com.android.wm.shell.windowdecor.DesktopModeWindowDecoration.ExclusionRegionListener; import java.io.PrintWriter; import java.util.Optional; import java.util.Optional; import java.util.function.Supplier; import java.util.function.Supplier; Loading @@ -97,6 +99,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { private final DesktopModeWindowDecoration.Factory mDesktopModeWindowDecorFactory; private final DesktopModeWindowDecoration.Factory mDesktopModeWindowDecorFactory; private final ActivityTaskManager mActivityTaskManager; private final ActivityTaskManager mActivityTaskManager; private final ShellCommandHandler mShellCommandHandler; private final ShellTaskOrganizer mTaskOrganizer; private final ShellTaskOrganizer mTaskOrganizer; private final ShellController mShellController; private final ShellController mShellController; private final Context mContext; private final Context mContext; Loading Loading @@ -134,6 +137,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { Handler mainHandler, Handler mainHandler, Choreographer mainChoreographer, Choreographer mainChoreographer, ShellInit shellInit, ShellInit shellInit, ShellCommandHandler shellCommandHandler, ShellTaskOrganizer taskOrganizer, ShellTaskOrganizer taskOrganizer, DisplayController displayController, DisplayController displayController, ShellController shellController, ShellController shellController, Loading @@ -148,6 +152,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mainHandler, mainHandler, mainChoreographer, mainChoreographer, shellInit, shellInit, shellCommandHandler, taskOrganizer, taskOrganizer, displayController, displayController, shellController, shellController, Loading @@ -167,6 +172,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { Handler mainHandler, Handler mainHandler, Choreographer mainChoreographer, Choreographer mainChoreographer, ShellInit shellInit, ShellInit shellInit, ShellCommandHandler shellCommandHandler, ShellTaskOrganizer taskOrganizer, ShellTaskOrganizer taskOrganizer, DisplayController displayController, DisplayController displayController, ShellController shellController, ShellController shellController, Loading @@ -189,7 +195,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mTransitions = transitions; mTransitions = transitions; mDesktopTasksController = desktopTasksController; mDesktopTasksController = desktopTasksController; mRecentsTransitionHandler = recentsTransitionHandler; mRecentsTransitionHandler = recentsTransitionHandler; mShellCommandHandler = shellCommandHandler; mDesktopModeWindowDecorFactory = desktopModeWindowDecorFactory; mDesktopModeWindowDecorFactory = desktopModeWindowDecorFactory; mInputMonitorFactory = inputMonitorFactory; mInputMonitorFactory = inputMonitorFactory; mTransactionFactory = transactionFactory; mTransactionFactory = transactionFactory; Loading @@ -206,6 +212,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { onRecentsTransitionStarted(transition); onRecentsTransitionStarted(transition); } } }); }); mShellCommandHandler.addDumpCallback(this::dump, this); } } @Override @Override Loading Loading @@ -593,6 +600,15 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { super.dispose(); super.dispose(); } } @Override public String toString() { return "EventReceiver" + "{" + "tasksOnDisplay=" + mTasksOnDisplay + "}"; } private void incrementTaskNumber() { private void incrementTaskNumber() { mTasksOnDisplay++; mTasksOnDisplay++; } } Loading Loading @@ -981,6 +997,15 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { && mSplitScreenController.isTaskInSplitScreen(taskId); && mSplitScreenController.isTaskInSplitScreen(taskId); } } private void dump(PrintWriter pw, String prefix) { final String innerPrefix = prefix + " "; pw.println(prefix + "DesktopModeWindowDecorViewModel"); pw.println(innerPrefix + "DesktopModeStatus=" + DesktopModeStatus.isEnabled()); pw.println(innerPrefix + "mTransitionDragActive=" + mTransitionDragActive); pw.println(innerPrefix + "mEventReceiversByDisplay=" + mEventReceiversByDisplay); pw.println(innerPrefix + "mWindowDecorByTaskId=" + mWindowDecorByTaskId); } private class DragStartListenerImpl private class DragStartListenerImpl implements DragPositioningCallbackUtility.DragStartListener { implements DragPositioningCallbackUtility.DragStartListener { @Override @Override Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +12 −0 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.wm.shell.windowdecor; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.windowingModeToString; import android.app.ActivityManager; import android.app.ActivityManager; import android.app.WindowConfiguration.WindowingMode; import android.app.WindowConfiguration.WindowingMode; Loading Loading @@ -661,6 +662,17 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mRelayoutBlock++; mRelayoutBlock++; } } @Override public String toString() { return "{" + "mPositionInParent=" + mPositionInParent + ", " + "mRelayoutBlock=" + mRelayoutBlock + ", " + "taskId=" + mTaskInfo.taskId + ", " + "windowingMode=" + windowingModeToString(mTaskInfo.getWindowingMode()) + ", " + "isFocused=" + isFocused() + "}"; } static class Factory { static class Factory { DesktopModeWindowDecoration create( DesktopModeWindowDecoration create( Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt +3 −0 Original line number Original line Diff line number Diff line Loading @@ -49,6 +49,7 @@ import com.android.wm.shell.desktopmode.DesktopTasksController import com.android.wm.shell.recents.RecentsTransitionHandler import com.android.wm.shell.recents.RecentsTransitionHandler import com.android.wm.shell.recents.RecentsTransitionStateListener import com.android.wm.shell.recents.RecentsTransitionStateListener import com.android.wm.shell.sysui.KeyguardChangeListener import com.android.wm.shell.sysui.KeyguardChangeListener import com.android.wm.shell.sysui.ShellCommandHandler import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.sysui.ShellInit import com.android.wm.shell.sysui.ShellInit import com.android.wm.shell.transition.Transitions import com.android.wm.shell.transition.Transitions Loading Loading @@ -89,6 +90,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { @Mock private lateinit var mockShellExecutor: ShellExecutor @Mock private lateinit var mockShellExecutor: ShellExecutor @Mock private lateinit var mockRootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer @Mock private lateinit var mockRootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer @Mock private lateinit var mockRecentsTransitionHandler: RecentsTransitionHandler @Mock private lateinit var mockRecentsTransitionHandler: RecentsTransitionHandler @Mock private lateinit var mockShellCommandHandler: ShellCommandHandler private val transactionFactory = Supplier<SurfaceControl.Transaction> { private val transactionFactory = Supplier<SurfaceControl.Transaction> { SurfaceControl.Transaction() SurfaceControl.Transaction() Loading @@ -105,6 +107,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { mockMainHandler, mockMainHandler, mockMainChoreographer, mockMainChoreographer, shellInit, shellInit, mockShellCommandHandler, mockTaskOrganizer, mockTaskOrganizer, mockDisplayController, mockDisplayController, mockShellController, mockShellController, Loading