Merge "Remove shell transition animations when showDesktopApps is called" into tm-qpr-dev
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -256,10 +257,13 @@ public class DesktopModeController implements RemoteCallable<DesktopModeControll
|
||||
WindowContainerTransaction wct = new WindowContainerTransaction();
|
||||
bringDesktopAppsToFront(wct);
|
||||
|
||||
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
|
||||
mTransitions.startTransition(TRANSIT_TO_FRONT, wct, null /* handler */);
|
||||
} else {
|
||||
mShellTaskOrganizer.applyTransaction(wct);
|
||||
if (!wct.isEmpty()) {
|
||||
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
|
||||
// TODO(b/268662477): add animation for the transition
|
||||
mTransitions.startTransition(TRANSIT_NONE, wct, null /* handler */);
|
||||
} else {
|
||||
mShellTaskOrganizer.applyTransaction(wct);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import android.content.Context
|
||||
import android.os.IBinder
|
||||
import android.view.SurfaceControl
|
||||
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.TransitionInfo
|
||||
@@ -89,7 +90,8 @@ class DesktopTasksController(
|
||||
// Execute transaction if there are pending operations
|
||||
if (!wct.isEmpty) {
|
||||
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
|
||||
transitions.startTransition(TRANSIT_TO_FRONT, wct, null /* handler */)
|
||||
// TODO(b/268662477): add animation for the transition
|
||||
transitions.startTransition(TRANSIT_NONE, wct, null /* handler */)
|
||||
} else {
|
||||
shellTaskOrganizer.applyTransaction(wct)
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
|
||||
import static android.app.WindowConfiguration.WINDOW_CONFIG_BOUNDS;
|
||||
import static android.view.WindowManager.TRANSIT_CHANGE;
|
||||
import static android.view.WindowManager.TRANSIT_CLOSE;
|
||||
import static android.view.WindowManager.TRANSIT_NONE;
|
||||
import static android.view.WindowManager.TRANSIT_OPEN;
|
||||
import static android.view.WindowManager.TRANSIT_TO_FRONT;
|
||||
import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_REORDER;
|
||||
@@ -446,7 +447,7 @@ public class DesktopModeControllerTest extends ShellTestCase {
|
||||
final ArgumentCaptor<WindowContainerTransaction> 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());
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user