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

Commit a05e4855 authored by android-build-team Robot's avatar android-build-team Robot Committed by android-build-merger
Browse files

Merge "Fix incorrect width of right most action button in notification" into pi-dev am: 68f36d6b

am: b5873c04

Change-Id: I1a4d56119c34446127f83bfb1ed92a90fc578fbf
parents 6f5f796a b5873c04
Loading
Loading
Loading
Loading
+2 −26
Original line number Diff line number Diff line
@@ -77,7 +77,6 @@ public class NotificationActionListLayout extends LinearLayout {
        int otherViews = 0;
        int notGoneChildren = 0;

        View lastNotGoneChild = null;
        for (int i = 0; i < N; i++) {
            View c = getChildAt(i);
            if (c instanceof TextView) {
@@ -87,7 +86,6 @@ public class NotificationActionListLayout extends LinearLayout {
            }
            if (c.getVisibility() != GONE) {
                notGoneChildren++;
                lastNotGoneChild = c;
            }
        }

@@ -107,11 +105,8 @@ public class NotificationActionListLayout extends LinearLayout {
                }
            }
        }
        boolean centerAligned = (mGravity & Gravity.CENTER_HORIZONTAL) != 0;
        boolean singleChildCentered = notGoneChildren == 1 && centerAligned;
        boolean needsRegularMeasurement = notGoneChildren > 1 || singleChildCentered;

        if (needsRegularMeasurement && needRebuild) {
        if (needRebuild) {
            rebuildMeasureOrder(textViews, otherViews);
        }

@@ -123,7 +118,7 @@ public class NotificationActionListLayout extends LinearLayout {
        int usedWidth = 0;

        int measuredChildren = 0;
        for (int i = 0; i < N && needsRegularMeasurement; i++) {
        for (int i = 0; i < N; i++) {
            // Measure shortest children first. To avoid measuring twice, we approximate by looking
            // at the text length.
            View c;
@@ -156,25 +151,6 @@ public class NotificationActionListLayout extends LinearLayout {
            measuredChildren++;
        }

        // Make sure to measure the last child full-width if we didn't use up the entire width,
        // or we didn't measure yet because there's just one child.
        if (lastNotGoneChild != null && !centerAligned && (constrained && usedWidth < innerWidth
                || notGoneChildren == 1)) {
            MarginLayoutParams lp = (MarginLayoutParams) lastNotGoneChild.getLayoutParams();
            if (notGoneChildren > 1) {
                // Need to make room, since we already measured this once.
                usedWidth -= lastNotGoneChild.getMeasuredWidth() + lp.rightMargin + lp.leftMargin;
            }

            int originalWidth = lp.width;
            lp.width = LayoutParams.MATCH_PARENT;
            measureChildWithMargins(lastNotGoneChild, widthMeasureSpec, usedWidth,
                    heightMeasureSpec, 0 /* usedHeight */);
            lp.width = originalWidth;

            usedWidth += lastNotGoneChild.getMeasuredWidth() + lp.rightMargin + lp.leftMargin;
        }

        mTotalWidth = usedWidth + mPaddingRight + mPaddingLeft;
        setMeasuredDimension(resolveSize(getSuggestedMinimumWidth(), widthMeasureSpec),
                resolveSize(getSuggestedMinimumHeight(), heightMeasureSpec));