Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +7 −2 Original line number Diff line number Diff line Loading @@ -620,10 +620,15 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange } /** Fling divider from current position to center position. */ public void flingDividerToCenter() { public void flingDividerToCenter(@Nullable Runnable finishCallback) { final int pos = mDividerSnapAlgorithm.getMiddleTarget().position; flingDividerPosition(getDividerPosition(), pos, FLING_ENTER_DURATION, () -> setDividerPosition(pos, true /* applyLayoutChange */)); () -> { setDividerPosition(pos, true /* applyLayoutChange */); if (finishCallback != null) { finishCallback.run(); } }); } @VisibleForTesting Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +7 −4 Original line number Diff line number Diff line Loading @@ -2129,7 +2129,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSkipEvictingMainStageChildren = false; } else { mShowDecorImmediately = true; mSplitLayout.flingDividerToCenter(); mSplitLayout.flingDividerToCenter(/*finishCallback*/ null); } }); } Loading Loading @@ -2329,7 +2329,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSkipEvictingMainStageChildren = false; } else { mShowDecorImmediately = true; mSplitLayout.flingDividerToCenter(); mSplitLayout.flingDividerToCenter(/*finishCallback*/ null); } }); } Loading Loading @@ -3172,7 +3172,10 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, final TransitionInfo.Change finalMainChild = mainChild; final TransitionInfo.Change finalSideChild = sideChild; enterTransition.setFinishedCallback((callbackWct, callbackT) -> { if (!enterTransition.mResizeAnim) { // If resizing, we'll call notify at the end of the resizing animation (below) notifySplitAnimationFinished(); } if (finalMainChild != null) { if (!mainNotContainOpenTask) { mMainStage.evictOtherChildren(callbackWct, finalMainChild.getTaskInfo().taskId); Loading @@ -3192,7 +3195,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } if (enterTransition.mResizeAnim) { mShowDecorImmediately = true; mSplitLayout.flingDividerToCenter(); mSplitLayout.flingDividerToCenter(this::notifySplitAnimationFinished); } callbackWct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token, false); mPausingTasks.clear(); Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +7 −2 Original line number Diff line number Diff line Loading @@ -620,10 +620,15 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange } /** Fling divider from current position to center position. */ public void flingDividerToCenter() { public void flingDividerToCenter(@Nullable Runnable finishCallback) { final int pos = mDividerSnapAlgorithm.getMiddleTarget().position; flingDividerPosition(getDividerPosition(), pos, FLING_ENTER_DURATION, () -> setDividerPosition(pos, true /* applyLayoutChange */)); () -> { setDividerPosition(pos, true /* applyLayoutChange */); if (finishCallback != null) { finishCallback.run(); } }); } @VisibleForTesting Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +7 −4 Original line number Diff line number Diff line Loading @@ -2129,7 +2129,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSkipEvictingMainStageChildren = false; } else { mShowDecorImmediately = true; mSplitLayout.flingDividerToCenter(); mSplitLayout.flingDividerToCenter(/*finishCallback*/ null); } }); } Loading Loading @@ -2329,7 +2329,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSkipEvictingMainStageChildren = false; } else { mShowDecorImmediately = true; mSplitLayout.flingDividerToCenter(); mSplitLayout.flingDividerToCenter(/*finishCallback*/ null); } }); } Loading Loading @@ -3172,7 +3172,10 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, final TransitionInfo.Change finalMainChild = mainChild; final TransitionInfo.Change finalSideChild = sideChild; enterTransition.setFinishedCallback((callbackWct, callbackT) -> { if (!enterTransition.mResizeAnim) { // If resizing, we'll call notify at the end of the resizing animation (below) notifySplitAnimationFinished(); } if (finalMainChild != null) { if (!mainNotContainOpenTask) { mMainStage.evictOtherChildren(callbackWct, finalMainChild.getTaskInfo().taskId); Loading @@ -3192,7 +3195,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } if (enterTransition.mResizeAnim) { mShowDecorImmediately = true; mSplitLayout.flingDividerToCenter(); mSplitLayout.flingDividerToCenter(this::notifySplitAnimationFinished); } callbackWct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token, false); mPausingTasks.clear(); Loading