Merge "Update layout direction if ViewRoot is preserved" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3c282790e4
@@ -1102,7 +1102,7 @@ public final class ViewRootImpl implements ViewParent,
|
|||||||
|
|
||||||
// Update the last resource config in case the resource configuration was changed while
|
// Update the last resource config in case the resource configuration was changed while
|
||||||
// activity relaunched.
|
// activity relaunched.
|
||||||
mLastConfigurationFromResources.setTo(getConfiguration());
|
updateLastConfigurationFromResources(getConfiguration());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Configuration getConfiguration() {
|
private Configuration getConfiguration() {
|
||||||
@@ -5396,13 +5396,7 @@ public final class ViewRootImpl implements ViewParent,
|
|||||||
// Update the display with new DisplayAdjustments.
|
// Update the display with new DisplayAdjustments.
|
||||||
updateInternalDisplay(mDisplay.getDisplayId(), localResources);
|
updateInternalDisplay(mDisplay.getDisplayId(), localResources);
|
||||||
|
|
||||||
final int lastLayoutDirection = mLastConfigurationFromResources.getLayoutDirection();
|
updateLastConfigurationFromResources(config);
|
||||||
final int currentLayoutDirection = config.getLayoutDirection();
|
|
||||||
mLastConfigurationFromResources.setTo(config);
|
|
||||||
if (lastLayoutDirection != currentLayoutDirection
|
|
||||||
&& mViewLayoutDirectionInitial == View.LAYOUT_DIRECTION_INHERIT) {
|
|
||||||
mView.setLayoutDirection(currentLayoutDirection);
|
|
||||||
}
|
|
||||||
mView.dispatchConfigurationChanged(config);
|
mView.dispatchConfigurationChanged(config);
|
||||||
|
|
||||||
// We could have gotten this {@link Configuration} update after we called
|
// We could have gotten this {@link Configuration} update after we called
|
||||||
@@ -5416,6 +5410,17 @@ public final class ViewRootImpl implements ViewParent,
|
|||||||
updateForceDarkMode();
|
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).
|
* Return true if child is an ancestor of parent, (or equal to the parent).
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user