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

Commit 5c7a5d08 authored by Romain Guy's avatar Romain Guy Committed by Android (Google) Code Review
Browse files

Merge "Fix how RelativeLayout handles alignParentBottom/Right when dimension...

Merge "Fix how RelativeLayout handles alignParentBottom/Right when dimension is wrap_content. Bug: #2194109."
parents bb4ad6a8 42460ac1
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -291,6 +291,8 @@ public class RelativeLayout extends ViewGroup {
        }        
    }

    // TODO: we need to find another way to implement RelativeLayout
    // This implementation cannot handle every case
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        if (mDirtyHierarchy) {
@@ -438,6 +440,10 @@ public class RelativeLayout extends ViewGroup {
                        final int[] rules = params.getRules();
                        if (rules[CENTER_IN_PARENT] != 0 || rules[CENTER_HORIZONTAL] != 0) {
                            centerHorizontal(child, params, width);
                        } else if (rules[ALIGN_PARENT_RIGHT] != 0) {
                            final int childWidth = child.getMeasuredWidth();
                            params.mLeft = width - mPaddingRight - childWidth;
                            params.mRight = params.mLeft + childWidth;
                        }
                    }
                }
@@ -464,6 +470,10 @@ public class RelativeLayout extends ViewGroup {
                        final int[] rules = params.getRules();
                        if (rules[CENTER_IN_PARENT] != 0 || rules[CENTER_VERTICAL] != 0) {
                            centerVertical(child, params, height);
                        } else if (rules[ALIGN_PARENT_BOTTOM] != 0) {
                            final int childHeight = child.getMeasuredHeight();
                            params.mTop = height - mPaddingBottom - childHeight;
                            params.mBottom = params.mTop + childHeight;
                        }
                    }
                }
@@ -673,7 +683,7 @@ public class RelativeLayout extends ViewGroup {
                params.mRight = params.mLeft + child.getMeasuredWidth();
            }
        }
        return false;
        return rules[ALIGN_PARENT_RIGHT] != 0;
    }

    private boolean positionChildVertical(View child, LayoutParams params, int myHeight,
@@ -702,7 +712,7 @@ public class RelativeLayout extends ViewGroup {
                params.mBottom = params.mTop + child.getMeasuredHeight();
            }
        }
        return false;
        return rules[ALIGN_PARENT_BOTTOM] != 0;
    }

    private void applyHorizontalSizeRules(LayoutParams childParams, int myWidth) {