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

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

Change-Id: I5a49f69e880c025b324e8afc37f0fe40294ee823
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jeff Chang
2022-06-16 05:51:39 +00:00
committed by Automerger Merge Worker

View File

@@ -216,24 +216,24 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
/** Applies new configuration, returns {@code false} if there's no effect to the layout. */
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
// be updated when the rotation changed to cover the case that users rotated the screen 180
// degrees.
// Make sure to render the divider bar with proper resources that matching the screen
// orientation.
final int rotation = configuration.windowConfiguration.getRotation();
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;
}
mContext = mContext.createConfigurationContext(configuration);
mSplitWindowManager.setConfiguration(configuration);
mOrientation = orientation;
mTempRect.set(mRootBounds);
mRootBounds.set(rootBounds);
mRotation = rotation;