diff options
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java | 24 |
1 files changed, 13 insertions, 11 deletions
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 c2ad1a98d167..154927812c23 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 @@ -85,9 +85,9 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange private static final int FLING_ENTER_DURATION = 350; private static final int FLING_EXIT_DURATION = 350; - private final int mDividerWindowWidth; - private final int mDividerInsets; - private final int mDividerSize; + private int mDividerWindowWidth; + private int mDividerInsets; + private int mDividerSize; private final Rect mTempRect = new Rect(); private final Rect mRootBounds = new Rect(); @@ -130,6 +130,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mContext = context.createConfigurationContext(configuration); mOrientation = configuration.orientation; mRotation = configuration.windowConfiguration.getRotation(); + mDensity = configuration.densityDpi; mSplitLayoutHandler = splitLayoutHandler; mDisplayImeController = displayImeController; mSplitWindowManager = new SplitWindowManager(windowName, mContext, configuration, @@ -138,24 +139,22 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mImePositionProcessor = new ImePositionProcessor(mContext.getDisplayId()); mSurfaceEffectPolicy = new ResizingEffectPolicy(parallaxType); - final Resources resources = context.getResources(); - mDividerSize = resources.getDimensionPixelSize(R.dimen.split_divider_bar_width); - mDividerInsets = getDividerInsets(resources, context.getDisplay()); - mDividerWindowWidth = mDividerSize + 2 * mDividerInsets; + updateDividerConfig(mContext); mRootBounds.set(configuration.windowConfiguration.getBounds()); mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null); resetDividerPosition(); - mDimNonImeSide = resources.getBoolean(R.bool.config_dimNonImeAttachedSide); + mDimNonImeSide = mContext.getResources().getBoolean(R.bool.config_dimNonImeAttachedSide); updateInvisibleRect(); } - private int getDividerInsets(Resources resources, Display display) { + private void updateDividerConfig(Context context) { + final Resources resources = context.getResources(); + final Display display = context.getDisplay(); final int dividerInset = resources.getDimensionPixelSize( com.android.internal.R.dimen.docked_stack_divider_insets); - int radius = 0; RoundedCorner corner = display.getRoundedCorner(RoundedCorner.POSITION_TOP_LEFT); radius = corner != null ? Math.max(radius, corner.getRadius()) : radius; @@ -166,7 +165,9 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange corner = display.getRoundedCorner(RoundedCorner.POSITION_BOTTOM_LEFT); radius = corner != null ? Math.max(radius, corner.getRadius()) : radius; - return Math.max(dividerInset, radius); + mDividerInsets = Math.max(dividerInset, radius); + mDividerSize = resources.getDimensionPixelSize(R.dimen.split_divider_bar_width); + mDividerWindowWidth = mDividerSize + 2 * mDividerInsets; } /** Gets bounds of the primary split with screen based coordinate. */ @@ -308,6 +309,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange mRotation = rotation; mDensity = density; mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null); + updateDividerConfig(mContext); initDividerPosition(mTempRect); updateInvisibleRect(); |