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

Commit 8c2e3a41 authored by Fabrice Di Meglio's avatar Fabrice Di Meglio Committed by Android (Google) Code Review
Browse files

Merge "Optimize RTL properties resolution" into jb-mr2-dev

parents faa47b52 09ecb255
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -11749,10 +11749,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    /**
     * Resolve all RTL related properties.
     *
     * @return true if resolution of RTL properties has been done
     *
     * @hide
     */
    public void resolveRtlPropertiesIfNeeded() {
        if (!needRtlPropertiesResolution()) return;
    public boolean resolveRtlPropertiesIfNeeded() {
        if (!needRtlPropertiesResolution()) return false;
        // Order is important here: LayoutDirection MUST be resolved first
        if (!isLayoutDirectionResolved()) {
@@ -11773,6 +11775,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            resolveDrawables();
        }
        onRtlPropertiesChanged(getLayoutDirection());
        return true;
    }
    /**
@@ -11825,6 +11828,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    /**
     * @return true if RTL properties need resolution.
     *
     */
    private boolean needRtlPropertiesResolution() {
        return (mPrivateFlags2 & ALL_RTL_PROPERTIES_RESOLVED) != ALL_RTL_PROPERTIES_RESOLVED;
+11 −7
Original line number Diff line number Diff line
@@ -5453,8 +5453,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
     * @hide
     */
    @Override
    public void resolveRtlPropertiesIfNeeded() {
        super.resolveRtlPropertiesIfNeeded();
    public boolean resolveRtlPropertiesIfNeeded() {
        final boolean result = super.resolveRtlPropertiesIfNeeded();
        // We dont need to resolve the children RTL properties if nothing has changed for the parent
        if (result) {
            int count = getChildCount();
            for (int i = 0; i < count; i++) {
                final View child = getChildAt(i);
@@ -5463,6 +5465,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
                }
            }
        }
        return result;
    }

    /**
     * @hide