From c91318ace9919f51ad91861178e593f5bbb39a0f Mon Sep 17 00:00:00 2001 From: Andrey Epin Date: Thu, 26 May 2022 16:05:00 -0700 Subject: [PATCH] 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 --- .../com/android/internal/widget/ResolverDrawerLayout.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/java/com/android/internal/widget/ResolverDrawerLayout.java b/core/java/com/android/internal/widget/ResolverDrawerLayout.java index 90eeabb47e9aa..1cdc10866f2c2 100644 --- a/core/java/com/android/internal/widget/ResolverDrawerLayout.java +++ b/core/java/com/android/internal/widget/ResolverDrawerLayout.java @@ -929,7 +929,7 @@ public class ResolverDrawerLayout extends ViewGroup { // Single-use layout; just ignore the mode and use available space. // Clamp to maxWidth. if (mMaxWidth >= 0) { - widthSize = Math.min(widthSize, mMaxWidth); + widthSize = Math.min(widthSize, mMaxWidth + getPaddingLeft() + getPaddingRight()); } final int widthSpec = MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY); @@ -1008,8 +1008,9 @@ public class ResolverDrawerLayout extends ViewGroup { View indicatorHost = null; int ypos = mTopOffset; - int leftEdge = getPaddingLeft(); - int rightEdge = width - getPaddingRight(); + final int leftEdge = getPaddingLeft(); + final int rightEdge = width - getPaddingRight(); + final int widthAvailable = rightEdge - leftEdge; final int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { @@ -1030,7 +1031,6 @@ public class ResolverDrawerLayout extends ViewGroup { final int bottom = top + child.getMeasuredHeight(); final int childWidth = child.getMeasuredWidth(); - final int widthAvailable = rightEdge - leftEdge; final int left = leftEdge + (widthAvailable - childWidth) / 2; final int right = left + childWidth;