Merge "Update context object if split bounds changed" into tm-d1-dev

This commit is contained in:
Jeff Chang
2022-06-16 05:25:24 +00:00
committed by Android (Google) Code Review

View File

@@ -211,24 +211,24 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
/** Applies new configuration, returns {@code false} if there's no effect to the layout. */ /** Applies new configuration, returns {@code false} if there's no effect to the layout. */
public boolean updateConfiguration(Configuration configuration) { public boolean updateConfiguration(Configuration configuration) {
// Always update configuration after orientation changed to make sure to render divider bar
// with proper resources that matching screen orientation.
final int orientation = configuration.orientation;
if (mOrientation != orientation) {
mContext = mContext.createConfigurationContext(configuration);
mSplitWindowManager.setConfiguration(configuration);
mOrientation = orientation;
}
// Update the split bounds when necessary. Besides root bounds changed, split bounds need to // Update the split bounds when necessary. Besides root bounds changed, split bounds need to
// be updated when the rotation changed to cover the case that users rotated the screen 180 // be updated when the rotation changed to cover the case that users rotated the screen 180
// degrees. // degrees.
// Make sure to render the divider bar with proper resources that matching the screen
// orientation.
final int rotation = configuration.windowConfiguration.getRotation(); final int rotation = configuration.windowConfiguration.getRotation();
final Rect rootBounds = configuration.windowConfiguration.getBounds(); final Rect rootBounds = configuration.windowConfiguration.getBounds();
if (mRotation == rotation && mRootBounds.equals(rootBounds)) { final int orientation = configuration.orientation;
if (mOrientation == orientation
&& mRotation == rotation
&& mRootBounds.equals(rootBounds)) {
return false; return false;
} }
mContext = mContext.createConfigurationContext(configuration);
mSplitWindowManager.setConfiguration(configuration);
mOrientation = orientation;
mTempRect.set(mRootBounds); mTempRect.set(mRootBounds);
mRootBounds.set(rootBounds); mRootBounds.set(rootBounds);
mRotation = rotation; mRotation = rotation;