Loading libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java +10 −3 Original line number Diff line number Diff line Loading @@ -781,11 +781,18 @@ public class BubbleController implements ConfigurationChangeListener, */ private void onStatusBarVisibilityChanged(boolean visible) { if (mStackView != null) { //Checks if the status bar is currently immersive due to Split-Screen mode. final boolean isSplitStatusBarImmersive = mSplitScreenController.get() .map(SplitScreenController::isStatusBarImmersive) .orElse(false); // Hide the stack temporarily if the status bar has been made invisible, and the stack // is collapsed. An expanded stack should remain visible until collapsed. mStackView.setTemporarilyInvisible(!visible && !isStackExpanded()); ProtoLog.d(WM_SHELL_BUBBLES, "onStatusBarVisibilityChanged=%b stackExpanded=%b", visible, isStackExpanded()); mStackView.setTemporarilyInvisible(!visible && !isStackExpanded() && !isSplitStatusBarImmersive); ProtoLog.d(WM_SHELL_BUBBLES, "onStatusBarVisibilityChanged=%b stackExpanded=%b " + "isSplitStatusBarImmersive=%b", visible, isStackExpanded(), isSplitStatusBarImmersive); } } Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java +8 −0 Original line number Diff line number Diff line Loading @@ -1042,6 +1042,14 @@ public class SplitScreenController implements SplitDragPolicy.Starter, } } /** * Returns whether the status bar is in immersive mode. * @return true if the status bar is in immersive mode. */ public boolean isStatusBarImmersive() { return mStageCoordinator.isStatusBarImmersive(); } /** * Return the {@param exitReason} as a string. */ Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitStatusBarHider.kt +3 −2 Original line number Diff line number Diff line Loading @@ -93,6 +93,7 @@ class SplitStatusBarHider( updateStatusBarBehavior(currentSplitState, leftRightSplit, isSplitVisible) } fun isStatusBarImmersive(): Boolean = statusBarImmersiveForSplit /** * Determines if we want to put the status bar in immersive mode or not based on * [currentSplitState], [isLeftRightSplit], and [isSplitVisible]. Loading libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +8 −0 Original line number Diff line number Diff line Loading @@ -4532,6 +4532,14 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } } /** * Returns whether the status bar is in immersive mode. * @return true if the status bar is in immersive mode. */ public boolean isStatusBarImmersive() { return mStatusBarHider.isStatusBarImmersive(); } @NeverCompile @Override public void dump(@NonNull PrintWriter pw, String prefix) { Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java +10 −3 Original line number Diff line number Diff line Loading @@ -781,11 +781,18 @@ public class BubbleController implements ConfigurationChangeListener, */ private void onStatusBarVisibilityChanged(boolean visible) { if (mStackView != null) { //Checks if the status bar is currently immersive due to Split-Screen mode. final boolean isSplitStatusBarImmersive = mSplitScreenController.get() .map(SplitScreenController::isStatusBarImmersive) .orElse(false); // Hide the stack temporarily if the status bar has been made invisible, and the stack // is collapsed. An expanded stack should remain visible until collapsed. mStackView.setTemporarilyInvisible(!visible && !isStackExpanded()); ProtoLog.d(WM_SHELL_BUBBLES, "onStatusBarVisibilityChanged=%b stackExpanded=%b", visible, isStackExpanded()); mStackView.setTemporarilyInvisible(!visible && !isStackExpanded() && !isSplitStatusBarImmersive); ProtoLog.d(WM_SHELL_BUBBLES, "onStatusBarVisibilityChanged=%b stackExpanded=%b " + "isSplitStatusBarImmersive=%b", visible, isStackExpanded(), isSplitStatusBarImmersive); } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java +8 −0 Original line number Diff line number Diff line Loading @@ -1042,6 +1042,14 @@ public class SplitScreenController implements SplitDragPolicy.Starter, } } /** * Returns whether the status bar is in immersive mode. * @return true if the status bar is in immersive mode. */ public boolean isStatusBarImmersive() { return mStageCoordinator.isStatusBarImmersive(); } /** * Return the {@param exitReason} as a string. */ Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitStatusBarHider.kt +3 −2 Original line number Diff line number Diff line Loading @@ -93,6 +93,7 @@ class SplitStatusBarHider( updateStatusBarBehavior(currentSplitState, leftRightSplit, isSplitVisible) } fun isStatusBarImmersive(): Boolean = statusBarImmersiveForSplit /** * Determines if we want to put the status bar in immersive mode or not based on * [currentSplitState], [isLeftRightSplit], and [isSplitVisible]. Loading
libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +8 −0 Original line number Diff line number Diff line Loading @@ -4532,6 +4532,14 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } } /** * Returns whether the status bar is in immersive mode. * @return true if the status bar is in immersive mode. */ public boolean isStatusBarImmersive() { return mStatusBarHider.isStatusBarImmersive(); } @NeverCompile @Override public void dump(@NonNull PrintWriter pw, String prefix) { Loading