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

Commit 828d4ff6 authored by Yigit Boyar's avatar Yigit Boyar Committed by Android (Google) Code Review
Browse files

Merge "Target API check for margin params fix" into nyc-mr1-dev

parents a3c35852 2dd20a61
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -820,6 +820,17 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     */
    static boolean sTextureViewIgnoresDrawableSetters = false;
    /**
     * Prior to N, some ViewGroups would not convert LayoutParams properly even though both extend
     * MarginLayoutParams. For instance, converting LinearLayout.LayoutParams to
     * RelativeLayout.LayoutParams would lose margin information. This is fixed on N but target API
     * check is implemented for backwards compatibility.
     *
     * {@hide}
     */
    protected static boolean sPreserveMarginParamsInLayoutParamConversion;
    /**
     * This view does not want keystrokes. Use with TAKES_FOCUS_MASK when
     * calling setFlags.
@@ -4052,6 +4063,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            // On N+, we throw, but that breaks compatibility with apps that use these methods.
            sTextureViewIgnoresDrawableSetters = targetSdkVersion <= M;
            // Prior to N, we would drop margins in LayoutParam conversions. The fix triggers bugs
            // in apps so we target check it to avoid breaking existing apps.
            sPreserveMarginParamsInLayoutParamConversion = targetSdkVersion >= N;
            sCompatibilityDone = true;
        }
    }
+7 −6
Original line number Diff line number Diff line
@@ -382,14 +382,15 @@ public class FrameLayout extends ViewGroup {

    @Override
    protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp) {
        if (sPreserveMarginParamsInLayoutParamConversion) {
            if (lp instanceof LayoutParams) {
                return new LayoutParams((LayoutParams) lp);
            } else if (lp instanceof MarginLayoutParams) {
                return new LayoutParams((MarginLayoutParams) lp);
        } else {
            return new LayoutParams(lp);
            }
        }
        return new LayoutParams(lp);
    }

    @Override
    public CharSequence getAccessibilityClassName() {
+7 −6
Original line number Diff line number Diff line
@@ -868,14 +868,15 @@ public class GridLayout extends ViewGroup {

    @Override
    protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp) {
        if (sPreserveMarginParamsInLayoutParamConversion) {
            if (lp instanceof LayoutParams) {
                return new LayoutParams((LayoutParams) lp);
            } else if (lp instanceof MarginLayoutParams) {
                return new LayoutParams((MarginLayoutParams) lp);
        } else {
            return new LayoutParams(lp);
            }
        }
        return new LayoutParams(lp);
    }

    // Draw grid

+7 −6
Original line number Diff line number Diff line
@@ -1844,14 +1844,15 @@ public class LinearLayout extends ViewGroup {

    @Override
    protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp) {
        if (sPreserveMarginParamsInLayoutParamConversion) {
            if (lp instanceof LayoutParams) {
                return new LayoutParams((LayoutParams) lp);
            } else if (lp instanceof MarginLayoutParams) {
                return new LayoutParams((MarginLayoutParams) lp);
        } else {
            return new LayoutParams(lp);
            }
        }
        return new LayoutParams(lp);
    }


    // Override to allow type-checking of LayoutParams.
+7 −6
Original line number Diff line number Diff line
@@ -1104,14 +1104,15 @@ public class RelativeLayout extends ViewGroup {

    @Override
    protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp) {
        if (sPreserveMarginParamsInLayoutParamConversion) {
            if (lp instanceof LayoutParams) {
                return new LayoutParams((LayoutParams) lp);
            } else if (lp instanceof MarginLayoutParams) {
                return new LayoutParams((MarginLayoutParams) lp);
        } else {
            return new LayoutParams(lp);
            }
        }
        return new LayoutParams(lp);
    }

    /** @hide */
    @Override