summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/ViewRootImpl.java21
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).
*/