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();  |