Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitState.java +12 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,10 @@ package com.android.wm.shell.common.split; import static com.android.wm.shell.shared.split.SplitScreenConstants.NOT_IN_SPLIT; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_10_90; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_90_10; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_3_10_45_45; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_3_45_45_10; import static com.android.wm.shell.shared.split.SplitScreenConstants.SplitScreenState; import android.graphics.Rect; Loading Loading @@ -62,4 +66,12 @@ public class SplitState { public List<RectF> getCurrentLayout() { return getLayout(mState); } /** @return {@code true} if at least one app is partially offscreen in the current layout. */ public boolean currentStateSupportsOffscreenApps() { return mState == SNAP_TO_2_10_90 || mState == SNAP_TO_2_90_10 || mState == SNAP_TO_3_10_45_45 || mState == SNAP_TO_3_45_45_10; } } libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +11 −8 Original line number Diff line number Diff line Loading @@ -3618,9 +3618,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, finishEnterSplitScreen(finishT); addDividerBarToTransition(info, true /* show */); if (Flags.enableFlexibleTwoAppSplit()) { addAllDimLayersToTransition(info, true /* show */); } return true; } Loading Loading @@ -3871,10 +3869,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } addDividerBarToTransition(info, false /* show */); if (Flags.enableFlexibleTwoAppSplit()) { addAllDimLayersToTransition(info, false /* show */); } } /** Call this when the recents animation canceled during split-screen. */ public void onRecentsInSplitAnimationCanceled() { Loading Loading @@ -3999,8 +3995,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, info.addChange(barChange); } /** Add dim layers to the transition, so that they can be hidden/shown when animation starts. */ /** * Add dim layers to the transition, so that they can be hidden/shown when animation starts. * They're only added if there is at least one offscreen app. */ private void addAllDimLayersToTransition(@NonNull TransitionInfo info, boolean show) { if (!mSplitState.currentStateSupportsOffscreenApps()) { return; } if (Flags.enableFlexibleSplit()) { List<StageTaskListener> stages = mStageOrderOperator.getActiveStages(); for (int i = 0; i < stages.size(); i++) { Loading @@ -4008,7 +4011,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSplitState.getCurrentLayout().get(i).roundOut(mTempRect1); addDimLayerToTransition(info, show, stage, mTempRect1); } } else { } else if (enableFlexibleTwoAppSplit()) { addDimLayerToTransition(info, show, mMainStage, getMainStageBounds()); addDimLayerToTransition(info, show, mSideStage, getSideStageBounds()); } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitState.java +12 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,10 @@ package com.android.wm.shell.common.split; import static com.android.wm.shell.shared.split.SplitScreenConstants.NOT_IN_SPLIT; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_10_90; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_2_90_10; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_3_10_45_45; import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_3_45_45_10; import static com.android.wm.shell.shared.split.SplitScreenConstants.SplitScreenState; import android.graphics.Rect; Loading Loading @@ -62,4 +66,12 @@ public class SplitState { public List<RectF> getCurrentLayout() { return getLayout(mState); } /** @return {@code true} if at least one app is partially offscreen in the current layout. */ public boolean currentStateSupportsOffscreenApps() { return mState == SNAP_TO_2_10_90 || mState == SNAP_TO_2_90_10 || mState == SNAP_TO_3_10_45_45 || mState == SNAP_TO_3_45_45_10; } }
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +11 −8 Original line number Diff line number Diff line Loading @@ -3618,9 +3618,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, finishEnterSplitScreen(finishT); addDividerBarToTransition(info, true /* show */); if (Flags.enableFlexibleTwoAppSplit()) { addAllDimLayersToTransition(info, true /* show */); } return true; } Loading Loading @@ -3871,10 +3869,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } addDividerBarToTransition(info, false /* show */); if (Flags.enableFlexibleTwoAppSplit()) { addAllDimLayersToTransition(info, false /* show */); } } /** Call this when the recents animation canceled during split-screen. */ public void onRecentsInSplitAnimationCanceled() { Loading Loading @@ -3999,8 +3995,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, info.addChange(barChange); } /** Add dim layers to the transition, so that they can be hidden/shown when animation starts. */ /** * Add dim layers to the transition, so that they can be hidden/shown when animation starts. * They're only added if there is at least one offscreen app. */ private void addAllDimLayersToTransition(@NonNull TransitionInfo info, boolean show) { if (!mSplitState.currentStateSupportsOffscreenApps()) { return; } if (Flags.enableFlexibleSplit()) { List<StageTaskListener> stages = mStageOrderOperator.getActiveStages(); for (int i = 0; i < stages.size(); i++) { Loading @@ -4008,7 +4011,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSplitState.getCurrentLayout().get(i).roundOut(mTempRect1); addDimLayerToTransition(info, show, stage, mTempRect1); } } else { } else if (enableFlexibleTwoAppSplit()) { addDimLayerToTransition(info, show, mMainStage, getMainStageBounds()); addDimLayerToTransition(info, show, mSideStage, getSideStageBounds()); } Loading