Loading PREUPLOAD.cfg +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp tests/ tools/ bpfmt = -d ktfmt = --kotlinlang-style --include-dirs=services/permission,packages/SystemUI,libs/WindowManager/Shell/src/com/android/wm/shell/freeform,libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode ktfmt = --kotlinlang-style --include-dirs=services/permission,packages/SystemUI,libs/WindowManager/Shell/src/com/android/wm/shell/freeform,libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode,libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode [Hook Scripts] checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT} Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandlerTest.kt +8 −8 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { context, testExecutor, testExecutor, transactionSupplier transactionSupplier, ) } Loading @@ -81,11 +81,11 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo( type = WindowManager.TRANSIT_OPEN, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate open transition", animates) Loading @@ -99,7 +99,7 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo(task = createTask(WINDOWING_MODE_FULLSCREEN)), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate fullscreen task close transition", animates) Loading @@ -113,11 +113,11 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo( changeMode = WindowManager.TRANSIT_OPEN, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate opening freeform task close transition", animates) Loading @@ -131,7 +131,7 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM)), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertTrue("Should animate closing freeform task close transition", animates) Loading @@ -140,7 +140,7 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { private fun createTransitionInfo( type: Int = WindowManager.TRANSIT_CLOSE, changeMode: Int = WindowManager.TRANSIT_CLOSE, task: RunningTaskInfo task: RunningTaskInfo, ): TransitionInfo = TransitionInfo(type, 0 /* flags */).apply { addChange( Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopActivityOrientationChangeHandlerTest.kt +51 −26 Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ import com.android.dx.mockito.inline.extended.ExtendedMockito.never import com.android.dx.mockito.inline.extended.StaticMockitoSession import com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE import com.android.window.flags.Flags.FLAG_RESPECT_ORIENTATION_CHANGE_FOR_UNRESIZEABLE import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.ShellTaskOrganizer import com.android.wm.shell.ShellTestCase import com.android.wm.shell.common.ShellExecutor Loading @@ -47,6 +46,7 @@ import com.android.wm.shell.desktopmode.persistence.Desktop import com.android.wm.shell.desktopmode.persistence.DesktopPersistentRepository import com.android.wm.shell.desktopmode.persistence.DesktopRepositoryInitializer import com.android.wm.shell.shared.desktopmode.DesktopModeStatus import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.sysui.ShellInit import com.android.wm.shell.transition.Transitions import junit.framework.Assert.assertEquals Loading Loading @@ -129,16 +129,22 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { persistentRepository, repositoryInitializer, testScope, userManager userManager, ) whenever(shellTaskOrganizer.getRunningTasks(anyInt())).thenAnswer { runningTasks } whenever(transitions.startTransition(anyInt(), any(), isNull())).thenAnswer { Binder() } whenever(runBlocking { persistentRepository.readDesktop(any(), any()) }).thenReturn( Desktop.getDefaultInstance() ) whenever(runBlocking { persistentRepository.readDesktop(any(), any()) }) .thenReturn(Desktop.getDefaultInstance()) handler = DesktopActivityOrientationChangeHandler(context, shellInit, shellTaskOrganizer, taskStackListener, resizeTransitionHandler, userRepositories) handler = DesktopActivityOrientationChangeHandler( context, shellInit, shellTaskOrganizer, taskStackListener, resizeTransitionHandler, userRepositories, ) shellInit.init() } Loading @@ -161,19 +167,28 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { whenever(DesktopModeStatus.canEnterDesktopMode(context)).thenReturn(false) clearInvocations(shellInit) handler = DesktopActivityOrientationChangeHandler(context, shellInit, shellTaskOrganizer, taskStackListener, resizeTransitionHandler, userRepositories) handler = DesktopActivityOrientationChangeHandler( context, shellInit, shellTaskOrganizer, taskStackListener, resizeTransitionHandler, userRepositories, ) verify(shellInit, never()).addInitCallback(any(), any<DesktopActivityOrientationChangeHandler>()) verify(shellInit, never()) .addInitCallback(any(), any<DesktopActivityOrientationChangeHandler>()) } @Test fun handleActivityOrientationChange_resizeable_doNothing() { val task = setUpFreeformTask() taskStackListener.onActivityRequestedOrientationChanged(task.taskId, SCREEN_ORIENTATION_LANDSCAPE) taskStackListener.onActivityRequestedOrientationChanged( task.taskId, SCREEN_ORIENTATION_LANDSCAPE, ) verify(resizeTransitionHandler, never()).startTransition(any(), any()) } Loading @@ -189,8 +204,10 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { userRepositories.current.addTask(DEFAULT_DISPLAY, task.taskId, isVisible = true) runningTasks.add(task) taskStackListener.onActivityRequestedOrientationChanged(task.taskId, SCREEN_ORIENTATION_LANDSCAPE) taskStackListener.onActivityRequestedOrientationChanged( task.taskId, SCREEN_ORIENTATION_LANDSCAPE, ) verify(resizeTransitionHandler, never()).startTransition(any(), any()) } Loading @@ -198,8 +215,11 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { @Test fun handleActivityOrientationChange_nonResizeablePortrait_requestSameOrientation_doNothing() { val task = setUpFreeformTask(isResizeable = false) val newTask = setUpFreeformTask(isResizeable = false, orientation = SCREEN_ORIENTATION_SENSOR_PORTRAIT) val newTask = setUpFreeformTask( isResizeable = false, orientation = SCREEN_ORIENTATION_SENSOR_PORTRAIT, ) handler.handleActivityOrientationChange(task, newTask) Loading @@ -211,8 +231,10 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { val task = setUpFreeformTask(isResizeable = false) userRepositories.current.updateTask(task.displayId, task.taskId, isVisible = false) taskStackListener.onActivityRequestedOrientationChanged(task.taskId, SCREEN_ORIENTATION_LANDSCAPE) taskStackListener.onActivityRequestedOrientationChanged( task.taskId, SCREEN_ORIENTATION_LANDSCAPE, ) verify(resizeTransitionHandler, never()).startTransition(any(), any()) } Loading @@ -221,8 +243,8 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { fun handleActivityOrientationChange_nonResizeablePortrait_respectLandscapeRequest() { val task = setUpFreeformTask(isResizeable = false) val oldBounds = task.configuration.windowConfiguration.bounds val newTask = setUpFreeformTask(isResizeable = false, orientation = SCREEN_ORIENTATION_LANDSCAPE) val newTask = setUpFreeformTask(isResizeable = false, orientation = SCREEN_ORIENTATION_LANDSCAPE) handler.handleActivityOrientationChange(task, newTask) Loading @@ -242,8 +264,11 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { @Test fun handleActivityOrientationChange_nonResizeableLandscape_respectPortraitRequest() { val oldBounds = Rect(0, 0, 500, 200) val task = setUpFreeformTask( isResizeable = false, orientation = SCREEN_ORIENTATION_LANDSCAPE, bounds = oldBounds val task = setUpFreeformTask( isResizeable = false, orientation = SCREEN_ORIENTATION_LANDSCAPE, bounds = oldBounds, ) val newTask = setUpFreeformTask(isResizeable = false, bounds = oldBounds) Loading @@ -266,7 +291,7 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { displayId: Int = DEFAULT_DISPLAY, isResizeable: Boolean = true, orientation: Int = SCREEN_ORIENTATION_PORTRAIT, bounds: Rect? = Rect(0, 0, 200, 500) bounds: Rect? = Rect(0, 0, 200, 500), ): RunningTaskInfo { val task = createFreeformTask(displayId, bounds) val activityInfo = ActivityInfo() Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopBackNavigationTransitionHandlerTest.kt +22 −24 Original line number Diff line number Diff line Loading @@ -56,11 +56,7 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { @Before fun setUp() { handler = DesktopBackNavigationTransitionHandler( testExecutor, testExecutor, displayController ) DesktopBackNavigationTransitionHandler(testExecutor, testExecutor, displayController) whenever(displayController.getDisplayContext(any())).thenReturn(mContext) } Loading @@ -77,11 +73,11 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo( type = WindowManager.TRANSIT_OPEN, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate open transition", animates) Loading @@ -95,7 +91,7 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo(task = createTask(WINDOWING_MODE_FULLSCREEN)), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate fullscreen task to back transition", animates) Loading @@ -109,11 +105,11 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo( changeMode = WindowManager.TRANSIT_OPEN, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate opening freeform task to back transition", animates) Loading @@ -127,7 +123,7 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM)), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertTrue("Should animate going to back freeform task close transition", animates) Loading @@ -138,22 +134,24 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { val animates = handler.startAnimation( transition = mock(), info = createTransitionInfo( info = createTransitionInfo( type = TRANSIT_CLOSE, changeMode = TRANSIT_CLOSE, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertTrue("Should animate going to back freeform task close transition", animates) } private fun createTransitionInfo( type: Int = WindowManager.TRANSIT_TO_BACK, changeMode: Int = WindowManager.TRANSIT_TO_BACK, task: RunningTaskInfo task: RunningTaskInfo, ): TransitionInfo = TransitionInfo(type, 0 /* flags */).apply { addChange( Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandlerTest.kt +99 −93 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { private fun testDisplayWindowingModeSwitch( defaultWindowingMode: Int, extendedDisplayEnabled: Boolean, expectTransition: Boolean expectTransition: Boolean, ) { val externalDisplayId = 100 val captor = ArgumentCaptor.forClass(OnDisplaysChangedListener::class.java) Loading @@ -101,8 +101,11 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { val tda = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY)!! tda.configuration.windowConfiguration.windowingMode = defaultWindowingMode whenever(mockWindowManager.getWindowingMode(anyInt())).thenAnswer { defaultWindowingMode } val settingsSession = ExtendedDisplaySettingsSession( context.contentResolver, if (extendedDisplayEnabled) 1 else 0) val settingsSession = ExtendedDisplaySettingsSession( context.contentResolver, if (extendedDisplayEnabled) 1 else 0, ) settingsSession.use { // The external display connected. Loading @@ -117,7 +120,8 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { if (expectTransition) { val arg = argumentCaptor<WindowContainerTransaction>() verify(transitions, times(2)).startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull()) verify(transitions, times(2)) .startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull()) assertThat(arg.firstValue.changes[tda.token.asBinder()]?.windowingMode) .isEqualTo(WINDOWING_MODE_FREEFORM) assertThat(arg.secondValue.changes[tda.token.asBinder()]?.windowingMode) Loading @@ -133,7 +137,7 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { testDisplayWindowingModeSwitch( defaultWindowingMode = WINDOWING_MODE_FULLSCREEN, extendedDisplayEnabled = false, expectTransition = false expectTransition = false, ) } Loading @@ -142,7 +146,7 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { testDisplayWindowingModeSwitch( defaultWindowingMode = WINDOWING_MODE_FULLSCREEN, extendedDisplayEnabled = true, expectTransition = true expectTransition = true, ) } Loading @@ -151,18 +155,20 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { testDisplayWindowingModeSwitch( defaultWindowingMode = WINDOWING_MODE_FREEFORM, extendedDisplayEnabled = true, expectTransition = false expectTransition = false, ) } private class ExtendedDisplaySettingsSession( private val contentResolver: ContentResolver, private val overrideValue: Int private val overrideValue: Int, ) : AutoCloseable { private val settingName = DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS private val initialValue = Settings.Global.getInt(contentResolver, settingName, 0) init { Settings.Global.putInt(contentResolver, settingName, overrideValue) } init { Settings.Global.putInt(contentResolver, settingName, overrideValue) } override fun close() { Settings.Global.putInt(contentResolver, settingName, initialValue) Loading Loading
PREUPLOAD.cfg +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp tests/ tools/ bpfmt = -d ktfmt = --kotlinlang-style --include-dirs=services/permission,packages/SystemUI,libs/WindowManager/Shell/src/com/android/wm/shell/freeform,libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode ktfmt = --kotlinlang-style --include-dirs=services/permission,packages/SystemUI,libs/WindowManager/Shell/src/com/android/wm/shell/freeform,libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode,libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode [Hook Scripts] checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT} Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandlerTest.kt +8 −8 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { context, testExecutor, testExecutor, transactionSupplier transactionSupplier, ) } Loading @@ -81,11 +81,11 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo( type = WindowManager.TRANSIT_OPEN, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate open transition", animates) Loading @@ -99,7 +99,7 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo(task = createTask(WINDOWING_MODE_FULLSCREEN)), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate fullscreen task close transition", animates) Loading @@ -113,11 +113,11 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo( changeMode = WindowManager.TRANSIT_OPEN, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate opening freeform task close transition", animates) Loading @@ -131,7 +131,7 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM)), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertTrue("Should animate closing freeform task close transition", animates) Loading @@ -140,7 +140,7 @@ class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { private fun createTransitionInfo( type: Int = WindowManager.TRANSIT_CLOSE, changeMode: Int = WindowManager.TRANSIT_CLOSE, task: RunningTaskInfo task: RunningTaskInfo, ): TransitionInfo = TransitionInfo(type, 0 /* flags */).apply { addChange( Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopActivityOrientationChangeHandlerTest.kt +51 −26 Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ import com.android.dx.mockito.inline.extended.ExtendedMockito.never import com.android.dx.mockito.inline.extended.StaticMockitoSession import com.android.window.flags.Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE import com.android.window.flags.Flags.FLAG_RESPECT_ORIENTATION_CHANGE_FOR_UNRESIZEABLE import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.ShellTaskOrganizer import com.android.wm.shell.ShellTestCase import com.android.wm.shell.common.ShellExecutor Loading @@ -47,6 +46,7 @@ import com.android.wm.shell.desktopmode.persistence.Desktop import com.android.wm.shell.desktopmode.persistence.DesktopPersistentRepository import com.android.wm.shell.desktopmode.persistence.DesktopRepositoryInitializer import com.android.wm.shell.shared.desktopmode.DesktopModeStatus import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.sysui.ShellInit import com.android.wm.shell.transition.Transitions import junit.framework.Assert.assertEquals Loading Loading @@ -129,16 +129,22 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { persistentRepository, repositoryInitializer, testScope, userManager userManager, ) whenever(shellTaskOrganizer.getRunningTasks(anyInt())).thenAnswer { runningTasks } whenever(transitions.startTransition(anyInt(), any(), isNull())).thenAnswer { Binder() } whenever(runBlocking { persistentRepository.readDesktop(any(), any()) }).thenReturn( Desktop.getDefaultInstance() ) whenever(runBlocking { persistentRepository.readDesktop(any(), any()) }) .thenReturn(Desktop.getDefaultInstance()) handler = DesktopActivityOrientationChangeHandler(context, shellInit, shellTaskOrganizer, taskStackListener, resizeTransitionHandler, userRepositories) handler = DesktopActivityOrientationChangeHandler( context, shellInit, shellTaskOrganizer, taskStackListener, resizeTransitionHandler, userRepositories, ) shellInit.init() } Loading @@ -161,19 +167,28 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { whenever(DesktopModeStatus.canEnterDesktopMode(context)).thenReturn(false) clearInvocations(shellInit) handler = DesktopActivityOrientationChangeHandler(context, shellInit, shellTaskOrganizer, taskStackListener, resizeTransitionHandler, userRepositories) handler = DesktopActivityOrientationChangeHandler( context, shellInit, shellTaskOrganizer, taskStackListener, resizeTransitionHandler, userRepositories, ) verify(shellInit, never()).addInitCallback(any(), any<DesktopActivityOrientationChangeHandler>()) verify(shellInit, never()) .addInitCallback(any(), any<DesktopActivityOrientationChangeHandler>()) } @Test fun handleActivityOrientationChange_resizeable_doNothing() { val task = setUpFreeformTask() taskStackListener.onActivityRequestedOrientationChanged(task.taskId, SCREEN_ORIENTATION_LANDSCAPE) taskStackListener.onActivityRequestedOrientationChanged( task.taskId, SCREEN_ORIENTATION_LANDSCAPE, ) verify(resizeTransitionHandler, never()).startTransition(any(), any()) } Loading @@ -189,8 +204,10 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { userRepositories.current.addTask(DEFAULT_DISPLAY, task.taskId, isVisible = true) runningTasks.add(task) taskStackListener.onActivityRequestedOrientationChanged(task.taskId, SCREEN_ORIENTATION_LANDSCAPE) taskStackListener.onActivityRequestedOrientationChanged( task.taskId, SCREEN_ORIENTATION_LANDSCAPE, ) verify(resizeTransitionHandler, never()).startTransition(any(), any()) } Loading @@ -198,8 +215,11 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { @Test fun handleActivityOrientationChange_nonResizeablePortrait_requestSameOrientation_doNothing() { val task = setUpFreeformTask(isResizeable = false) val newTask = setUpFreeformTask(isResizeable = false, orientation = SCREEN_ORIENTATION_SENSOR_PORTRAIT) val newTask = setUpFreeformTask( isResizeable = false, orientation = SCREEN_ORIENTATION_SENSOR_PORTRAIT, ) handler.handleActivityOrientationChange(task, newTask) Loading @@ -211,8 +231,10 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { val task = setUpFreeformTask(isResizeable = false) userRepositories.current.updateTask(task.displayId, task.taskId, isVisible = false) taskStackListener.onActivityRequestedOrientationChanged(task.taskId, SCREEN_ORIENTATION_LANDSCAPE) taskStackListener.onActivityRequestedOrientationChanged( task.taskId, SCREEN_ORIENTATION_LANDSCAPE, ) verify(resizeTransitionHandler, never()).startTransition(any(), any()) } Loading @@ -221,8 +243,8 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { fun handleActivityOrientationChange_nonResizeablePortrait_respectLandscapeRequest() { val task = setUpFreeformTask(isResizeable = false) val oldBounds = task.configuration.windowConfiguration.bounds val newTask = setUpFreeformTask(isResizeable = false, orientation = SCREEN_ORIENTATION_LANDSCAPE) val newTask = setUpFreeformTask(isResizeable = false, orientation = SCREEN_ORIENTATION_LANDSCAPE) handler.handleActivityOrientationChange(task, newTask) Loading @@ -242,8 +264,11 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { @Test fun handleActivityOrientationChange_nonResizeableLandscape_respectPortraitRequest() { val oldBounds = Rect(0, 0, 500, 200) val task = setUpFreeformTask( isResizeable = false, orientation = SCREEN_ORIENTATION_LANDSCAPE, bounds = oldBounds val task = setUpFreeformTask( isResizeable = false, orientation = SCREEN_ORIENTATION_LANDSCAPE, bounds = oldBounds, ) val newTask = setUpFreeformTask(isResizeable = false, bounds = oldBounds) Loading @@ -266,7 +291,7 @@ class DesktopActivityOrientationChangeHandlerTest : ShellTestCase() { displayId: Int = DEFAULT_DISPLAY, isResizeable: Boolean = true, orientation: Int = SCREEN_ORIENTATION_PORTRAIT, bounds: Rect? = Rect(0, 0, 200, 500) bounds: Rect? = Rect(0, 0, 200, 500), ): RunningTaskInfo { val task = createFreeformTask(displayId, bounds) val activityInfo = ActivityInfo() Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopBackNavigationTransitionHandlerTest.kt +22 −24 Original line number Diff line number Diff line Loading @@ -56,11 +56,7 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { @Before fun setUp() { handler = DesktopBackNavigationTransitionHandler( testExecutor, testExecutor, displayController ) DesktopBackNavigationTransitionHandler(testExecutor, testExecutor, displayController) whenever(displayController.getDisplayContext(any())).thenReturn(mContext) } Loading @@ -77,11 +73,11 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo( type = WindowManager.TRANSIT_OPEN, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate open transition", animates) Loading @@ -95,7 +91,7 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo(task = createTask(WINDOWING_MODE_FULLSCREEN)), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate fullscreen task to back transition", animates) Loading @@ -109,11 +105,11 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo( changeMode = WindowManager.TRANSIT_OPEN, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertFalse("Should not animate opening freeform task to back transition", animates) Loading @@ -127,7 +123,7 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { info = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM)), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertTrue("Should animate going to back freeform task close transition", animates) Loading @@ -138,22 +134,24 @@ class DesktopBackNavigationTransitionHandlerTest : ShellTestCase() { val animates = handler.startAnimation( transition = mock(), info = createTransitionInfo( info = createTransitionInfo( type = TRANSIT_CLOSE, changeMode = TRANSIT_CLOSE, task = createTask(WINDOWING_MODE_FREEFORM) task = createTask(WINDOWING_MODE_FREEFORM), ), startTransaction = mock(), finishTransaction = mock(), finishCallback = {} finishCallback = {}, ) assertTrue("Should animate going to back freeform task close transition", animates) } private fun createTransitionInfo( type: Int = WindowManager.TRANSIT_TO_BACK, changeMode: Int = WindowManager.TRANSIT_TO_BACK, task: RunningTaskInfo task: RunningTaskInfo, ): TransitionInfo = TransitionInfo(type, 0 /* flags */).apply { addChange( Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopDisplayEventHandlerTest.kt +99 −93 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { private fun testDisplayWindowingModeSwitch( defaultWindowingMode: Int, extendedDisplayEnabled: Boolean, expectTransition: Boolean expectTransition: Boolean, ) { val externalDisplayId = 100 val captor = ArgumentCaptor.forClass(OnDisplaysChangedListener::class.java) Loading @@ -101,8 +101,11 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { val tda = rootTaskDisplayAreaOrganizer.getDisplayAreaInfo(DEFAULT_DISPLAY)!! tda.configuration.windowConfiguration.windowingMode = defaultWindowingMode whenever(mockWindowManager.getWindowingMode(anyInt())).thenAnswer { defaultWindowingMode } val settingsSession = ExtendedDisplaySettingsSession( context.contentResolver, if (extendedDisplayEnabled) 1 else 0) val settingsSession = ExtendedDisplaySettingsSession( context.contentResolver, if (extendedDisplayEnabled) 1 else 0, ) settingsSession.use { // The external display connected. Loading @@ -117,7 +120,8 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { if (expectTransition) { val arg = argumentCaptor<WindowContainerTransaction>() verify(transitions, times(2)).startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull()) verify(transitions, times(2)) .startTransition(eq(TRANSIT_CHANGE), arg.capture(), isNull()) assertThat(arg.firstValue.changes[tda.token.asBinder()]?.windowingMode) .isEqualTo(WINDOWING_MODE_FREEFORM) assertThat(arg.secondValue.changes[tda.token.asBinder()]?.windowingMode) Loading @@ -133,7 +137,7 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { testDisplayWindowingModeSwitch( defaultWindowingMode = WINDOWING_MODE_FULLSCREEN, extendedDisplayEnabled = false, expectTransition = false expectTransition = false, ) } Loading @@ -142,7 +146,7 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { testDisplayWindowingModeSwitch( defaultWindowingMode = WINDOWING_MODE_FULLSCREEN, extendedDisplayEnabled = true, expectTransition = true expectTransition = true, ) } Loading @@ -151,18 +155,20 @@ class DesktopDisplayEventHandlerTest : ShellTestCase() { testDisplayWindowingModeSwitch( defaultWindowingMode = WINDOWING_MODE_FREEFORM, extendedDisplayEnabled = true, expectTransition = false expectTransition = false, ) } private class ExtendedDisplaySettingsSession( private val contentResolver: ContentResolver, private val overrideValue: Int private val overrideValue: Int, ) : AutoCloseable { private val settingName = DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS private val initialValue = Settings.Global.getInt(contentResolver, settingName, 0) init { Settings.Global.putInt(contentResolver, settingName, overrideValue) } init { Settings.Global.putInt(contentResolver, settingName, overrideValue) } override fun close() { Settings.Global.putInt(contentResolver, settingName, initialValue) Loading