From 67ee74794991b78aaf07b14e9f138e4ea562ae1c Mon Sep 17 00:00:00 2001 From: Tony Huang Date: Tue, 13 Jun 2023 17:23:57 +0800 Subject: Only bring side to top when split visible We did some error handle on startAnimation to exit split by some exception case. However, we should only bring side to top when exit only when split is visible case. If split is background, we should always do not bring side to top. Fix: 287002454 Test: manual Test: pass existing tests Change-Id: Id8835408ffa1bc0e8736659956e20e819a53627a --- .../Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java index 79002bbb8cc6..4efb5a51f6e5 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java @@ -2488,8 +2488,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, && getStageType(dismissStages.valueAt(0)) == STAGE_TYPE_MAIN) || mMainStage.getChildCount() == 0 ? STAGE_TYPE_SIDE : STAGE_TYPE_MAIN; // If there is a fullscreen opening change, we should not bring stage to top. - prepareExitSplitScreen(record.mContainShowFullscreenChange - ? STAGE_TYPE_UNDEFINED : dismissTop, wct); + prepareExitSplitScreen( + !record.mContainShowFullscreenChange && isSplitScreenVisible() + ? dismissTop : STAGE_TYPE_UNDEFINED, wct); mSplitTransitions.startDismissTransition(wct, this, dismissTop, EXIT_REASON_APP_FINISHED); // This can happen in some pathological cases. For example: -- cgit v1.2.3-59-g8ed1b