Merge "Update divider value when config changed" into tm-qpr-dev
This commit is contained in:
@@ -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();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user