Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java +12 −5 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import com.android.wm.shell.common.split.SplitDecorManager; import com.android.wm.shell.protolog.ShellProtoLogGroup; import com.android.wm.shell.shared.TransactionPool; import com.android.wm.shell.shared.TransitionUtil; import com.android.wm.shell.shared.split.SplitScreenConstants; import com.android.wm.shell.transition.OneShotRemoteHandler; import com.android.wm.shell.transition.Transitions; Loading Loading @@ -362,7 +363,8 @@ class SplitScreenTransitions { WindowContainerTransaction wct, @Nullable RemoteTransition remoteTransition, Transitions.TransitionHandler handler, int extraTransitType, boolean resizeAnim) { int extraTransitType, boolean resizeAnim, @SplitScreenConstants.PersistentSnapPosition int snapPosition) { if (mPendingEnter != null) { ProtoLog.v(WM_SHELL_TRANSITIONS, " splitTransition " + " skip to start enter split transition since it already exist. "); Loading @@ -373,16 +375,18 @@ class SplitScreenTransitions { .onSplitAnimationInvoked(true /*animationRunning*/)); } final IBinder transition = mTransitions.startTransition(transitType, wct, handler); setEnterTransition(transition, remoteTransition, extraTransitType, resizeAnim); setEnterTransition(transition, remoteTransition, extraTransitType, resizeAnim, snapPosition); return transition; } /** Sets a transition to enter split. */ void setEnterTransition(@NonNull IBinder transition, @Nullable RemoteTransition remoteTransition, int extraTransitType, boolean resizeAnim) { int extraTransitType, boolean resizeAnim, int snapPosition) { mPendingEnter = new EnterSession( transition, remoteTransition, extraTransitType, resizeAnim); transition, remoteTransition, extraTransitType, resizeAnim, snapPosition); ProtoLog.v(WM_SHELL_TRANSITIONS, " splitTransition " + " deduced Enter split screen"); Loading Loading @@ -675,13 +679,16 @@ class SplitScreenTransitions { /** Bundled information of enter transition. */ class EnterSession extends TransitSession { final boolean mResizeAnim; /** The starting snap position we'll enter into with this transition. */ final @SplitScreenConstants.PersistentSnapPosition int mEnteringPosition; EnterSession(IBinder transition, @Nullable RemoteTransition remoteTransition, int extraTransitType, boolean resizeAnim) { int extraTransitType, boolean resizeAnim, int snapPosition) { super(transition, null /* consumedCallback */, null /* finishedCallback */, remoteTransition, extraTransitType); this.mResizeAnim = resizeAnim; this.mEnteringPosition = snapPosition; } } Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +24 −10 Original line number Diff line number Diff line Loading @@ -653,7 +653,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, null, this, isSplitScreenVisible() ? TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE : TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering); !mIsDropEntering, SNAP_TO_2_50_50); // Due to drag already pip task entering split by this method so need to reset flag here. mIsDropEntering = false; Loading Loading @@ -787,7 +787,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, prepareEnterSplitScreen(wct, null /* taskInfo */, position, !mIsDropEntering, index); mSplitTransitions.startEnterTransition(TRANSIT_TO_FRONT, wct, null, this, extraTransitType, !mIsDropEntering); extraTransitType, !mIsDropEntering, SNAP_TO_2_50_50); } /** Loading Loading @@ -833,7 +833,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, prepareEnterSplitScreen(wct, null /* taskInfo */, position, !mIsDropEntering, index); mSplitTransitions.startEnterTransition(TRANSIT_TO_FRONT, wct, null, this, extraTransitType, !mIsDropEntering); extraTransitType, !mIsDropEntering, SNAP_TO_2_50_50); } /** Loading Loading @@ -1050,7 +1050,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mPausingTasks.clear(); } mSplitTransitions.startEnterTransition(TRANSIT_TO_FRONT, wct, remoteTransition, this, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, snapPosition); setEnterInstanceId(instanceId); } Loading Loading @@ -1140,7 +1140,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } mSplitTransitions.startEnterTransition(TRANSIT_TO_FRONT, wct, remoteTransition, this, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, snapPosition); setEnterInstanceId(instanceId); } Loading Loading @@ -1645,6 +1645,14 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, grantFocusToStage(stageToFocus); } private void grantFocusForSnapPosition(@PersistentSnapPosition int enteringPosition) { switch (enteringPosition) { case SNAP_TO_2_90_10 -> grantFocusToPosition(true /*leftOrTop*/); case SNAP_TO_2_10_90 -> grantFocusToPosition(false /*leftOrTop*/); default -> { /*no-op*/ } } } private void clearRequestIfPresented() { ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "clearRequestIfPresented"); if (mSideStage.mVisible && mSideStage.mHasChildren Loading Loading @@ -2911,7 +2919,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, // split, prepare to enter split screen. prepareEnterSplitScreen(out); mSplitTransitions.setEnterTransition(transition, request.getRemoteTransition(), TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering, SNAP_TO_2_50_50); } else if (isSplitScreenVisible() && isOpening) { // launching into an existing split stage; possibly launchAdjacent // If we're replacing a pip-able app, we need to let mixed handler take care of Loading @@ -2920,7 +2928,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, // updated layout will get applied in startAnimation pendingResize mSplitTransitions.setEnterTransition(transition, request.getRemoteTransition(), TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, true /*resizeAnim*/); TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, true /*resizeAnim*/, SNAP_TO_2_50_50); } } else if (inFullscreen && isSplitScreenVisible()) { // If the trigger task is in fullscreen and in split, exit split and place Loading Loading @@ -2998,14 +3007,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, out = new WindowContainerTransaction(); prepareEnterSplitScreen(out); mSplitTransitions.setEnterTransition(transition, request.getRemoteTransition(), TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering, SNAP_TO_2_50_50); return out; } ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "handleRequest: transition=%d " + "restoring to split", request.getDebugId()); out = new WindowContainerTransaction(); mSplitTransitions.setEnterTransition(transition, request.getRemoteTransition(), TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, false /* resizeAnim */); TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, false /* resizeAnim */, SNAP_TO_2_50_50); } return out; } Loading Loading @@ -3192,7 +3202,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, if (keepSplitWithPip) { // Set an enter transition for when startAnimation gets called again mSplitTransitions.setEnterTransition(transition, /*remoteTransition*/ null, TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, /*resizeAnim*/ false); TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, /*resizeAnim*/ false, SNAP_TO_2_50_50); } else { int finalClosingTaskId = closingSplitTaskId; mRecentTasks.ifPresent(recentTasks -> Loading Loading @@ -3577,6 +3588,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } }); mPausingTasks.clear(); if (enableFlexibleTwoAppSplit()) { grantFocusForSnapPosition(enterTransition.mEnteringPosition); } }); if (info.getType() == TRANSIT_CHANGE && !isSplitActive() Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java +5 −4 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_CHILDREN_TASKS_REPARENT; import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_REORDER; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_50_50; import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_MAIN; import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_SIDE; import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_APP_DOES_NOT_SUPPORT_MULTIWINDOW; Loading Loading @@ -213,7 +214,7 @@ public class SplitTransitionTests extends ShellTestCase { IBinder transition = mSplitScreenTransitions.startEnterTransition( TRANSIT_OPEN, new WindowContainerTransaction(), new RemoteTransition(testRemote, "Test"), mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, SNAP_TO_2_50_50); mMainStage.onTaskAppeared(mMainChild, createMockSurface()); mSideStage.onTaskAppeared(mSideChild, createMockSurface()); boolean accepted = mStageCoordinator.startAnimation(transition, info, Loading @@ -239,7 +240,7 @@ public class SplitTransitionTests extends ShellTestCase { IBinder transition = mSplitScreenTransitions.startEnterTransition( TRANSIT_OPEN, new WindowContainerTransaction(), new RemoteTransition(testRemote, "Test"), mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, SNAP_TO_2_50_50); mMainStage.onTaskAppeared(mMainChild, createMockSurface()); boolean accepted = mStageCoordinator.startAnimation(transition, info, mock(SurfaceControl.Transaction.class), Loading @@ -262,7 +263,7 @@ public class SplitTransitionTests extends ShellTestCase { IBinder transition = mSplitScreenTransitions.startEnterTransition( TRANSIT_OPEN, new WindowContainerTransaction(), new RemoteTransition(testRemote, "Test"), mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, SNAP_TO_2_50_50); mMainStage.onTaskAppeared(mMainChild, createMockSurface()); mStageCoordinator.startAnimation(transition, info, mock(SurfaceControl.Transaction.class), Loading Loading @@ -524,7 +525,7 @@ public class SplitTransitionTests extends ShellTestCase { IBinder enterTransit = mSplitScreenTransitions.startEnterTransition( TRANSIT_OPEN, new WindowContainerTransaction(), new RemoteTransition(new TestRemoteTransition(), "Test"), mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, SNAP_TO_2_50_50); mMainStage.onTaskAppeared(mMainChild, createMockSurface()); mSideStage.onTaskAppeared(mSideChild, createMockSurface()); mStageCoordinator.startAnimation(enterTransit, enterInfo, Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -475,7 +475,7 @@ public class StageCoordinatorTests extends ShellTestCase { mStageCoordinator.startTask(mTaskId, SPLIT_POSITION_TOP_OR_LEFT, null /*options*/, null, SPLIT_INDEX_UNDEFINED); verify(mSplitScreenTransitions).startEnterTransition(anyInt(), mWctCaptor.capture(), any(), any(), anyInt(), anyBoolean()); mWctCaptor.capture(), any(), any(), anyInt(), anyBoolean(), anyInt()); int windowingMode = mWctCaptor.getValue().getChanges().get(mBinder).getWindowingMode(); assertEquals(windowingMode, WINDOWING_MODE_UNDEFINED); Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java +12 −5 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import com.android.wm.shell.common.split.SplitDecorManager; import com.android.wm.shell.protolog.ShellProtoLogGroup; import com.android.wm.shell.shared.TransactionPool; import com.android.wm.shell.shared.TransitionUtil; import com.android.wm.shell.shared.split.SplitScreenConstants; import com.android.wm.shell.transition.OneShotRemoteHandler; import com.android.wm.shell.transition.Transitions; Loading Loading @@ -362,7 +363,8 @@ class SplitScreenTransitions { WindowContainerTransaction wct, @Nullable RemoteTransition remoteTransition, Transitions.TransitionHandler handler, int extraTransitType, boolean resizeAnim) { int extraTransitType, boolean resizeAnim, @SplitScreenConstants.PersistentSnapPosition int snapPosition) { if (mPendingEnter != null) { ProtoLog.v(WM_SHELL_TRANSITIONS, " splitTransition " + " skip to start enter split transition since it already exist. "); Loading @@ -373,16 +375,18 @@ class SplitScreenTransitions { .onSplitAnimationInvoked(true /*animationRunning*/)); } final IBinder transition = mTransitions.startTransition(transitType, wct, handler); setEnterTransition(transition, remoteTransition, extraTransitType, resizeAnim); setEnterTransition(transition, remoteTransition, extraTransitType, resizeAnim, snapPosition); return transition; } /** Sets a transition to enter split. */ void setEnterTransition(@NonNull IBinder transition, @Nullable RemoteTransition remoteTransition, int extraTransitType, boolean resizeAnim) { int extraTransitType, boolean resizeAnim, int snapPosition) { mPendingEnter = new EnterSession( transition, remoteTransition, extraTransitType, resizeAnim); transition, remoteTransition, extraTransitType, resizeAnim, snapPosition); ProtoLog.v(WM_SHELL_TRANSITIONS, " splitTransition " + " deduced Enter split screen"); Loading Loading @@ -675,13 +679,16 @@ class SplitScreenTransitions { /** Bundled information of enter transition. */ class EnterSession extends TransitSession { final boolean mResizeAnim; /** The starting snap position we'll enter into with this transition. */ final @SplitScreenConstants.PersistentSnapPosition int mEnteringPosition; EnterSession(IBinder transition, @Nullable RemoteTransition remoteTransition, int extraTransitType, boolean resizeAnim) { int extraTransitType, boolean resizeAnim, int snapPosition) { super(transition, null /* consumedCallback */, null /* finishedCallback */, remoteTransition, extraTransitType); this.mResizeAnim = resizeAnim; this.mEnteringPosition = snapPosition; } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +24 −10 Original line number Diff line number Diff line Loading @@ -653,7 +653,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, null, this, isSplitScreenVisible() ? TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE : TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering); !mIsDropEntering, SNAP_TO_2_50_50); // Due to drag already pip task entering split by this method so need to reset flag here. mIsDropEntering = false; Loading Loading @@ -787,7 +787,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, prepareEnterSplitScreen(wct, null /* taskInfo */, position, !mIsDropEntering, index); mSplitTransitions.startEnterTransition(TRANSIT_TO_FRONT, wct, null, this, extraTransitType, !mIsDropEntering); extraTransitType, !mIsDropEntering, SNAP_TO_2_50_50); } /** Loading Loading @@ -833,7 +833,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, prepareEnterSplitScreen(wct, null /* taskInfo */, position, !mIsDropEntering, index); mSplitTransitions.startEnterTransition(TRANSIT_TO_FRONT, wct, null, this, extraTransitType, !mIsDropEntering); extraTransitType, !mIsDropEntering, SNAP_TO_2_50_50); } /** Loading Loading @@ -1050,7 +1050,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mPausingTasks.clear(); } mSplitTransitions.startEnterTransition(TRANSIT_TO_FRONT, wct, remoteTransition, this, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, snapPosition); setEnterInstanceId(instanceId); } Loading Loading @@ -1140,7 +1140,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } mSplitTransitions.startEnterTransition(TRANSIT_TO_FRONT, wct, remoteTransition, this, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, snapPosition); setEnterInstanceId(instanceId); } Loading Loading @@ -1645,6 +1645,14 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, grantFocusToStage(stageToFocus); } private void grantFocusForSnapPosition(@PersistentSnapPosition int enteringPosition) { switch (enteringPosition) { case SNAP_TO_2_90_10 -> grantFocusToPosition(true /*leftOrTop*/); case SNAP_TO_2_10_90 -> grantFocusToPosition(false /*leftOrTop*/); default -> { /*no-op*/ } } } private void clearRequestIfPresented() { ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "clearRequestIfPresented"); if (mSideStage.mVisible && mSideStage.mHasChildren Loading Loading @@ -2911,7 +2919,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, // split, prepare to enter split screen. prepareEnterSplitScreen(out); mSplitTransitions.setEnterTransition(transition, request.getRemoteTransition(), TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering, SNAP_TO_2_50_50); } else if (isSplitScreenVisible() && isOpening) { // launching into an existing split stage; possibly launchAdjacent // If we're replacing a pip-able app, we need to let mixed handler take care of Loading @@ -2920,7 +2928,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, // updated layout will get applied in startAnimation pendingResize mSplitTransitions.setEnterTransition(transition, request.getRemoteTransition(), TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, true /*resizeAnim*/); TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, true /*resizeAnim*/, SNAP_TO_2_50_50); } } else if (inFullscreen && isSplitScreenVisible()) { // If the trigger task is in fullscreen and in split, exit split and place Loading Loading @@ -2998,14 +3007,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, out = new WindowContainerTransaction(); prepareEnterSplitScreen(out); mSplitTransitions.setEnterTransition(transition, request.getRemoteTransition(), TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, !mIsDropEntering, SNAP_TO_2_50_50); return out; } ProtoLog.d(WM_SHELL_SPLIT_SCREEN, "handleRequest: transition=%d " + "restoring to split", request.getDebugId()); out = new WindowContainerTransaction(); mSplitTransitions.setEnterTransition(transition, request.getRemoteTransition(), TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, false /* resizeAnim */); TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, false /* resizeAnim */, SNAP_TO_2_50_50); } return out; } Loading Loading @@ -3192,7 +3202,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, if (keepSplitWithPip) { // Set an enter transition for when startAnimation gets called again mSplitTransitions.setEnterTransition(transition, /*remoteTransition*/ null, TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, /*resizeAnim*/ false); TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, /*resizeAnim*/ false, SNAP_TO_2_50_50); } else { int finalClosingTaskId = closingSplitTaskId; mRecentTasks.ifPresent(recentTasks -> Loading Loading @@ -3577,6 +3588,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } }); mPausingTasks.clear(); if (enableFlexibleTwoAppSplit()) { grantFocusForSnapPosition(enterTransition.mEnteringPosition); } }); if (info.getType() == TRANSIT_CHANGE && !isSplitActive() Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java +5 −4 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_CHILDREN_TASKS_REPARENT; import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_REORDER; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_50_50; import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_MAIN; import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_SIDE; import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_APP_DOES_NOT_SUPPORT_MULTIWINDOW; Loading Loading @@ -213,7 +214,7 @@ public class SplitTransitionTests extends ShellTestCase { IBinder transition = mSplitScreenTransitions.startEnterTransition( TRANSIT_OPEN, new WindowContainerTransaction(), new RemoteTransition(testRemote, "Test"), mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, SNAP_TO_2_50_50); mMainStage.onTaskAppeared(mMainChild, createMockSurface()); mSideStage.onTaskAppeared(mSideChild, createMockSurface()); boolean accepted = mStageCoordinator.startAnimation(transition, info, Loading @@ -239,7 +240,7 @@ public class SplitTransitionTests extends ShellTestCase { IBinder transition = mSplitScreenTransitions.startEnterTransition( TRANSIT_OPEN, new WindowContainerTransaction(), new RemoteTransition(testRemote, "Test"), mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, SNAP_TO_2_50_50); mMainStage.onTaskAppeared(mMainChild, createMockSurface()); boolean accepted = mStageCoordinator.startAnimation(transition, info, mock(SurfaceControl.Transaction.class), Loading @@ -262,7 +263,7 @@ public class SplitTransitionTests extends ShellTestCase { IBinder transition = mSplitScreenTransitions.startEnterTransition( TRANSIT_OPEN, new WindowContainerTransaction(), new RemoteTransition(testRemote, "Test"), mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, SNAP_TO_2_50_50); mMainStage.onTaskAppeared(mMainChild, createMockSurface()); mStageCoordinator.startAnimation(transition, info, mock(SurfaceControl.Transaction.class), Loading Loading @@ -524,7 +525,7 @@ public class SplitTransitionTests extends ShellTestCase { IBinder enterTransit = mSplitScreenTransitions.startEnterTransition( TRANSIT_OPEN, new WindowContainerTransaction(), new RemoteTransition(new TestRemoteTransition(), "Test"), mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false); mStageCoordinator, TRANSIT_SPLIT_SCREEN_PAIR_OPEN, false, SNAP_TO_2_50_50); mMainStage.onTaskAppeared(mMainChild, createMockSurface()); mSideStage.onTaskAppeared(mSideChild, createMockSurface()); mStageCoordinator.startAnimation(enterTransit, enterInfo, Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -475,7 +475,7 @@ public class StageCoordinatorTests extends ShellTestCase { mStageCoordinator.startTask(mTaskId, SPLIT_POSITION_TOP_OR_LEFT, null /*options*/, null, SPLIT_INDEX_UNDEFINED); verify(mSplitScreenTransitions).startEnterTransition(anyInt(), mWctCaptor.capture(), any(), any(), anyInt(), anyBoolean()); mWctCaptor.capture(), any(), any(), anyInt(), anyBoolean(), anyInt()); int windowingMode = mWctCaptor.getValue().getChanges().get(mBinder).getWindowingMode(); assertEquals(windowingMode, WINDOWING_MODE_UNDEFINED); Loading