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_FULLSCREEN;
|
||||||
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
|
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
|
||||||
import static android.view.WindowManager.TRANSIT_CHANGE;
|
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_OPEN;
|
||||||
import static android.view.WindowManager.TRANSIT_TO_FRONT;
|
import static android.view.WindowManager.TRANSIT_TO_FRONT;
|
||||||
|
|
||||||
@@ -256,12 +257,15 @@ public class DesktopModeController implements RemoteCallable<DesktopModeControll
|
|||||||
WindowContainerTransaction wct = new WindowContainerTransaction();
|
WindowContainerTransaction wct = new WindowContainerTransaction();
|
||||||
bringDesktopAppsToFront(wct);
|
bringDesktopAppsToFront(wct);
|
||||||
|
|
||||||
|
if (!wct.isEmpty()) {
|
||||||
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
|
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
|
||||||
mTransitions.startTransition(TRANSIT_TO_FRONT, wct, null /* handler */);
|
// TODO(b/268662477): add animation for the transition
|
||||||
|
mTransitions.startTransition(TRANSIT_NONE, wct, null /* handler */);
|
||||||
} else {
|
} else {
|
||||||
mShellTaskOrganizer.applyTransaction(wct);
|
mShellTaskOrganizer.applyTransaction(wct);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Get number of tasks that are marked as visible */
|
/** Get number of tasks that are marked as visible */
|
||||||
int getVisibleTaskCount() {
|
int getVisibleTaskCount() {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import android.content.Context
|
|||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.view.SurfaceControl
|
import android.view.SurfaceControl
|
||||||
import android.view.WindowManager.TRANSIT_CHANGE
|
import android.view.WindowManager.TRANSIT_CHANGE
|
||||||
|
import android.view.WindowManager.TRANSIT_NONE
|
||||||
import android.view.WindowManager.TRANSIT_OPEN
|
import android.view.WindowManager.TRANSIT_OPEN
|
||||||
import android.view.WindowManager.TRANSIT_TO_FRONT
|
import android.view.WindowManager.TRANSIT_TO_FRONT
|
||||||
import android.window.TransitionInfo
|
import android.window.TransitionInfo
|
||||||
@@ -89,7 +90,8 @@ class DesktopTasksController(
|
|||||||
// Execute transaction if there are pending operations
|
// Execute transaction if there are pending operations
|
||||||
if (!wct.isEmpty) {
|
if (!wct.isEmpty) {
|
||||||
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
|
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 {
|
} else {
|
||||||
shellTaskOrganizer.applyTransaction(wct)
|
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.app.WindowConfiguration.WINDOW_CONFIG_BOUNDS;
|
||||||
import static android.view.WindowManager.TRANSIT_CHANGE;
|
import static android.view.WindowManager.TRANSIT_CHANGE;
|
||||||
import static android.view.WindowManager.TRANSIT_CLOSE;
|
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_OPEN;
|
||||||
import static android.view.WindowManager.TRANSIT_TO_FRONT;
|
import static android.view.WindowManager.TRANSIT_TO_FRONT;
|
||||||
import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_REORDER;
|
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(
|
final ArgumentCaptor<WindowContainerTransaction> arg = ArgumentCaptor.forClass(
|
||||||
WindowContainerTransaction.class);
|
WindowContainerTransaction.class);
|
||||||
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
|
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 {
|
} else {
|
||||||
verify(mShellTaskOrganizer).applyTransaction(arg.capture());
|
verify(mShellTaskOrganizer).applyTransaction(arg.capture());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED
|
|||||||
import android.os.Binder
|
import android.os.Binder
|
||||||
import android.testing.AndroidTestingRunner
|
import android.testing.AndroidTestingRunner
|
||||||
import android.view.WindowManager
|
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_OPEN
|
||||||
import android.view.WindowManager.TRANSIT_TO_FRONT
|
import android.view.WindowManager.TRANSIT_TO_FRONT
|
||||||
import android.window.TransitionRequestInfo
|
import android.window.TransitionRequestInfo
|
||||||
@@ -55,6 +57,7 @@ import org.junit.Before
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.ArgumentCaptor
|
import org.mockito.ArgumentCaptor
|
||||||
|
import org.mockito.ArgumentMatchers.eq
|
||||||
import org.mockito.ArgumentMatchers.isNull
|
import org.mockito.ArgumentMatchers.isNull
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito
|
import org.mockito.Mockito
|
||||||
@@ -141,7 +144,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
|
|||||||
|
|
||||||
controller.showDesktopApps()
|
controller.showDesktopApps()
|
||||||
|
|
||||||
val wct = getLatestWct()
|
val wct = getLatestWct(expectTransition = TRANSIT_NONE)
|
||||||
assertThat(wct.hierarchyOps).hasSize(3)
|
assertThat(wct.hierarchyOps).hasSize(3)
|
||||||
// Expect order to be from bottom: home, task1, task2
|
// Expect order to be from bottom: home, task1, task2
|
||||||
wct.assertReorderAt(index = 0, homeTask)
|
wct.assertReorderAt(index = 0, homeTask)
|
||||||
@@ -159,7 +162,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
|
|||||||
|
|
||||||
controller.showDesktopApps()
|
controller.showDesktopApps()
|
||||||
|
|
||||||
val wct = getLatestWct()
|
val wct = getLatestWct(expectTransition = TRANSIT_NONE)
|
||||||
assertThat(wct.hierarchyOps).hasSize(3)
|
assertThat(wct.hierarchyOps).hasSize(3)
|
||||||
// Expect order to be from bottom: home, task1, task2
|
// Expect order to be from bottom: home, task1, task2
|
||||||
wct.assertReorderAt(index = 0, homeTask)
|
wct.assertReorderAt(index = 0, homeTask)
|
||||||
@@ -177,7 +180,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
|
|||||||
|
|
||||||
controller.showDesktopApps()
|
controller.showDesktopApps()
|
||||||
|
|
||||||
val wct = getLatestWct()
|
val wct = getLatestWct(expectTransition = TRANSIT_NONE)
|
||||||
assertThat(wct.hierarchyOps).hasSize(3)
|
assertThat(wct.hierarchyOps).hasSize(3)
|
||||||
// Expect order to be from bottom: home, task1, task2
|
// Expect order to be from bottom: home, task1, task2
|
||||||
wct.assertReorderAt(index = 0, homeTask)
|
wct.assertReorderAt(index = 0, homeTask)
|
||||||
@@ -191,7 +194,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
|
|||||||
|
|
||||||
controller.showDesktopApps()
|
controller.showDesktopApps()
|
||||||
|
|
||||||
val wct = getLatestWct()
|
val wct = getLatestWct(expectTransition = TRANSIT_NONE)
|
||||||
assertThat(wct.hierarchyOps).hasSize(1)
|
assertThat(wct.hierarchyOps).hasSize(1)
|
||||||
wct.assertReorderAt(index = 0, homeTask)
|
wct.assertReorderAt(index = 0, homeTask)
|
||||||
}
|
}
|
||||||
@@ -221,7 +224,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
|
|||||||
fun moveToDesktop() {
|
fun moveToDesktop() {
|
||||||
val task = setUpFullscreenTask()
|
val task = setUpFullscreenTask()
|
||||||
controller.moveToDesktop(task)
|
controller.moveToDesktop(task)
|
||||||
val wct = getLatestWct()
|
val wct = getLatestWct(expectTransition = TRANSIT_CHANGE)
|
||||||
assertThat(wct.changes[task.token.asBinder()]?.windowingMode)
|
assertThat(wct.changes[task.token.asBinder()]?.windowingMode)
|
||||||
.isEqualTo(WINDOWING_MODE_FREEFORM)
|
.isEqualTo(WINDOWING_MODE_FREEFORM)
|
||||||
}
|
}
|
||||||
@@ -241,7 +244,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
|
|||||||
|
|
||||||
controller.moveToDesktop(fullscreenTask)
|
controller.moveToDesktop(fullscreenTask)
|
||||||
|
|
||||||
with(getLatestWct()) {
|
with(getLatestWct(expectTransition = TRANSIT_CHANGE)) {
|
||||||
assertThat(hierarchyOps).hasSize(3)
|
assertThat(hierarchyOps).hasSize(3)
|
||||||
assertReorderSequence(homeTask, freeformTask, fullscreenTask)
|
assertReorderSequence(homeTask, freeformTask, fullscreenTask)
|
||||||
assertThat(changes[fullscreenTask.token.asBinder()]?.windowingMode)
|
assertThat(changes[fullscreenTask.token.asBinder()]?.windowingMode)
|
||||||
@@ -253,7 +256,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
|
|||||||
fun moveToFullscreen() {
|
fun moveToFullscreen() {
|
||||||
val task = setUpFreeformTask()
|
val task = setUpFreeformTask()
|
||||||
controller.moveToFullscreen(task)
|
controller.moveToFullscreen(task)
|
||||||
val wct = getLatestWct()
|
val wct = getLatestWct(expectTransition = TRANSIT_CHANGE)
|
||||||
assertThat(wct.changes[task.token.asBinder()]?.windowingMode)
|
assertThat(wct.changes[task.token.asBinder()]?.windowingMode)
|
||||||
.isEqualTo(WINDOWING_MODE_FULLSCREEN)
|
.isEqualTo(WINDOWING_MODE_FULLSCREEN)
|
||||||
}
|
}
|
||||||
@@ -415,10 +418,12 @@ class DesktopTasksControllerTest : ShellTestCase() {
|
|||||||
desktopModeTaskRepository.updateVisibleFreeformTasks(task.taskId, visible = false)
|
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)
|
val arg = ArgumentCaptor.forClass(WindowContainerTransaction::class.java)
|
||||||
if (ENABLE_SHELL_TRANSITIONS) {
|
if (ENABLE_SHELL_TRANSITIONS) {
|
||||||
verify(transitions).startTransition(anyInt(), arg.capture(), isNull())
|
verify(transitions).startTransition(eq(expectTransition), arg.capture(), isNull())
|
||||||
} else {
|
} else {
|
||||||
verify(shellTaskOrganizer).applyTransaction(arg.capture())
|
verify(shellTaskOrganizer).applyTransaction(arg.capture())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user