diff options
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 1e2b241fbb51..b2b5f1356273 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1101,7 +1101,7 @@ public final class ViewRootImpl implements ViewParent, // Update the last resource config in case the resource configuration was changed while // activity relaunched. - mLastConfigurationFromResources.setTo(getConfiguration()); + updateLastConfigurationFromResources(getConfiguration()); } private Configuration getConfiguration() { @@ -5424,13 +5424,7 @@ public final class ViewRootImpl implements ViewParent, // Update the display with new DisplayAdjustments. updateInternalDisplay(mDisplay.getDisplayId(), localResources); - final int lastLayoutDirection = mLastConfigurationFromResources.getLayoutDirection(); - final int currentLayoutDirection = config.getLayoutDirection(); - mLastConfigurationFromResources.setTo(config); - if (lastLayoutDirection != currentLayoutDirection - && mViewLayoutDirectionInitial == View.LAYOUT_DIRECTION_INHERIT) { - mView.setLayoutDirection(currentLayoutDirection); - } + updateLastConfigurationFromResources(config); mView.dispatchConfigurationChanged(config); // We could have gotten this {@link Configuration} update after we called @@ -5444,6 +5438,17 @@ public final class ViewRootImpl implements ViewParent, updateForceDarkMode(); } + private void updateLastConfigurationFromResources(Configuration resConfig) { + final int lastLayoutDirection = mLastConfigurationFromResources.getLayoutDirection(); + final int currentLayoutDirection = resConfig.getLayoutDirection(); + mLastConfigurationFromResources.setTo(resConfig); + // Update layout direction in case the language or screen layout is changed. + if (lastLayoutDirection != currentLayoutDirection && mView != null + && mViewLayoutDirectionInitial == View.LAYOUT_DIRECTION_INHERIT) { + mView.setLayoutDirection(currentLayoutDirection); + } + } + /** * Return true if child is an ancestor of parent, (or equal to the parent). */ |