205 lines
8.8 KiB
Java
205 lines
8.8 KiB
Java
package androidx.appcompat.widget;
|
|
|
|
import android.content.Context;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.appcompat.R;
|
|
import androidx.appcompat.widget.LinearLayoutCompat;
|
|
import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure;
|
|
import androidx.core.view.GravityCompat;
|
|
import androidx.core.view.ViewCompat;
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public class AlertDialogLayout extends LinearLayoutCompat {
|
|
public AlertDialogLayout(@Nullable Context context) {
|
|
super(context);
|
|
}
|
|
|
|
public AlertDialogLayout(@Nullable Context context, @Nullable AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
}
|
|
|
|
private void forceUniformWidth(int i, int i2) {
|
|
int makeMeasureSpec = View.MeasureSpec.makeMeasureSpec(getMeasuredWidth(), BasicMeasure.EXACTLY);
|
|
for (int i3 = 0; i3 < i; i3++) {
|
|
View childAt = getChildAt(i3);
|
|
if (childAt.getVisibility() != 8) {
|
|
LinearLayoutCompat.LayoutParams layoutParams = (LinearLayoutCompat.LayoutParams) childAt.getLayoutParams();
|
|
if (((ViewGroup.MarginLayoutParams) layoutParams).width == -1) {
|
|
int i4 = ((ViewGroup.MarginLayoutParams) layoutParams).height;
|
|
((ViewGroup.MarginLayoutParams) layoutParams).height = childAt.getMeasuredHeight();
|
|
measureChildWithMargins(childAt, makeMeasureSpec, 0, i2, 0);
|
|
((ViewGroup.MarginLayoutParams) layoutParams).height = i4;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private static int resolveMinimumHeight(View view) {
|
|
int minimumHeight = ViewCompat.getMinimumHeight(view);
|
|
if (minimumHeight > 0) {
|
|
return minimumHeight;
|
|
}
|
|
if (view instanceof ViewGroup) {
|
|
ViewGroup viewGroup = (ViewGroup) view;
|
|
if (viewGroup.getChildCount() == 1) {
|
|
return resolveMinimumHeight(viewGroup.getChildAt(0));
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
private void setChildFrame(View view, int i, int i2, int i3, int i4) {
|
|
view.layout(i, i2, i3 + i, i4 + i2);
|
|
}
|
|
|
|
private boolean tryOnMeasure(int i, int i2) {
|
|
int i3;
|
|
int i4;
|
|
int i5;
|
|
int i6;
|
|
int childCount = getChildCount();
|
|
View view = null;
|
|
View view2 = null;
|
|
View view3 = null;
|
|
for (int i7 = 0; i7 < childCount; i7++) {
|
|
View childAt = getChildAt(i7);
|
|
if (childAt.getVisibility() != 8) {
|
|
int id2 = childAt.getId();
|
|
if (id2 == R.id.topPanel) {
|
|
view = childAt;
|
|
} else if (id2 == R.id.buttonPanel) {
|
|
view2 = childAt;
|
|
} else if ((id2 != R.id.contentPanel && id2 != R.id.customPanel) || view3 != null) {
|
|
return false;
|
|
} else {
|
|
view3 = childAt;
|
|
}
|
|
}
|
|
}
|
|
int mode = View.MeasureSpec.getMode(i2);
|
|
int size = View.MeasureSpec.getSize(i2);
|
|
int mode2 = View.MeasureSpec.getMode(i);
|
|
int paddingBottom = getPaddingBottom() + getPaddingTop();
|
|
if (view != null) {
|
|
view.measure(i, 0);
|
|
paddingBottom += view.getMeasuredHeight();
|
|
i3 = View.combineMeasuredStates(0, view.getMeasuredState());
|
|
} else {
|
|
i3 = 0;
|
|
}
|
|
if (view2 != null) {
|
|
view2.measure(i, 0);
|
|
i5 = resolveMinimumHeight(view2);
|
|
i4 = view2.getMeasuredHeight() - i5;
|
|
paddingBottom += i5;
|
|
i3 = View.combineMeasuredStates(i3, view2.getMeasuredState());
|
|
} else {
|
|
i5 = 0;
|
|
i4 = 0;
|
|
}
|
|
if (view3 != null) {
|
|
view3.measure(i, mode == 0 ? 0 : View.MeasureSpec.makeMeasureSpec(Math.max(0, size - paddingBottom), mode));
|
|
i6 = view3.getMeasuredHeight();
|
|
paddingBottom += i6;
|
|
i3 = View.combineMeasuredStates(i3, view3.getMeasuredState());
|
|
} else {
|
|
i6 = 0;
|
|
}
|
|
int i8 = size - paddingBottom;
|
|
if (view2 != null) {
|
|
int i9 = paddingBottom - i5;
|
|
int min = Math.min(i8, i4);
|
|
if (min > 0) {
|
|
i8 -= min;
|
|
i5 += min;
|
|
}
|
|
view2.measure(i, View.MeasureSpec.makeMeasureSpec(i5, BasicMeasure.EXACTLY));
|
|
paddingBottom = i9 + view2.getMeasuredHeight();
|
|
i3 = View.combineMeasuredStates(i3, view2.getMeasuredState());
|
|
}
|
|
if (view3 != null && i8 > 0) {
|
|
view3.measure(i, View.MeasureSpec.makeMeasureSpec(i6 + i8, mode));
|
|
paddingBottom = (paddingBottom - i6) + view3.getMeasuredHeight();
|
|
i3 = View.combineMeasuredStates(i3, view3.getMeasuredState());
|
|
}
|
|
int i10 = 0;
|
|
for (int i11 = 0; i11 < childCount; i11++) {
|
|
View childAt2 = getChildAt(i11);
|
|
if (childAt2.getVisibility() != 8) {
|
|
i10 = Math.max(i10, childAt2.getMeasuredWidth());
|
|
}
|
|
}
|
|
setMeasuredDimension(View.resolveSizeAndState(getPaddingRight() + getPaddingLeft() + i10, i, i3), View.resolveSizeAndState(paddingBottom, i2, 0));
|
|
if (mode2 == 1073741824) {
|
|
return true;
|
|
}
|
|
forceUniformWidth(childCount, i2);
|
|
return true;
|
|
}
|
|
|
|
/* JADX WARNING: Removed duplicated region for block: B:30:0x00a8 */
|
|
@Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.ViewGroup, android.view.View
|
|
public void onLayout(boolean z2, int i, int i2, int i3, int i4) {
|
|
int i5;
|
|
int i6;
|
|
int i7;
|
|
int paddingLeft = getPaddingLeft();
|
|
int i8 = i3 - i;
|
|
int paddingRight = i8 - getPaddingRight();
|
|
int paddingRight2 = (i8 - paddingLeft) - getPaddingRight();
|
|
int measuredHeight = getMeasuredHeight();
|
|
int childCount = getChildCount();
|
|
int gravity = getGravity();
|
|
int i9 = gravity & 112;
|
|
int i10 = gravity & GravityCompat.RELATIVE_HORIZONTAL_GRAVITY_MASK;
|
|
int paddingTop = i9 != 16 ? i9 != 80 ? getPaddingTop() : ((getPaddingTop() + i4) - i2) - measuredHeight : (((i4 - i2) - measuredHeight) / 2) + getPaddingTop();
|
|
Drawable dividerDrawable = getDividerDrawable();
|
|
int intrinsicHeight = dividerDrawable == null ? 0 : dividerDrawable.getIntrinsicHeight();
|
|
for (int i11 = 0; i11 < childCount; i11++) {
|
|
View childAt = getChildAt(i11);
|
|
if (!(childAt == null || childAt.getVisibility() == 8)) {
|
|
int measuredWidth = childAt.getMeasuredWidth();
|
|
int measuredHeight2 = childAt.getMeasuredHeight();
|
|
LinearLayoutCompat.LayoutParams layoutParams = (LinearLayoutCompat.LayoutParams) childAt.getLayoutParams();
|
|
int i12 = layoutParams.gravity;
|
|
if (i12 < 0) {
|
|
i12 = i10;
|
|
}
|
|
int absoluteGravity = GravityCompat.getAbsoluteGravity(i12, ViewCompat.getLayoutDirection(this)) & 7;
|
|
if (absoluteGravity == 1) {
|
|
i7 = ((paddingRight2 - measuredWidth) / 2) + paddingLeft + ((ViewGroup.MarginLayoutParams) layoutParams).leftMargin;
|
|
i6 = ((ViewGroup.MarginLayoutParams) layoutParams).rightMargin;
|
|
} else if (absoluteGravity != 5) {
|
|
i5 = ((ViewGroup.MarginLayoutParams) layoutParams).leftMargin + paddingLeft;
|
|
if (hasDividerBeforeChildAt(i11)) {
|
|
paddingTop += intrinsicHeight;
|
|
}
|
|
int i13 = paddingTop + ((ViewGroup.MarginLayoutParams) layoutParams).topMargin;
|
|
setChildFrame(childAt, i5, i13, measuredWidth, measuredHeight2);
|
|
paddingTop = measuredHeight2 + ((ViewGroup.MarginLayoutParams) layoutParams).bottomMargin + i13;
|
|
} else {
|
|
i7 = paddingRight - measuredWidth;
|
|
i6 = ((ViewGroup.MarginLayoutParams) layoutParams).rightMargin;
|
|
}
|
|
i5 = i7 - i6;
|
|
if (hasDividerBeforeChildAt(i11)) {
|
|
}
|
|
int i13 = paddingTop + ((ViewGroup.MarginLayoutParams) layoutParams).topMargin;
|
|
setChildFrame(childAt, i5, i13, measuredWidth, measuredHeight2);
|
|
paddingTop = measuredHeight2 + ((ViewGroup.MarginLayoutParams) layoutParams).bottomMargin + i13;
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.View
|
|
public void onMeasure(int i, int i2) {
|
|
if (!tryOnMeasure(i, i2)) {
|
|
super.onMeasure(i, i2);
|
|
}
|
|
}
|
|
}
|