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

Commit c91318ac authored by Andrey Epin's avatar Andrey Epin
Browse files

Fix ResolverDrawerLayout child measurement

ResoverDrawerLayout didn't take into account its horizontal paddints
when measured its children.
Plus a trivial refactoring.

Fix: 223775954
Test: Manual test: open Chooser in landscape mode on a phone with
3-button navigation.

Change-Id: Ia4835a2ddb52bff4ba36597dea3a3d7bf83967aa
parent cb417881
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -929,7 +929,7 @@ public class ResolverDrawerLayout extends ViewGroup {
        // Single-use layout; just ignore the mode and use available space.
        // Single-use layout; just ignore the mode and use available space.
        // Clamp to maxWidth.
        // Clamp to maxWidth.
        if (mMaxWidth >= 0) {
        if (mMaxWidth >= 0) {
            widthSize = Math.min(widthSize, mMaxWidth);
            widthSize = Math.min(widthSize, mMaxWidth + getPaddingLeft() + getPaddingRight());
        }
        }


        final int widthSpec = MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY);
        final int widthSpec = MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY);
@@ -1008,8 +1008,9 @@ public class ResolverDrawerLayout extends ViewGroup {
        View indicatorHost = null;
        View indicatorHost = null;


        int ypos = mTopOffset;
        int ypos = mTopOffset;
        int leftEdge = getPaddingLeft();
        final int leftEdge = getPaddingLeft();
        int rightEdge = width - getPaddingRight();
        final int rightEdge = width - getPaddingRight();
        final int widthAvailable = rightEdge - leftEdge;


        final int childCount = getChildCount();
        final int childCount = getChildCount();
        for (int i = 0; i < childCount; i++) {
        for (int i = 0; i < childCount; i++) {
@@ -1030,7 +1031,6 @@ public class ResolverDrawerLayout extends ViewGroup {
            final int bottom = top + child.getMeasuredHeight();
            final int bottom = top + child.getMeasuredHeight();


            final int childWidth = child.getMeasuredWidth();
            final int childWidth = child.getMeasuredWidth();
            final int widthAvailable = rightEdge - leftEdge;
            final int left = leftEdge + (widthAvailable - childWidth) / 2;
            final int left = leftEdge + (widthAvailable - childWidth) / 2;
            final int right = left + childWidth;
            final int right = left + childWidth;