Additional interfaces for main/side stage split-screen model

Add some more interfaces APIs for manipulating main/side stage
split-screen.
Also, renamed pinTask/unpinTask to moveToSideStage/removeFromSideStage
for consistency.

Test: Command line
Bug: 176061049
Change-Id: Ic5b909c42e027e6f4809931c6dc92af1bf79b050
This commit is contained in:
Wale Ogunwale
2021-01-10 17:31:00 -08:00
parent 13189ac1dd
commit 8531eb85a4
8 changed files with 165 additions and 48 deletions

View File

@@ -74,10 +74,10 @@ public class SideStageTests {
@Test
public void testRemoveTask() {
final ActivityManager.RunningTaskInfo task = new TestRunningTaskInfoBuilder().build();
assertThat(mSideStage.removeTask(task.taskId, mWct)).isFalse();
assertThat(mSideStage.removeTask(task.taskId, null, mWct)).isFalse();
mSideStage.mChildrenTaskInfo.put(task.taskId, task);
assertThat(mSideStage.removeTask(task.taskId, mWct)).isTrue();
assertThat(mSideStage.removeTask(task.taskId, null, mWct)).isTrue();
verify(mWct).reparent(eq(task.token), isNull(), eq(false));
}
}

View File

@@ -19,8 +19,11 @@ package com.android.wm.shell.splitscreen;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.window.DisplayAreaOrganizer.FEATURE_DEFAULT_TASK_CONTAINER;
import static com.android.wm.shell.splitscreen.SplitScreen.SIDE_STAGE_POSITION_BOTTOM_OR_RIGHT;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.verify;
import android.app.ActivityManager;
@@ -65,10 +68,10 @@ public class StageCoordinatorTests extends ShellTestCase {
}
@Test
public void testPinTask() {
public void testMoveToSideStage() {
final ActivityManager.RunningTaskInfo task = new TestRunningTaskInfoBuilder().build();
mStageCoordinator.pinTask(task);
mStageCoordinator.moveToSideStage(task, SIDE_STAGE_POSITION_BOTTOM_OR_RIGHT);
verify(mMainStage).activate(any(Rect.class), any(WindowContainerTransaction.class));
verify(mSideStage).addTask(eq(task), any(Rect.class),
@@ -76,12 +79,14 @@ public class StageCoordinatorTests extends ShellTestCase {
}
@Test
public void testUnpinTask() {
public void testRemoveFromSideStage() {
final ActivityManager.RunningTaskInfo task = new TestRunningTaskInfoBuilder().build();
mStageCoordinator.unpinTask(task.taskId);
doReturn(false).when(mMainStage).isActive();
mStageCoordinator.removeFromSideStage(task.taskId);
verify(mSideStage).removeTask(eq(task.taskId), any(WindowContainerTransaction.class));
verify(mSideStage).removeTask(
eq(task.taskId), any(), any(WindowContainerTransaction.class));
}
private static class TestStageCoordinator extends StageCoordinator {