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

Commit 4c95bfd5 authored by Fabrice Di Meglio's avatar Fabrice Di Meglio Committed by Android Git Automerger
Browse files

am 39b0c29e: am ec139240: Merge "Fix bug #7325234 LayoutParams are not...

am 39b0c29e: am ec139240: Merge "Fix bug #7325234 LayoutParams are not resolved correctly (Settings apps looks broken on Manta in Arabic)" into jb-mr1-dev

* commit '39b0c29e':
  Fix bug #7325234 LayoutParams are not resolved correctly (Settings apps looks broken on Manta in Arabic)
parents ef36a549 39b0c29e
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -4817,6 +4817,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
            int parentWidthMeasureSpec, int widthUsed,
            int parentWidthMeasureSpec, int widthUsed,
            int parentHeightMeasureSpec, int heightUsed) {
            int parentHeightMeasureSpec, int heightUsed) {
        final MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams();
        final MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams();
        final int layoutDirection = getLayoutDirection();
        lp.resolveLayoutDirection(layoutDirection);


        final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec,
        final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec,
                mPaddingLeft + mPaddingRight + lp.leftMargin + lp.rightMargin
                mPaddingLeft + mPaddingRight + lp.leftMargin + lp.rightMargin
+5 −0
Original line number Original line Diff line number Diff line
@@ -304,11 +304,16 @@ public class FrameLayout extends ViewGroup {
        int maxWidth = 0;
        int maxWidth = 0;
        int childState = 0;
        int childState = 0;


        final int layoutDirection = getLayoutDirection();

        for (int i = 0; i < count; i++) {
        for (int i = 0; i < count; i++) {
            final View child = getChildAt(i);
            final View child = getChildAt(i);
            if (mMeasureAllChildren || child.getVisibility() != GONE) {
            if (mMeasureAllChildren || child.getVisibility() != GONE) {
                measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureSpec, 0);
                measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureSpec, 0);
                // measureChildWithMargins() has triggered layout params resolution, so no need
                // to do it now
                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
                final LayoutParams lp = (LayoutParams) child.getLayoutParams();

                maxWidth = Math.max(maxWidth,
                maxWidth = Math.max(maxWidth,
                        child.getMeasuredWidth() + lp.leftMargin + lp.rightMargin);
                        child.getMeasuredWidth() + lp.leftMargin + lp.rightMargin);
                maxHeight = Math.max(maxHeight,
                maxHeight = Math.max(maxHeight,
+3 −2
Original line number Original line Diff line number Diff line
@@ -414,12 +414,15 @@ public class RelativeLayout extends ViewGroup {
        final boolean isWrapContentWidth = widthMode != MeasureSpec.EXACTLY;
        final boolean isWrapContentWidth = widthMode != MeasureSpec.EXACTLY;
        final boolean isWrapContentHeight = heightMode != MeasureSpec.EXACTLY;
        final boolean isWrapContentHeight = heightMode != MeasureSpec.EXACTLY;


        final int layoutDirection = getLayoutDirection();

        View[] views = mSortedHorizontalChildren;
        View[] views = mSortedHorizontalChildren;
        int count = views.length;
        int count = views.length;
        for (int i = 0; i < count; i++) {
        for (int i = 0; i < count; i++) {
            View child = views[i];
            View child = views[i];
            if (child.getVisibility() != GONE) {
            if (child.getVisibility() != GONE) {
                LayoutParams params = (LayoutParams) child.getLayoutParams();
                LayoutParams params = (LayoutParams) child.getLayoutParams();
                params.resolveLayoutDirection(layoutDirection);


                applyHorizontalSizeRules(params, myWidth);
                applyHorizontalSizeRules(params, myWidth);
                measureChildHorizontal(child, params, myWidth, myHeight);
                measureChildHorizontal(child, params, myWidth, myHeight);
@@ -483,8 +486,6 @@ public class RelativeLayout extends ViewGroup {
            }
            }
        }
        }


        final int layoutDirection = getLayoutDirection();

        if (isWrapContentWidth) {
        if (isWrapContentWidth) {
            // Width already has left padding in it since it was calculated by looking at
            // Width already has left padding in it since it was calculated by looking at
            // the right of each child view
            // the right of each child view
+2 −0
Original line number Original line Diff line number Diff line
@@ -329,11 +329,13 @@ public class ScrollView extends FrameLayout {
            return;
            return;
        }
        }


        final int layoutDirection = getLayoutDirection();
        if (getChildCount() > 0) {
        if (getChildCount() > 0) {
            final View child = getChildAt(0);
            final View child = getChildAt(0);
            int height = getMeasuredHeight();
            int height = getMeasuredHeight();
            if (child.getMeasuredHeight() < height) {
            if (child.getMeasuredHeight() < height) {
                final FrameLayout.LayoutParams lp = (LayoutParams) child.getLayoutParams();
                final FrameLayout.LayoutParams lp = (LayoutParams) child.getLayoutParams();
                lp.resolveLayoutDirection(layoutDirection);


                int childWidthMeasureSpec = getChildMeasureSpec(widthMeasureSpec,
                int childWidthMeasureSpec = getChildMeasureSpec(widthMeasureSpec,
                        mPaddingLeft + mPaddingRight, lp.width);
                        mPaddingLeft + mPaddingRight, lp.width);
+4 −1
Original line number Original line Diff line number Diff line
@@ -192,7 +192,9 @@ public class TableRow extends LinearLayout {
            int widthMeasureSpec, int totalWidth,
            int widthMeasureSpec, int totalWidth,
            int heightMeasureSpec, int totalHeight) {
            int heightMeasureSpec, int totalHeight) {
        if (mConstrainedColumnWidths != null) {
        if (mConstrainedColumnWidths != null) {
            final int layoutDirection = getLayoutDirection();
            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
            lp.resolveLayoutDirection(layoutDirection);


            int measureMode = MeasureSpec.EXACTLY;
            int measureMode = MeasureSpec.EXACTLY;
            int columnWidth = 0;
            int columnWidth = 0;
@@ -226,7 +228,6 @@ public class TableRow extends LinearLayout {
                final int childWidth = child.getMeasuredWidth();
                final int childWidth = child.getMeasuredWidth();
                lp.mOffset[LayoutParams.LOCATION_NEXT] = columnWidth - childWidth;
                lp.mOffset[LayoutParams.LOCATION_NEXT] = columnWidth - childWidth;


                final int layoutDirection = getLayoutDirection();
                final int absoluteGravity = Gravity.getAbsoluteGravity(gravity, layoutDirection);
                final int absoluteGravity = Gravity.getAbsoluteGravity(gravity, layoutDirection);
                switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
                switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
                    case Gravity.LEFT:
                    case Gravity.LEFT:
@@ -292,11 +293,13 @@ public class TableRow extends LinearLayout {
        }
        }


        final int[] columnWidths = mColumnWidths;
        final int[] columnWidths = mColumnWidths;
        final int layoutDirection = getLayoutDirection();


        for (int i = 0; i < numColumns; i++) {
        for (int i = 0; i < numColumns; i++) {
            final View child = getVirtualChildAt(i);
            final View child = getVirtualChildAt(i);
            if (child != null && child.getVisibility() != GONE) {
            if (child != null && child.getVisibility() != GONE) {
                final LayoutParams layoutParams = (LayoutParams) child.getLayoutParams();
                final LayoutParams layoutParams = (LayoutParams) child.getLayoutParams();
                layoutParams.resolveLayoutDirection(layoutDirection);
                if (layoutParams.span == 1) {
                if (layoutParams.span == 1) {
                    int spec;
                    int spec;
                    switch (layoutParams.width) {
                    switch (layoutParams.width) {
Loading