Merge "Update divider value when config changed" into tm-qpr-dev am: 61b0628896

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20336906

Change-Id: Iecc14c32e8b2283459b9a8c24d39c5877096f7ac
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Tony Huang
2022-11-02 06:34:41 +00:00
committed by Automerger Merge Worker

View File

@@ -86,9 +86,9 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
private static final int FLING_ENTER_DURATION = 350; private static final int FLING_ENTER_DURATION = 350;
private static final int FLING_EXIT_DURATION = 350; private static final int FLING_EXIT_DURATION = 350;
private final int mDividerWindowWidth; private int mDividerWindowWidth;
private final int mDividerInsets; private int mDividerInsets;
private final int mDividerSize; private int mDividerSize;
private final Rect mTempRect = new Rect(); private final Rect mTempRect = new Rect();
private final Rect mRootBounds = new Rect(); private final Rect mRootBounds = new Rect();
@@ -131,6 +131,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
mContext = context.createConfigurationContext(configuration); mContext = context.createConfigurationContext(configuration);
mOrientation = configuration.orientation; mOrientation = configuration.orientation;
mRotation = configuration.windowConfiguration.getRotation(); mRotation = configuration.windowConfiguration.getRotation();
mDensity = configuration.densityDpi;
mSplitLayoutHandler = splitLayoutHandler; mSplitLayoutHandler = splitLayoutHandler;
mDisplayImeController = displayImeController; mDisplayImeController = displayImeController;
mSplitWindowManager = new SplitWindowManager(windowName, mContext, configuration, mSplitWindowManager = new SplitWindowManager(windowName, mContext, configuration,
@@ -139,24 +140,22 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
mImePositionProcessor = new ImePositionProcessor(mContext.getDisplayId()); mImePositionProcessor = new ImePositionProcessor(mContext.getDisplayId());
mSurfaceEffectPolicy = new ResizingEffectPolicy(parallaxType); mSurfaceEffectPolicy = new ResizingEffectPolicy(parallaxType);
final Resources resources = context.getResources(); updateDividerConfig(mContext);
mDividerSize = resources.getDimensionPixelSize(R.dimen.split_divider_bar_width);
mDividerInsets = getDividerInsets(resources, context.getDisplay());
mDividerWindowWidth = mDividerSize + 2 * mDividerInsets;
mRootBounds.set(configuration.windowConfiguration.getBounds()); mRootBounds.set(configuration.windowConfiguration.getBounds());
mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null); mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null);
resetDividerPosition(); resetDividerPosition();
mDimNonImeSide = resources.getBoolean(R.bool.config_dimNonImeAttachedSide); mDimNonImeSide = mContext.getResources().getBoolean(R.bool.config_dimNonImeAttachedSide);
updateInvisibleRect(); 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( final int dividerInset = resources.getDimensionPixelSize(
com.android.internal.R.dimen.docked_stack_divider_insets); com.android.internal.R.dimen.docked_stack_divider_insets);
int radius = 0; int radius = 0;
RoundedCorner corner = display.getRoundedCorner(RoundedCorner.POSITION_TOP_LEFT); RoundedCorner corner = display.getRoundedCorner(RoundedCorner.POSITION_TOP_LEFT);
radius = corner != null ? Math.max(radius, corner.getRadius()) : radius; radius = corner != null ? Math.max(radius, corner.getRadius()) : radius;
@@ -167,7 +166,9 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
corner = display.getRoundedCorner(RoundedCorner.POSITION_BOTTOM_LEFT); corner = display.getRoundedCorner(RoundedCorner.POSITION_BOTTOM_LEFT);
radius = corner != null ? Math.max(radius, corner.getRadius()) : radius; 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. */ /** Gets bounds of the primary split with screen based coordinate. */
@@ -309,6 +310,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
mRotation = rotation; mRotation = rotation;
mDensity = density; mDensity = density;
mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null); mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null);
updateDividerConfig(mContext);
initDividerPosition(mTempRect); initDividerPosition(mTempRect);
updateInvisibleRect(); updateInvisibleRect();