Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97fdee39 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Update layout direction if ViewRoot is preserved" into tm-qpr-dev am: 3c282790

parents 8c076e32 3c282790
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -1102,7 +1102,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() {
@@ -5398,13 +5398,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
@@ -5418,6 +5412,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).
     */