From 16534ddb08ccd40e8c823147ae52afc544506473 Mon Sep 17 00:00:00 2001 From: Ats Jenk Date: Thu, 9 Feb 2023 10:50:29 -0800 Subject: Remove shell transition animations when showDesktopApps is called This is used when tapping on desktop in recents. The current shell transitions do not look good in this case. We likely need some new animation that works well here. Setting the transition type to NONE right now which looks better than with the TO_FRONT animation. Bug: 267364407 Test: atest DesktopModeControllerTest DesktopTasksControllerTest Change-Id: Ie945b19a7bca931169403e9642b5cbf2df5bda22 --- .../shell/desktopmode/DesktopModeController.java | 12 +++++++---- .../wm/shell/desktopmode/DesktopTasksController.kt | 4 +++- .../desktopmode/DesktopModeControllerTest.java | 3 ++- .../desktopmode/DesktopTasksControllerTest.kt | 23 +++++++++++++--------- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java index a839a230ea6f..4016ae972ef2 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java @@ -22,6 +22,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.view.WindowManager.TRANSIT_CHANGE; +import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_FRONT; @@ -255,10 +256,13 @@ public class DesktopModeController implements RemoteCallable arg = ArgumentCaptor.forClass( WindowContainerTransaction.class); if (Transitions.ENABLE_SHELL_TRANSITIONS) { - verify(mTransitions).startTransition(eq(TRANSIT_TO_FRONT), arg.capture(), any()); + verify(mTransitions).startTransition(eq(TRANSIT_NONE), arg.capture(), any()); } else { verify(mShellTaskOrganizer).applyTransaction(arg.capture()); } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt index f16beeed57a3..95e78a8b7bcc 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt @@ -26,6 +26,8 @@ import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED import android.os.Binder import android.testing.AndroidTestingRunner import android.view.WindowManager +import android.view.WindowManager.TRANSIT_CHANGE +import android.view.WindowManager.TRANSIT_NONE import android.view.WindowManager.TRANSIT_OPEN import android.view.WindowManager.TRANSIT_TO_FRONT import android.window.TransitionRequestInfo @@ -55,6 +57,7 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentCaptor +import org.mockito.ArgumentMatchers.eq import org.mockito.ArgumentMatchers.isNull import org.mockito.Mock import org.mockito.Mockito @@ -141,7 +144,7 @@ class DesktopTasksControllerTest : ShellTestCase() { controller.showDesktopApps() - val wct = getLatestWct() + val wct = getLatestWct(expectTransition = TRANSIT_NONE) assertThat(wct.hierarchyOps).hasSize(3) // Expect order to be from bottom: home, task1, task2 wct.assertReorderAt(index = 0, homeTask) @@ -159,7 +162,7 @@ class DesktopTasksControllerTest : ShellTestCase() { controller.showDesktopApps() - val wct = getLatestWct() + val wct = getLatestWct(expectTransition = TRANSIT_NONE) assertThat(wct.hierarchyOps).hasSize(3) // Expect order to be from bottom: home, task1, task2 wct.assertReorderAt(index = 0, homeTask) @@ -177,7 +180,7 @@ class DesktopTasksControllerTest : ShellTestCase() { controller.showDesktopApps() - val wct = getLatestWct() + val wct = getLatestWct(expectTransition = TRANSIT_NONE) assertThat(wct.hierarchyOps).hasSize(3) // Expect order to be from bottom: home, task1, task2 wct.assertReorderAt(index = 0, homeTask) @@ -191,7 +194,7 @@ class DesktopTasksControllerTest : ShellTestCase() { controller.showDesktopApps() - val wct = getLatestWct() + val wct = getLatestWct(expectTransition = TRANSIT_NONE) assertThat(wct.hierarchyOps).hasSize(1) wct.assertReorderAt(index = 0, homeTask) } @@ -221,7 +224,7 @@ class DesktopTasksControllerTest : ShellTestCase() { fun moveToDesktop() { val task = setUpFullscreenTask() controller.moveToDesktop(task) - val wct = getLatestWct() + val wct = getLatestWct(expectTransition = TRANSIT_CHANGE) assertThat(wct.changes[task.token.asBinder()]?.windowingMode) .isEqualTo(WINDOWING_MODE_FREEFORM) } @@ -241,7 +244,7 @@ class DesktopTasksControllerTest : ShellTestCase() { controller.moveToDesktop(fullscreenTask) - with(getLatestWct()) { + with(getLatestWct(expectTransition = TRANSIT_CHANGE)) { assertThat(hierarchyOps).hasSize(3) assertReorderSequence(homeTask, freeformTask, fullscreenTask) assertThat(changes[fullscreenTask.token.asBinder()]?.windowingMode) @@ -253,7 +256,7 @@ class DesktopTasksControllerTest : ShellTestCase() { fun moveToFullscreen() { val task = setUpFreeformTask() controller.moveToFullscreen(task) - val wct = getLatestWct() + val wct = getLatestWct(expectTransition = TRANSIT_CHANGE) assertThat(wct.changes[task.token.asBinder()]?.windowingMode) .isEqualTo(WINDOWING_MODE_FULLSCREEN) } @@ -415,10 +418,12 @@ class DesktopTasksControllerTest : ShellTestCase() { desktopModeTaskRepository.updateVisibleFreeformTasks(task.taskId, visible = false) } - private fun getLatestWct(): WindowContainerTransaction { + private fun getLatestWct( + @WindowManager.TransitionType expectTransition: Int = TRANSIT_OPEN + ): WindowContainerTransaction { val arg = ArgumentCaptor.forClass(WindowContainerTransaction::class.java) if (ENABLE_SHELL_TRANSITIONS) { - verify(transitions).startTransition(anyInt(), arg.capture(), isNull()) + verify(transitions).startTransition(eq(expectTransition), arg.capture(), isNull()) } else { verify(shellTaskOrganizer).applyTransaction(arg.capture()) } -- cgit v1.2.3-59-g8ed1b