diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java index 2832c553c20c8..9a2ec15238a76 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java @@ -717,6 +717,10 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange return bounds.width() > bounds.height(); } + public boolean isDensityChanged(int densityDpi) { + return mDensity != densityDpi; + } + /** * Return if this layout is landscape. */ 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 fcea9ad420bd1..ebf464ce0c006 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 @@ -2175,6 +2175,14 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, return; } mDisplayLayout.set(mDisplayController.getDisplayLayout(displayId)); + + if (mSplitLayout != null && mSplitLayout.isDensityChanged(newConfig.densityDpi) + && mMainStage.isActive() + && mSplitLayout.updateConfiguration(newConfig) + && ENABLE_SHELL_TRANSITIONS) { + mSplitLayout.update(null /* t */); + onLayoutSizeChanged(mSplitLayout); + } } void updateSurfaces(SurfaceControl.Transaction transaction) {