package androidx.constraintlayout.widget; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.util.Log; import android.util.SparseArray; import android.util.SparseIntArray; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.solver.Metrics; import androidx.constraintlayout.solver.widgets.ConstraintAnchor; import androidx.constraintlayout.solver.widgets.ConstraintWidget; import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer; import androidx.constraintlayout.solver.widgets.Guideline; import androidx.constraintlayout.solver.widgets.Optimizer; import androidx.constraintlayout.solver.widgets.VirtualLayout; import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure; import androidx.core.internal.view.SupportMenu; import androidx.core.view.ViewCompat; import androidx.exifinterface.media.ExifInterface; import com.discord.widgets.chat.input.autocomplete.AutocompleteViewModel; import java.util.ArrayList; import java.util.HashMap; public class ConstraintLayout extends ViewGroup { private static final boolean DEBUG = false; private static final boolean DEBUG_DRAW_CONSTRAINTS = false; public static final int DESIGN_INFO_ID = 0; private static final boolean MEASURE = false; private static final String TAG = "ConstraintLayout"; private static final boolean USE_CONSTRAINTS_HELPER = true; public static final String VERSION = "ConstraintLayout-2.0.4"; public SparseArray mChildrenByIds = new SparseArray<>(); private ArrayList mConstraintHelpers = new ArrayList<>(4); public ConstraintLayoutStates mConstraintLayoutSpec = null; private ConstraintSet mConstraintSet = null; private int mConstraintSetId = -1; private ConstraintsChangedListener mConstraintsChangedListener; private HashMap mDesignIds = new HashMap<>(); public boolean mDirtyHierarchy = true; private int mLastMeasureHeight = -1; public int mLastMeasureHeightMode = 0; public int mLastMeasureHeightSize = -1; private int mLastMeasureWidth = -1; public int mLastMeasureWidthMode = 0; public int mLastMeasureWidthSize = -1; public ConstraintWidgetContainer mLayoutWidget = new ConstraintWidgetContainer(); private int mMaxHeight = Integer.MAX_VALUE; private int mMaxWidth = Integer.MAX_VALUE; public Measurer mMeasurer = new Measurer(this); private Metrics mMetrics; private int mMinHeight = 0; private int mMinWidth = 0; private int mOnMeasureHeightMeasureSpec = 0; private int mOnMeasureWidthMeasureSpec = 0; private int mOptimizationLevel = 257; private SparseArray mTempMapIdToWidget = new SparseArray<>(); /* renamed from: androidx.constraintlayout.widget.ConstraintLayout$1 reason: invalid class name */ public static /* synthetic */ class AnonymousClass1 { public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintWidget$DimensionBehaviour; static { ConstraintWidget.DimensionBehaviour.values(); int[] iArr = new int[4]; $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintWidget$DimensionBehaviour = iArr; try { iArr[ConstraintWidget.DimensionBehaviour.FIXED.ordinal()] = 1; } catch (NoSuchFieldError unused) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintWidget$DimensionBehaviour[ConstraintWidget.DimensionBehaviour.WRAP_CONTENT.ordinal()] = 2; } catch (NoSuchFieldError unused2) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintWidget$DimensionBehaviour[ConstraintWidget.DimensionBehaviour.MATCH_PARENT.ordinal()] = 3; } catch (NoSuchFieldError unused3) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintWidget$DimensionBehaviour[ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT.ordinal()] = 4; } catch (NoSuchFieldError unused4) { } } } public static class LayoutParams extends ViewGroup.MarginLayoutParams { public static final int BASELINE = 5; public static final int BOTTOM = 4; public static final int CHAIN_PACKED = 2; public static final int CHAIN_SPREAD = 0; public static final int CHAIN_SPREAD_INSIDE = 1; public static final int END = 7; public static final int HORIZONTAL = 0; public static final int LEFT = 1; public static final int MATCH_CONSTRAINT = 0; public static final int MATCH_CONSTRAINT_PERCENT = 2; public static final int MATCH_CONSTRAINT_SPREAD = 0; public static final int MATCH_CONSTRAINT_WRAP = 1; public static final int PARENT_ID = 0; public static final int RIGHT = 2; public static final int START = 6; public static final int TOP = 3; public static final int UNSET = -1; public static final int VERTICAL = 1; public int baselineToBaseline = -1; public int bottomToBottom = -1; public int bottomToTop = -1; public float circleAngle = 0.0f; public int circleConstraint = -1; public int circleRadius = 0; public boolean constrainedHeight = false; public boolean constrainedWidth = false; public String constraintTag = null; public String dimensionRatio = null; public int dimensionRatioSide = 1; public float dimensionRatioValue = 0.0f; public int editorAbsoluteX = -1; public int editorAbsoluteY = -1; public int endToEnd = -1; public int endToStart = -1; public int goneBottomMargin = -1; public int goneEndMargin = -1; public int goneLeftMargin = -1; public int goneRightMargin = -1; public int goneStartMargin = -1; public int goneTopMargin = -1; public int guideBegin = -1; public int guideEnd = -1; public float guidePercent = -1.0f; public boolean helped = false; public float horizontalBias = 0.5f; public int horizontalChainStyle = 0; public boolean horizontalDimensionFixed = true; public float horizontalWeight = -1.0f; public boolean isGuideline = false; public boolean isHelper = false; public boolean isInPlaceholder = false; public boolean isVirtualGroup = false; public int leftToLeft = -1; public int leftToRight = -1; public int matchConstraintDefaultHeight = 0; public int matchConstraintDefaultWidth = 0; public int matchConstraintMaxHeight = 0; public int matchConstraintMaxWidth = 0; public int matchConstraintMinHeight = 0; public int matchConstraintMinWidth = 0; public float matchConstraintPercentHeight = 1.0f; public float matchConstraintPercentWidth = 1.0f; public boolean needsBaseline = false; public int orientation = -1; public int resolveGoneLeftMargin = -1; public int resolveGoneRightMargin = -1; public int resolvedGuideBegin; public int resolvedGuideEnd; public float resolvedGuidePercent; public float resolvedHorizontalBias = 0.5f; public int resolvedLeftToLeft = -1; public int resolvedLeftToRight = -1; public int resolvedRightToLeft = -1; public int resolvedRightToRight = -1; public int rightToLeft = -1; public int rightToRight = -1; public int startToEnd = -1; public int startToStart = -1; public int topToBottom = -1; public int topToTop = -1; public float verticalBias = 0.5f; public int verticalChainStyle = 0; public boolean verticalDimensionFixed = true; public float verticalWeight = -1.0f; public ConstraintWidget widget = new ConstraintWidget(); public static class Table { public static final int ANDROID_ORIENTATION = 1; public static final int LAYOUT_CONSTRAINED_HEIGHT = 28; public static final int LAYOUT_CONSTRAINED_WIDTH = 27; public static final int LAYOUT_CONSTRAINT_BASELINE_CREATOR = 43; public static final int LAYOUT_CONSTRAINT_BASELINE_TO_BASELINE_OF = 16; public static final int LAYOUT_CONSTRAINT_BOTTOM_CREATOR = 42; public static final int LAYOUT_CONSTRAINT_BOTTOM_TO_BOTTOM_OF = 15; public static final int LAYOUT_CONSTRAINT_BOTTOM_TO_TOP_OF = 14; public static final int LAYOUT_CONSTRAINT_CIRCLE = 2; public static final int LAYOUT_CONSTRAINT_CIRCLE_ANGLE = 4; public static final int LAYOUT_CONSTRAINT_CIRCLE_RADIUS = 3; public static final int LAYOUT_CONSTRAINT_DIMENSION_RATIO = 44; public static final int LAYOUT_CONSTRAINT_END_TO_END_OF = 20; public static final int LAYOUT_CONSTRAINT_END_TO_START_OF = 19; public static final int LAYOUT_CONSTRAINT_GUIDE_BEGIN = 5; public static final int LAYOUT_CONSTRAINT_GUIDE_END = 6; public static final int LAYOUT_CONSTRAINT_GUIDE_PERCENT = 7; public static final int LAYOUT_CONSTRAINT_HEIGHT_DEFAULT = 32; public static final int LAYOUT_CONSTRAINT_HEIGHT_MAX = 37; public static final int LAYOUT_CONSTRAINT_HEIGHT_MIN = 36; public static final int LAYOUT_CONSTRAINT_HEIGHT_PERCENT = 38; public static final int LAYOUT_CONSTRAINT_HORIZONTAL_BIAS = 29; public static final int LAYOUT_CONSTRAINT_HORIZONTAL_CHAINSTYLE = 47; public static final int LAYOUT_CONSTRAINT_HORIZONTAL_WEIGHT = 45; public static final int LAYOUT_CONSTRAINT_LEFT_CREATOR = 39; public static final int LAYOUT_CONSTRAINT_LEFT_TO_LEFT_OF = 8; public static final int LAYOUT_CONSTRAINT_LEFT_TO_RIGHT_OF = 9; public static final int LAYOUT_CONSTRAINT_RIGHT_CREATOR = 41; public static final int LAYOUT_CONSTRAINT_RIGHT_TO_LEFT_OF = 10; public static final int LAYOUT_CONSTRAINT_RIGHT_TO_RIGHT_OF = 11; public static final int LAYOUT_CONSTRAINT_START_TO_END_OF = 17; public static final int LAYOUT_CONSTRAINT_START_TO_START_OF = 18; public static final int LAYOUT_CONSTRAINT_TAG = 51; public static final int LAYOUT_CONSTRAINT_TOP_CREATOR = 40; public static final int LAYOUT_CONSTRAINT_TOP_TO_BOTTOM_OF = 13; public static final int LAYOUT_CONSTRAINT_TOP_TO_TOP_OF = 12; public static final int LAYOUT_CONSTRAINT_VERTICAL_BIAS = 30; public static final int LAYOUT_CONSTRAINT_VERTICAL_CHAINSTYLE = 48; public static final int LAYOUT_CONSTRAINT_VERTICAL_WEIGHT = 46; public static final int LAYOUT_CONSTRAINT_WIDTH_DEFAULT = 31; public static final int LAYOUT_CONSTRAINT_WIDTH_MAX = 34; public static final int LAYOUT_CONSTRAINT_WIDTH_MIN = 33; public static final int LAYOUT_CONSTRAINT_WIDTH_PERCENT = 35; public static final int LAYOUT_EDITOR_ABSOLUTEX = 49; public static final int LAYOUT_EDITOR_ABSOLUTEY = 50; public static final int LAYOUT_GONE_MARGIN_BOTTOM = 24; public static final int LAYOUT_GONE_MARGIN_END = 26; public static final int LAYOUT_GONE_MARGIN_LEFT = 21; public static final int LAYOUT_GONE_MARGIN_RIGHT = 23; public static final int LAYOUT_GONE_MARGIN_START = 25; public static final int LAYOUT_GONE_MARGIN_TOP = 22; public static final int UNUSED = 0; public static final SparseIntArray map; static { SparseIntArray sparseIntArray = new SparseIntArray(); map = sparseIntArray; sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintLeft_toLeftOf, 8); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintLeft_toRightOf, 9); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintRight_toLeftOf, 10); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintRight_toRightOf, 11); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintTop_toTopOf, 12); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintTop_toBottomOf, 13); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintBottom_toTopOf, 14); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintBottom_toBottomOf, 15); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintBaseline_toBaselineOf, 16); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintCircle, 2); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintCircleRadius, 3); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintCircleAngle, 4); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_editor_absoluteX, 49); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_editor_absoluteY, 50); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintGuide_begin, 5); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintGuide_end, 6); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintGuide_percent, 7); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_android_orientation, 1); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintStart_toEndOf, 17); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintStart_toStartOf, 18); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintEnd_toStartOf, 19); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintEnd_toEndOf, 20); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_goneMarginLeft, 21); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_goneMarginTop, 22); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_goneMarginRight, 23); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_goneMarginBottom, 24); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_goneMarginStart, 25); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_goneMarginEnd, 26); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintHorizontal_bias, 29); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintVertical_bias, 30); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintDimensionRatio, 44); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintHorizontal_weight, 45); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintVertical_weight, 46); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintHorizontal_chainStyle, 47); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintVertical_chainStyle, 48); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constrainedWidth, 27); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constrainedHeight, 28); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintWidth_default, 31); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintHeight_default, 32); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintWidth_min, 33); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintWidth_max, 34); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintWidth_percent, 35); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintHeight_min, 36); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintHeight_max, 37); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintHeight_percent, 38); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintLeft_creator, 39); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintTop_creator, 40); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintRight_creator, 41); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintBottom_creator, 42); sparseIntArray.append(R.styleable.ConstraintLayout_Layout_layout_constraintBaseline_creator, 43); map.append(R.styleable.ConstraintLayout_Layout_layout_constraintTag, 51); } private Table() { } } public LayoutParams(int i, int i2) { super(i, i2); } public LayoutParams(Context context, AttributeSet attributeSet) { super(context, attributeSet); int i; TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.ConstraintLayout_Layout); int indexCount = obtainStyledAttributes.getIndexCount(); for (int i2 = 0; i2 < indexCount; i2++) { int index = obtainStyledAttributes.getIndex(i2); int i3 = Table.map.get(index); switch (i3) { case 1: this.orientation = obtainStyledAttributes.getInt(index, this.orientation); break; case 2: int resourceId = obtainStyledAttributes.getResourceId(index, this.circleConstraint); this.circleConstraint = resourceId; if (resourceId == -1) { this.circleConstraint = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 3: this.circleRadius = obtainStyledAttributes.getDimensionPixelSize(index, this.circleRadius); break; case 4: float f = obtainStyledAttributes.getFloat(index, this.circleAngle) % 360.0f; this.circleAngle = f; if (f < 0.0f) { this.circleAngle = (360.0f - f) % 360.0f; break; } else { break; } case 5: this.guideBegin = obtainStyledAttributes.getDimensionPixelOffset(index, this.guideBegin); break; case 6: this.guideEnd = obtainStyledAttributes.getDimensionPixelOffset(index, this.guideEnd); break; case 7: this.guidePercent = obtainStyledAttributes.getFloat(index, this.guidePercent); break; case 8: int resourceId2 = obtainStyledAttributes.getResourceId(index, this.leftToLeft); this.leftToLeft = resourceId2; if (resourceId2 == -1) { this.leftToLeft = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 9: int resourceId3 = obtainStyledAttributes.getResourceId(index, this.leftToRight); this.leftToRight = resourceId3; if (resourceId3 == -1) { this.leftToRight = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 10: int resourceId4 = obtainStyledAttributes.getResourceId(index, this.rightToLeft); this.rightToLeft = resourceId4; if (resourceId4 == -1) { this.rightToLeft = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 11: int resourceId5 = obtainStyledAttributes.getResourceId(index, this.rightToRight); this.rightToRight = resourceId5; if (resourceId5 == -1) { this.rightToRight = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 12: int resourceId6 = obtainStyledAttributes.getResourceId(index, this.topToTop); this.topToTop = resourceId6; if (resourceId6 == -1) { this.topToTop = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 13: int resourceId7 = obtainStyledAttributes.getResourceId(index, this.topToBottom); this.topToBottom = resourceId7; if (resourceId7 == -1) { this.topToBottom = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 14: int resourceId8 = obtainStyledAttributes.getResourceId(index, this.bottomToTop); this.bottomToTop = resourceId8; if (resourceId8 == -1) { this.bottomToTop = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 15: int resourceId9 = obtainStyledAttributes.getResourceId(index, this.bottomToBottom); this.bottomToBottom = resourceId9; if (resourceId9 == -1) { this.bottomToBottom = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 16: int resourceId10 = obtainStyledAttributes.getResourceId(index, this.baselineToBaseline); this.baselineToBaseline = resourceId10; if (resourceId10 == -1) { this.baselineToBaseline = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 17: int resourceId11 = obtainStyledAttributes.getResourceId(index, this.startToEnd); this.startToEnd = resourceId11; if (resourceId11 == -1) { this.startToEnd = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 18: int resourceId12 = obtainStyledAttributes.getResourceId(index, this.startToStart); this.startToStart = resourceId12; if (resourceId12 == -1) { this.startToStart = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 19: int resourceId13 = obtainStyledAttributes.getResourceId(index, this.endToStart); this.endToStart = resourceId13; if (resourceId13 == -1) { this.endToStart = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 20: int resourceId14 = obtainStyledAttributes.getResourceId(index, this.endToEnd); this.endToEnd = resourceId14; if (resourceId14 == -1) { this.endToEnd = obtainStyledAttributes.getInt(index, -1); break; } else { break; } case 21: this.goneLeftMargin = obtainStyledAttributes.getDimensionPixelSize(index, this.goneLeftMargin); break; case 22: this.goneTopMargin = obtainStyledAttributes.getDimensionPixelSize(index, this.goneTopMargin); break; case 23: this.goneRightMargin = obtainStyledAttributes.getDimensionPixelSize(index, this.goneRightMargin); break; case 24: this.goneBottomMargin = obtainStyledAttributes.getDimensionPixelSize(index, this.goneBottomMargin); break; case 25: this.goneStartMargin = obtainStyledAttributes.getDimensionPixelSize(index, this.goneStartMargin); break; case 26: this.goneEndMargin = obtainStyledAttributes.getDimensionPixelSize(index, this.goneEndMargin); break; case 27: this.constrainedWidth = obtainStyledAttributes.getBoolean(index, this.constrainedWidth); break; case 28: this.constrainedHeight = obtainStyledAttributes.getBoolean(index, this.constrainedHeight); break; case 29: this.horizontalBias = obtainStyledAttributes.getFloat(index, this.horizontalBias); break; case 30: this.verticalBias = obtainStyledAttributes.getFloat(index, this.verticalBias); break; case 31: int i4 = obtainStyledAttributes.getInt(index, 0); this.matchConstraintDefaultWidth = i4; if (i4 == 1) { Log.e(ConstraintLayout.TAG, "layout_constraintWidth_default=\"wrap\" is deprecated.\nUse layout_width=\"WRAP_CONTENT\" and layout_constrainedWidth=\"true\" instead."); break; } else { break; } case 32: int i5 = obtainStyledAttributes.getInt(index, 0); this.matchConstraintDefaultHeight = i5; if (i5 == 1) { Log.e(ConstraintLayout.TAG, "layout_constraintHeight_default=\"wrap\" is deprecated.\nUse layout_height=\"WRAP_CONTENT\" and layout_constrainedHeight=\"true\" instead."); break; } else { break; } case 33: try { this.matchConstraintMinWidth = obtainStyledAttributes.getDimensionPixelSize(index, this.matchConstraintMinWidth); break; } catch (Exception unused) { if (obtainStyledAttributes.getInt(index, this.matchConstraintMinWidth) == -2) { this.matchConstraintMinWidth = -2; break; } else { break; } } case 34: try { this.matchConstraintMaxWidth = obtainStyledAttributes.getDimensionPixelSize(index, this.matchConstraintMaxWidth); break; } catch (Exception unused2) { if (obtainStyledAttributes.getInt(index, this.matchConstraintMaxWidth) == -2) { this.matchConstraintMaxWidth = -2; break; } else { break; } } case 35: this.matchConstraintPercentWidth = Math.max(0.0f, obtainStyledAttributes.getFloat(index, this.matchConstraintPercentWidth)); this.matchConstraintDefaultWidth = 2; break; case 36: try { this.matchConstraintMinHeight = obtainStyledAttributes.getDimensionPixelSize(index, this.matchConstraintMinHeight); break; } catch (Exception unused3) { if (obtainStyledAttributes.getInt(index, this.matchConstraintMinHeight) == -2) { this.matchConstraintMinHeight = -2; break; } else { break; } } case 37: try { this.matchConstraintMaxHeight = obtainStyledAttributes.getDimensionPixelSize(index, this.matchConstraintMaxHeight); break; } catch (Exception unused4) { if (obtainStyledAttributes.getInt(index, this.matchConstraintMaxHeight) == -2) { this.matchConstraintMaxHeight = -2; break; } else { break; } } case 38: this.matchConstraintPercentHeight = Math.max(0.0f, obtainStyledAttributes.getFloat(index, this.matchConstraintPercentHeight)); this.matchConstraintDefaultHeight = 2; break; default: switch (i3) { case 44: String string = obtainStyledAttributes.getString(index); this.dimensionRatio = string; this.dimensionRatioValue = Float.NaN; this.dimensionRatioSide = -1; if (string != null) { int length = string.length(); int indexOf = this.dimensionRatio.indexOf(44); if (indexOf <= 0 || indexOf >= length - 1) { i = 0; } else { String substring = this.dimensionRatio.substring(0, indexOf); if (substring.equalsIgnoreCase(ExifInterface.LONGITUDE_WEST)) { this.dimensionRatioSide = 0; } else if (substring.equalsIgnoreCase("H")) { this.dimensionRatioSide = 1; } i = indexOf + 1; } int indexOf2 = this.dimensionRatio.indexOf(58); if (indexOf2 < 0 || indexOf2 >= length - 1) { String substring2 = this.dimensionRatio.substring(i); if (substring2.length() > 0) { this.dimensionRatioValue = Float.parseFloat(substring2); break; } else { break; } } else { String substring3 = this.dimensionRatio.substring(i, indexOf2); String substring4 = this.dimensionRatio.substring(indexOf2 + 1); if (substring3.length() > 0 && substring4.length() > 0) { try { float parseFloat = Float.parseFloat(substring3); float parseFloat2 = Float.parseFloat(substring4); if (parseFloat > 0.0f && parseFloat2 > 0.0f) { if (this.dimensionRatioSide == 1) { this.dimensionRatioValue = Math.abs(parseFloat2 / parseFloat); break; } else { this.dimensionRatioValue = Math.abs(parseFloat / parseFloat2); break; } } } catch (NumberFormatException unused5) { break; } } } } else { continue; } break; case 45: this.horizontalWeight = obtainStyledAttributes.getFloat(index, this.horizontalWeight); continue; case 46: this.verticalWeight = obtainStyledAttributes.getFloat(index, this.verticalWeight); continue; case 47: this.horizontalChainStyle = obtainStyledAttributes.getInt(index, 0); continue; case 48: this.verticalChainStyle = obtainStyledAttributes.getInt(index, 0); continue; case 49: this.editorAbsoluteX = obtainStyledAttributes.getDimensionPixelOffset(index, this.editorAbsoluteX); continue; case 50: this.editorAbsoluteY = obtainStyledAttributes.getDimensionPixelOffset(index, this.editorAbsoluteY); continue; case 51: this.constraintTag = obtainStyledAttributes.getString(index); continue; } } } obtainStyledAttributes.recycle(); validate(); } public LayoutParams(ViewGroup.LayoutParams layoutParams) { super(layoutParams); } public LayoutParams(LayoutParams layoutParams) { super((ViewGroup.MarginLayoutParams) layoutParams); this.guideBegin = layoutParams.guideBegin; this.guideEnd = layoutParams.guideEnd; this.guidePercent = layoutParams.guidePercent; this.leftToLeft = layoutParams.leftToLeft; this.leftToRight = layoutParams.leftToRight; this.rightToLeft = layoutParams.rightToLeft; this.rightToRight = layoutParams.rightToRight; this.topToTop = layoutParams.topToTop; this.topToBottom = layoutParams.topToBottom; this.bottomToTop = layoutParams.bottomToTop; this.bottomToBottom = layoutParams.bottomToBottom; this.baselineToBaseline = layoutParams.baselineToBaseline; this.circleConstraint = layoutParams.circleConstraint; this.circleRadius = layoutParams.circleRadius; this.circleAngle = layoutParams.circleAngle; this.startToEnd = layoutParams.startToEnd; this.startToStart = layoutParams.startToStart; this.endToStart = layoutParams.endToStart; this.endToEnd = layoutParams.endToEnd; this.goneLeftMargin = layoutParams.goneLeftMargin; this.goneTopMargin = layoutParams.goneTopMargin; this.goneRightMargin = layoutParams.goneRightMargin; this.goneBottomMargin = layoutParams.goneBottomMargin; this.goneStartMargin = layoutParams.goneStartMargin; this.goneEndMargin = layoutParams.goneEndMargin; this.horizontalBias = layoutParams.horizontalBias; this.verticalBias = layoutParams.verticalBias; this.dimensionRatio = layoutParams.dimensionRatio; this.dimensionRatioValue = layoutParams.dimensionRatioValue; this.dimensionRatioSide = layoutParams.dimensionRatioSide; this.horizontalWeight = layoutParams.horizontalWeight; this.verticalWeight = layoutParams.verticalWeight; this.horizontalChainStyle = layoutParams.horizontalChainStyle; this.verticalChainStyle = layoutParams.verticalChainStyle; this.constrainedWidth = layoutParams.constrainedWidth; this.constrainedHeight = layoutParams.constrainedHeight; this.matchConstraintDefaultWidth = layoutParams.matchConstraintDefaultWidth; this.matchConstraintDefaultHeight = layoutParams.matchConstraintDefaultHeight; this.matchConstraintMinWidth = layoutParams.matchConstraintMinWidth; this.matchConstraintMaxWidth = layoutParams.matchConstraintMaxWidth; this.matchConstraintMinHeight = layoutParams.matchConstraintMinHeight; this.matchConstraintMaxHeight = layoutParams.matchConstraintMaxHeight; this.matchConstraintPercentWidth = layoutParams.matchConstraintPercentWidth; this.matchConstraintPercentHeight = layoutParams.matchConstraintPercentHeight; this.editorAbsoluteX = layoutParams.editorAbsoluteX; this.editorAbsoluteY = layoutParams.editorAbsoluteY; this.orientation = layoutParams.orientation; this.horizontalDimensionFixed = layoutParams.horizontalDimensionFixed; this.verticalDimensionFixed = layoutParams.verticalDimensionFixed; this.needsBaseline = layoutParams.needsBaseline; this.isGuideline = layoutParams.isGuideline; this.resolvedLeftToLeft = layoutParams.resolvedLeftToLeft; this.resolvedLeftToRight = layoutParams.resolvedLeftToRight; this.resolvedRightToLeft = layoutParams.resolvedRightToLeft; this.resolvedRightToRight = layoutParams.resolvedRightToRight; this.resolveGoneLeftMargin = layoutParams.resolveGoneLeftMargin; this.resolveGoneRightMargin = layoutParams.resolveGoneRightMargin; this.resolvedHorizontalBias = layoutParams.resolvedHorizontalBias; this.constraintTag = layoutParams.constraintTag; this.widget = layoutParams.widget; } public String getConstraintTag() { return this.constraintTag; } public ConstraintWidget getConstraintWidget() { return this.widget; } public void reset() { ConstraintWidget constraintWidget = this.widget; if (constraintWidget != null) { constraintWidget.reset(); } } /* JADX WARNING: Removed duplicated region for block: B:15:0x004c */ /* JADX WARNING: Removed duplicated region for block: B:18:0x0053 */ /* JADX WARNING: Removed duplicated region for block: B:21:0x005a */ /* JADX WARNING: Removed duplicated region for block: B:24:0x0060 */ /* JADX WARNING: Removed duplicated region for block: B:27:0x0066 */ /* JADX WARNING: Removed duplicated region for block: B:34:0x0078 */ /* JADX WARNING: Removed duplicated region for block: B:35:0x0080 */ @Override // android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.LayoutParams @TargetApi(17) public void resolveLayoutDirection(int i) { int i2; int i3; int i4; int i5; int i6 = ((ViewGroup.MarginLayoutParams) this).leftMargin; int i7 = ((ViewGroup.MarginLayoutParams) this).rightMargin; super.resolveLayoutDirection(i); boolean z2 = false; boolean z3 = 1 == getLayoutDirection(); this.resolvedRightToLeft = -1; this.resolvedRightToRight = -1; this.resolvedLeftToLeft = -1; this.resolvedLeftToRight = -1; this.resolveGoneLeftMargin = -1; this.resolveGoneRightMargin = -1; this.resolveGoneLeftMargin = this.goneLeftMargin; this.resolveGoneRightMargin = this.goneRightMargin; float f = this.horizontalBias; this.resolvedHorizontalBias = f; int i8 = this.guideBegin; this.resolvedGuideBegin = i8; int i9 = this.guideEnd; this.resolvedGuideEnd = i9; float f2 = this.guidePercent; this.resolvedGuidePercent = f2; if (z3) { int i10 = this.startToEnd; if (i10 != -1) { this.resolvedRightToLeft = i10; } else { int i11 = this.startToStart; if (i11 != -1) { this.resolvedRightToRight = i11; } i2 = this.endToStart; if (i2 != -1) { this.resolvedLeftToRight = i2; z2 = true; } i3 = this.endToEnd; if (i3 != -1) { this.resolvedLeftToLeft = i3; z2 = true; } i4 = this.goneStartMargin; if (i4 != -1) { this.resolveGoneRightMargin = i4; } i5 = this.goneEndMargin; if (i5 != -1) { this.resolveGoneLeftMargin = i5; } if (z2) { this.resolvedHorizontalBias = 1.0f - f; } if (this.isGuideline && this.orientation == 1) { if (f2 == -1.0f) { this.resolvedGuidePercent = 1.0f - f2; this.resolvedGuideBegin = -1; this.resolvedGuideEnd = -1; } else if (i8 != -1) { this.resolvedGuideEnd = i8; this.resolvedGuideBegin = -1; this.resolvedGuidePercent = -1.0f; } else if (i9 != -1) { this.resolvedGuideBegin = i9; this.resolvedGuideEnd = -1; this.resolvedGuidePercent = -1.0f; } } } z2 = true; i2 = this.endToStart; if (i2 != -1) { } i3 = this.endToEnd; if (i3 != -1) { } i4 = this.goneStartMargin; if (i4 != -1) { } i5 = this.goneEndMargin; if (i5 != -1) { } if (z2) { } if (f2 == -1.0f) { } } else { int i12 = this.startToEnd; if (i12 != -1) { this.resolvedLeftToRight = i12; } int i13 = this.startToStart; if (i13 != -1) { this.resolvedLeftToLeft = i13; } int i14 = this.endToStart; if (i14 != -1) { this.resolvedRightToLeft = i14; } int i15 = this.endToEnd; if (i15 != -1) { this.resolvedRightToRight = i15; } int i16 = this.goneStartMargin; if (i16 != -1) { this.resolveGoneLeftMargin = i16; } int i17 = this.goneEndMargin; if (i17 != -1) { this.resolveGoneRightMargin = i17; } } if (this.endToStart == -1 && this.endToEnd == -1 && this.startToStart == -1 && this.startToEnd == -1) { int i18 = this.rightToLeft; if (i18 != -1) { this.resolvedRightToLeft = i18; if (((ViewGroup.MarginLayoutParams) this).rightMargin <= 0 && i7 > 0) { ((ViewGroup.MarginLayoutParams) this).rightMargin = i7; } } else { int i19 = this.rightToRight; if (i19 != -1) { this.resolvedRightToRight = i19; if (((ViewGroup.MarginLayoutParams) this).rightMargin <= 0 && i7 > 0) { ((ViewGroup.MarginLayoutParams) this).rightMargin = i7; } } } int i20 = this.leftToLeft; if (i20 != -1) { this.resolvedLeftToLeft = i20; if (((ViewGroup.MarginLayoutParams) this).leftMargin <= 0 && i6 > 0) { ((ViewGroup.MarginLayoutParams) this).leftMargin = i6; return; } return; } int i21 = this.leftToRight; if (i21 != -1) { this.resolvedLeftToRight = i21; if (((ViewGroup.MarginLayoutParams) this).leftMargin <= 0 && i6 > 0) { ((ViewGroup.MarginLayoutParams) this).leftMargin = i6; } } } } public void setWidgetDebugName(String str) { this.widget.setDebugName(str); } public void validate() { this.isGuideline = false; this.horizontalDimensionFixed = true; this.verticalDimensionFixed = true; int i = ((ViewGroup.MarginLayoutParams) this).width; if (i == -2 && this.constrainedWidth) { this.horizontalDimensionFixed = false; if (this.matchConstraintDefaultWidth == 0) { this.matchConstraintDefaultWidth = 1; } } int i2 = ((ViewGroup.MarginLayoutParams) this).height; if (i2 == -2 && this.constrainedHeight) { this.verticalDimensionFixed = false; if (this.matchConstraintDefaultHeight == 0) { this.matchConstraintDefaultHeight = 1; } } if (i == 0 || i == -1) { this.horizontalDimensionFixed = false; if (i == 0 && this.matchConstraintDefaultWidth == 1) { ((ViewGroup.MarginLayoutParams) this).width = -2; this.constrainedWidth = true; } } if (i2 == 0 || i2 == -1) { this.verticalDimensionFixed = false; if (i2 == 0 && this.matchConstraintDefaultHeight == 1) { ((ViewGroup.MarginLayoutParams) this).height = -2; this.constrainedHeight = true; } } if (this.guidePercent != -1.0f || this.guideBegin != -1 || this.guideEnd != -1) { this.isGuideline = true; this.horizontalDimensionFixed = true; this.verticalDimensionFixed = true; if (!(this.widget instanceof Guideline)) { this.widget = new Guideline(); } ((Guideline) this.widget).setOrientation(this.orientation); } } } public class Measurer implements BasicMeasure.Measurer { public ConstraintLayout layout; public int layoutHeightSpec; public int layoutWidthSpec; public int paddingBottom; public int paddingHeight; public int paddingTop; public int paddingWidth; public Measurer(ConstraintLayout constraintLayout) { this.layout = constraintLayout; } private boolean isSimilarSpec(int i, int i2, int i3) { if (i == i2) { return true; } int mode = View.MeasureSpec.getMode(i); View.MeasureSpec.getSize(i); int mode2 = View.MeasureSpec.getMode(i2); int size = View.MeasureSpec.getSize(i2); if (mode2 == 1073741824) { return (mode == Integer.MIN_VALUE || mode == 0) && i3 == size; } return false; } public void captureLayoutInfos(int i, int i2, int i3, int i4, int i5, int i6) { this.paddingTop = i3; this.paddingBottom = i4; this.paddingWidth = i5; this.paddingHeight = i6; this.layoutWidthSpec = i; this.layoutHeightSpec = i2; } @Override // androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure.Measurer public final void didMeasures() { int childCount = this.layout.getChildCount(); for (int i = 0; i < childCount; i++) { View childAt = this.layout.getChildAt(i); if (childAt instanceof Placeholder) { ((Placeholder) childAt).updatePostMeasure(this.layout); } } int size = ConstraintLayout.access$100(this.layout).size(); if (size > 0) { for (int i2 = 0; i2 < size; i2++) { ((ConstraintHelper) ConstraintLayout.access$100(this.layout).get(i2)).updatePostMeasure(this.layout); } } } @Override // androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure.Measurer @SuppressLint({"WrongCall"}) public final void measure(ConstraintWidget constraintWidget, BasicMeasure.Measure measure) { int i; int i2; int i3; int i4; int i5; int i6; int i7; if (constraintWidget != null) { if (constraintWidget.getVisibility() == 8 && !constraintWidget.isInPlaceholder()) { measure.measuredWidth = 0; measure.measuredHeight = 0; measure.measuredBaseline = 0; } else if (constraintWidget.getParent() != null) { ConstraintWidget.DimensionBehaviour dimensionBehaviour = measure.horizontalBehavior; ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = measure.verticalBehavior; int i8 = measure.horizontalDimension; int i9 = measure.verticalDimension; int i10 = this.paddingTop + this.paddingBottom; int i11 = this.paddingWidth; View view = (View) constraintWidget.getCompanionWidget(); int ordinal = dimensionBehaviour.ordinal(); if (ordinal == 0) { i = View.MeasureSpec.makeMeasureSpec(i8, BasicMeasure.EXACTLY); } else if (ordinal == 1) { i = ViewGroup.getChildMeasureSpec(this.layoutWidthSpec, i11, -2); } else if (ordinal != 2) { i = ordinal != 3 ? 0 : ViewGroup.getChildMeasureSpec(this.layoutWidthSpec, constraintWidget.getHorizontalMargin() + i11, -1); } else { i = ViewGroup.getChildMeasureSpec(this.layoutWidthSpec, i11, -2); boolean z2 = constraintWidget.mMatchConstraintDefaultWidth == 1; int i12 = measure.measureStrategy; if (i12 == BasicMeasure.Measure.TRY_GIVEN_DIMENSIONS || i12 == BasicMeasure.Measure.USE_GIVEN_DIMENSIONS) { if (measure.measureStrategy == BasicMeasure.Measure.USE_GIVEN_DIMENSIONS || !z2 || (z2 && (view.getMeasuredHeight() == constraintWidget.getHeight())) || (view instanceof Placeholder) || constraintWidget.isResolvedHorizontally()) { i = View.MeasureSpec.makeMeasureSpec(constraintWidget.getWidth(), BasicMeasure.EXACTLY); } } } int ordinal2 = dimensionBehaviour2.ordinal(); if (ordinal2 == 0) { i2 = View.MeasureSpec.makeMeasureSpec(i9, BasicMeasure.EXACTLY); } else if (ordinal2 == 1) { i2 = ViewGroup.getChildMeasureSpec(this.layoutHeightSpec, i10, -2); } else if (ordinal2 != 2) { i2 = ordinal2 != 3 ? 0 : ViewGroup.getChildMeasureSpec(this.layoutHeightSpec, constraintWidget.getVerticalMargin() + i10, -1); } else { i2 = ViewGroup.getChildMeasureSpec(this.layoutHeightSpec, i10, -2); boolean z3 = constraintWidget.mMatchConstraintDefaultHeight == 1; int i13 = measure.measureStrategy; if (i13 == BasicMeasure.Measure.TRY_GIVEN_DIMENSIONS || i13 == BasicMeasure.Measure.USE_GIVEN_DIMENSIONS) { if (measure.measureStrategy == BasicMeasure.Measure.USE_GIVEN_DIMENSIONS || !z3 || (z3 && (view.getMeasuredWidth() == constraintWidget.getWidth())) || (view instanceof Placeholder) || constraintWidget.isResolvedVertically()) { i2 = View.MeasureSpec.makeMeasureSpec(constraintWidget.getHeight(), BasicMeasure.EXACTLY); } } } ConstraintWidgetContainer constraintWidgetContainer = (ConstraintWidgetContainer) constraintWidget.getParent(); if (constraintWidgetContainer != null && Optimizer.enabled(ConstraintLayout.access$000(ConstraintLayout.this), 256) && view.getMeasuredWidth() == constraintWidget.getWidth() && view.getMeasuredWidth() < constraintWidgetContainer.getWidth() && view.getMeasuredHeight() == constraintWidget.getHeight() && view.getMeasuredHeight() < constraintWidgetContainer.getHeight() && view.getBaseline() == constraintWidget.getBaselineDistance() && !constraintWidget.isMeasureRequested()) { if (isSimilarSpec(constraintWidget.getLastHorizontalMeasureSpec(), i, constraintWidget.getWidth()) && isSimilarSpec(constraintWidget.getLastVerticalMeasureSpec(), i2, constraintWidget.getHeight())) { measure.measuredWidth = constraintWidget.getWidth(); measure.measuredHeight = constraintWidget.getHeight(); measure.measuredBaseline = constraintWidget.getBaselineDistance(); return; } } ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT; boolean z4 = dimensionBehaviour == dimensionBehaviour3; boolean z5 = dimensionBehaviour2 == dimensionBehaviour3; ConstraintWidget.DimensionBehaviour dimensionBehaviour4 = ConstraintWidget.DimensionBehaviour.MATCH_PARENT; boolean z6 = dimensionBehaviour2 == dimensionBehaviour4 || dimensionBehaviour2 == ConstraintWidget.DimensionBehaviour.FIXED; boolean z7 = dimensionBehaviour == dimensionBehaviour4 || dimensionBehaviour == ConstraintWidget.DimensionBehaviour.FIXED; boolean z8 = z4 && constraintWidget.mDimensionRatio > 0.0f; boolean z9 = z5 && constraintWidget.mDimensionRatio > 0.0f; if (view != null) { LayoutParams layoutParams = (LayoutParams) view.getLayoutParams(); int i14 = measure.measureStrategy; if (i14 == BasicMeasure.Measure.TRY_GIVEN_DIMENSIONS || i14 == BasicMeasure.Measure.USE_GIVEN_DIMENSIONS || !z4 || constraintWidget.mMatchConstraintDefaultWidth != 0 || !z5 || constraintWidget.mMatchConstraintDefaultHeight != 0) { if (!(view instanceof VirtualLayout) || !(constraintWidget instanceof VirtualLayout)) { view.measure(i, i2); } else { ((VirtualLayout) view).onMeasure((VirtualLayout) constraintWidget, i, i2); } constraintWidget.setLastMeasureSpec(i, i2); int measuredWidth = view.getMeasuredWidth(); int measuredHeight = view.getMeasuredHeight(); i4 = view.getBaseline(); int i15 = constraintWidget.mMatchConstraintMinWidth; i3 = i15 > 0 ? Math.max(i15, measuredWidth) : measuredWidth; int i16 = constraintWidget.mMatchConstraintMaxWidth; if (i16 > 0) { i3 = Math.min(i16, i3); } int i17 = constraintWidget.mMatchConstraintMinHeight; if (i17 > 0) { i5 = Math.max(i17, measuredHeight); i7 = i; } else { i7 = i; i5 = measuredHeight; } int i18 = constraintWidget.mMatchConstraintMaxHeight; if (i18 > 0) { i5 = Math.min(i18, i5); } if (!Optimizer.enabled(ConstraintLayout.access$000(ConstraintLayout.this), 1)) { if (z8 && z6) { i3 = (int) ((((float) i5) * constraintWidget.mDimensionRatio) + 0.5f); } else if (z9 && z7) { i5 = (int) ((((float) i3) / constraintWidget.mDimensionRatio) + 0.5f); } } if (!(measuredWidth == i3 && measuredHeight == i5)) { int makeMeasureSpec = measuredWidth != i3 ? View.MeasureSpec.makeMeasureSpec(i3, BasicMeasure.EXACTLY) : i7; if (measuredHeight != i5) { i2 = View.MeasureSpec.makeMeasureSpec(i5, BasicMeasure.EXACTLY); } view.measure(makeMeasureSpec, i2); constraintWidget.setLastMeasureSpec(makeMeasureSpec, i2); i3 = view.getMeasuredWidth(); i5 = view.getMeasuredHeight(); i4 = view.getBaseline(); } i6 = -1; } else { i6 = -1; i5 = 0; i4 = 0; i3 = 0; } boolean z10 = i4 != i6; measure.measuredNeedsSolverPass = (i3 == measure.horizontalDimension && i5 == measure.verticalDimension) ? false : true; if (layoutParams.needsBaseline) { z10 = true; } if (!(!z10 || i4 == -1 || constraintWidget.getBaselineDistance() == i4)) { measure.measuredNeedsSolverPass = true; } measure.measuredWidth = i3; measure.measuredHeight = i5; measure.measuredHasBaseline = z10; measure.measuredBaseline = i4; } } } } } public ConstraintLayout(@NonNull Context context) { super(context); init(null, 0, 0); } public ConstraintLayout(@NonNull Context context, @Nullable AttributeSet attributeSet) { super(context, attributeSet); init(attributeSet, 0, 0); } public ConstraintLayout(@NonNull Context context, @Nullable AttributeSet attributeSet, int i) { super(context, attributeSet, i); init(attributeSet, i, 0); } @TargetApi(21) public ConstraintLayout(@NonNull Context context, @Nullable AttributeSet attributeSet, int i, int i2) { super(context, attributeSet, i, i2); init(attributeSet, i, i2); } public static /* synthetic */ int access$000(ConstraintLayout constraintLayout) { return constraintLayout.mOptimizationLevel; } public static /* synthetic */ ArrayList access$100(ConstraintLayout constraintLayout) { return constraintLayout.mConstraintHelpers; } private int getPaddingWidth() { int max = Math.max(0, getPaddingRight()) + Math.max(0, getPaddingLeft()); int max2 = Math.max(0, getPaddingEnd()) + Math.max(0, getPaddingStart()); return max2 > 0 ? max2 : max; } private final ConstraintWidget getTargetWidget(int i) { if (i == 0) { return this.mLayoutWidget; } View view = this.mChildrenByIds.get(i); if (view == null && (view = findViewById(i)) != null && view != this && view.getParent() == this) { onViewAdded(view); } if (view == this) { return this.mLayoutWidget; } if (view == null) { return null; } return ((LayoutParams) view.getLayoutParams()).widget; } private void init(AttributeSet attributeSet, int i, int i2) { this.mLayoutWidget.setCompanionWidget(this); this.mLayoutWidget.setMeasurer(this.mMeasurer); this.mChildrenByIds.put(getId(), this); this.mConstraintSet = null; if (attributeSet != null) { TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(attributeSet, R.styleable.ConstraintLayout_Layout, i, i2); int indexCount = obtainStyledAttributes.getIndexCount(); for (int i3 = 0; i3 < indexCount; i3++) { int index = obtainStyledAttributes.getIndex(i3); if (index == R.styleable.ConstraintLayout_Layout_android_minWidth) { this.mMinWidth = obtainStyledAttributes.getDimensionPixelOffset(index, this.mMinWidth); } else if (index == R.styleable.ConstraintLayout_Layout_android_minHeight) { this.mMinHeight = obtainStyledAttributes.getDimensionPixelOffset(index, this.mMinHeight); } else if (index == R.styleable.ConstraintLayout_Layout_android_maxWidth) { this.mMaxWidth = obtainStyledAttributes.getDimensionPixelOffset(index, this.mMaxWidth); } else if (index == R.styleable.ConstraintLayout_Layout_android_maxHeight) { this.mMaxHeight = obtainStyledAttributes.getDimensionPixelOffset(index, this.mMaxHeight); } else if (index == R.styleable.ConstraintLayout_Layout_layout_optimizationLevel) { this.mOptimizationLevel = obtainStyledAttributes.getInt(index, this.mOptimizationLevel); } else if (index == R.styleable.ConstraintLayout_Layout_layoutDescription) { int resourceId = obtainStyledAttributes.getResourceId(index, 0); if (resourceId != 0) { try { parseLayoutDescription(resourceId); } catch (Resources.NotFoundException unused) { this.mConstraintLayoutSpec = null; } } } else if (index == R.styleable.ConstraintLayout_Layout_constraintSet) { int resourceId2 = obtainStyledAttributes.getResourceId(index, 0); try { ConstraintSet constraintSet = new ConstraintSet(); this.mConstraintSet = constraintSet; constraintSet.load(getContext(), resourceId2); } catch (Resources.NotFoundException unused2) { this.mConstraintSet = null; } this.mConstraintSetId = resourceId2; } } obtainStyledAttributes.recycle(); } this.mLayoutWidget.setOptimizationLevel(this.mOptimizationLevel); } private void markHierarchyDirty() { this.mDirtyHierarchy = true; this.mLastMeasureWidth = -1; this.mLastMeasureHeight = -1; this.mLastMeasureWidthSize = -1; this.mLastMeasureHeightSize = -1; this.mLastMeasureWidthMode = 0; this.mLastMeasureHeightMode = 0; } private void setChildrenConstraints() { boolean isInEditMode = isInEditMode(); int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { ConstraintWidget viewWidget = getViewWidget(getChildAt(i)); if (viewWidget != null) { viewWidget.reset(); } } if (isInEditMode) { for (int i2 = 0; i2 < childCount; i2++) { View childAt = getChildAt(i2); try { String resourceName = getResources().getResourceName(childAt.getId()); setDesignInformation(0, resourceName, Integer.valueOf(childAt.getId())); int indexOf = resourceName.indexOf(47); if (indexOf != -1) { resourceName = resourceName.substring(indexOf + 1); } getTargetWidget(childAt.getId()).setDebugName(resourceName); } catch (Resources.NotFoundException unused) { } } } if (this.mConstraintSetId != -1) { for (int i3 = 0; i3 < childCount; i3++) { View childAt2 = getChildAt(i3); if (childAt2.getId() == this.mConstraintSetId && (childAt2 instanceof Constraints)) { this.mConstraintSet = ((Constraints) childAt2).getConstraintSet(); } } } ConstraintSet constraintSet = this.mConstraintSet; if (constraintSet != null) { constraintSet.applyToInternal(this, true); } this.mLayoutWidget.removeAllChildren(); int size = this.mConstraintHelpers.size(); if (size > 0) { for (int i4 = 0; i4 < size; i4++) { this.mConstraintHelpers.get(i4).updatePreLayout(this); } } for (int i5 = 0; i5 < childCount; i5++) { View childAt3 = getChildAt(i5); if (childAt3 instanceof Placeholder) { ((Placeholder) childAt3).updatePreLayout(this); } } this.mTempMapIdToWidget.clear(); this.mTempMapIdToWidget.put(0, this.mLayoutWidget); this.mTempMapIdToWidget.put(getId(), this.mLayoutWidget); for (int i6 = 0; i6 < childCount; i6++) { View childAt4 = getChildAt(i6); this.mTempMapIdToWidget.put(childAt4.getId(), getViewWidget(childAt4)); } for (int i7 = 0; i7 < childCount; i7++) { View childAt5 = getChildAt(i7); ConstraintWidget viewWidget2 = getViewWidget(childAt5); if (viewWidget2 != null) { LayoutParams layoutParams = (LayoutParams) childAt5.getLayoutParams(); this.mLayoutWidget.add(viewWidget2); applyConstraintsFromLayoutParams(isInEditMode, childAt5, viewWidget2, layoutParams, this.mTempMapIdToWidget); } } } private boolean updateHierarchy() { int childCount = getChildCount(); boolean z2 = false; int i = 0; while (true) { if (i >= childCount) { break; } else if (getChildAt(i).isLayoutRequested()) { z2 = true; break; } else { i++; } } if (z2) { setChildrenConstraints(); } return z2; } @Override // android.view.ViewGroup public void addView(View view, int i, ViewGroup.LayoutParams layoutParams) { super.addView(view, i, layoutParams); } public void applyConstraintsFromLayoutParams(boolean z2, View view, ConstraintWidget constraintWidget, LayoutParams layoutParams, SparseArray sparseArray) { int i; float f; ConstraintWidget constraintWidget2; ConstraintWidget constraintWidget3; ConstraintWidget constraintWidget4; ConstraintWidget constraintWidget5; layoutParams.validate(); layoutParams.helped = false; constraintWidget.setVisibility(view.getVisibility()); if (layoutParams.isInPlaceholder) { constraintWidget.setInPlaceholder(true); constraintWidget.setVisibility(8); } constraintWidget.setCompanionWidget(view); if (view instanceof ConstraintHelper) { ((ConstraintHelper) view).resolveRtl(constraintWidget, this.mLayoutWidget.isRtl()); } if (layoutParams.isGuideline) { Guideline guideline = (Guideline) constraintWidget; int i2 = layoutParams.resolvedGuideBegin; int i3 = layoutParams.resolvedGuideEnd; float f2 = layoutParams.resolvedGuidePercent; if (f2 != -1.0f) { guideline.setGuidePercent(f2); } else if (i2 != -1) { guideline.setGuideBegin(i2); } else if (i3 != -1) { guideline.setGuideEnd(i3); } } else { int i4 = layoutParams.resolvedLeftToLeft; int i5 = layoutParams.resolvedLeftToRight; int i6 = layoutParams.resolvedRightToLeft; int i7 = layoutParams.resolvedRightToRight; int i8 = layoutParams.resolveGoneLeftMargin; int i9 = layoutParams.resolveGoneRightMargin; float f3 = layoutParams.resolvedHorizontalBias; int i10 = layoutParams.circleConstraint; if (i10 != -1) { ConstraintWidget constraintWidget6 = sparseArray.get(i10); if (constraintWidget6 != null) { constraintWidget.connectCircularConstraint(constraintWidget6, layoutParams.circleAngle, layoutParams.circleRadius); } } else { if (i4 != -1) { ConstraintWidget constraintWidget7 = sparseArray.get(i4); if (constraintWidget7 != null) { ConstraintAnchor.Type type = ConstraintAnchor.Type.LEFT; f = f3; constraintWidget.immediateConnect(type, constraintWidget7, type, ((ViewGroup.MarginLayoutParams) layoutParams).leftMargin, i8); } else { f = f3; } } else { f = f3; if (!(i5 == -1 || (constraintWidget5 = sparseArray.get(i5)) == null)) { constraintWidget.immediateConnect(ConstraintAnchor.Type.LEFT, constraintWidget5, ConstraintAnchor.Type.RIGHT, ((ViewGroup.MarginLayoutParams) layoutParams).leftMargin, i8); } } if (i6 != -1) { ConstraintWidget constraintWidget8 = sparseArray.get(i6); if (constraintWidget8 != null) { constraintWidget.immediateConnect(ConstraintAnchor.Type.RIGHT, constraintWidget8, ConstraintAnchor.Type.LEFT, ((ViewGroup.MarginLayoutParams) layoutParams).rightMargin, i9); } } else if (!(i7 == -1 || (constraintWidget4 = sparseArray.get(i7)) == null)) { ConstraintAnchor.Type type2 = ConstraintAnchor.Type.RIGHT; constraintWidget.immediateConnect(type2, constraintWidget4, type2, ((ViewGroup.MarginLayoutParams) layoutParams).rightMargin, i9); } int i11 = layoutParams.topToTop; if (i11 != -1) { ConstraintWidget constraintWidget9 = sparseArray.get(i11); if (constraintWidget9 != null) { ConstraintAnchor.Type type3 = ConstraintAnchor.Type.TOP; constraintWidget.immediateConnect(type3, constraintWidget9, type3, ((ViewGroup.MarginLayoutParams) layoutParams).topMargin, layoutParams.goneTopMargin); } } else { int i12 = layoutParams.topToBottom; if (!(i12 == -1 || (constraintWidget3 = sparseArray.get(i12)) == null)) { constraintWidget.immediateConnect(ConstraintAnchor.Type.TOP, constraintWidget3, ConstraintAnchor.Type.BOTTOM, ((ViewGroup.MarginLayoutParams) layoutParams).topMargin, layoutParams.goneTopMargin); } } int i13 = layoutParams.bottomToTop; if (i13 != -1) { ConstraintWidget constraintWidget10 = sparseArray.get(i13); if (constraintWidget10 != null) { constraintWidget.immediateConnect(ConstraintAnchor.Type.BOTTOM, constraintWidget10, ConstraintAnchor.Type.TOP, ((ViewGroup.MarginLayoutParams) layoutParams).bottomMargin, layoutParams.goneBottomMargin); } } else { int i14 = layoutParams.bottomToBottom; if (!(i14 == -1 || (constraintWidget2 = sparseArray.get(i14)) == null)) { ConstraintAnchor.Type type4 = ConstraintAnchor.Type.BOTTOM; constraintWidget.immediateConnect(type4, constraintWidget2, type4, ((ViewGroup.MarginLayoutParams) layoutParams).bottomMargin, layoutParams.goneBottomMargin); } } int i15 = layoutParams.baselineToBaseline; if (i15 != -1) { View view2 = this.mChildrenByIds.get(i15); ConstraintWidget constraintWidget11 = sparseArray.get(layoutParams.baselineToBaseline); if (!(constraintWidget11 == null || view2 == null || !(view2.getLayoutParams() instanceof LayoutParams))) { LayoutParams layoutParams2 = (LayoutParams) view2.getLayoutParams(); layoutParams.needsBaseline = true; layoutParams2.needsBaseline = true; ConstraintAnchor.Type type5 = ConstraintAnchor.Type.BASELINE; constraintWidget.getAnchor(type5).connect(constraintWidget11.getAnchor(type5), 0, -1, true); constraintWidget.setHasBaseline(true); layoutParams2.widget.setHasBaseline(true); constraintWidget.getAnchor(ConstraintAnchor.Type.TOP).reset(); constraintWidget.getAnchor(ConstraintAnchor.Type.BOTTOM).reset(); } } if (f >= 0.0f) { constraintWidget.setHorizontalBiasPercent(f); } float f4 = layoutParams.verticalBias; if (f4 >= 0.0f) { constraintWidget.setVerticalBiasPercent(f4); } } if (z2 && !((i = layoutParams.editorAbsoluteX) == -1 && layoutParams.editorAbsoluteY == -1)) { constraintWidget.setOrigin(i, layoutParams.editorAbsoluteY); } if (layoutParams.horizontalDimensionFixed) { constraintWidget.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED); constraintWidget.setWidth(((ViewGroup.MarginLayoutParams) layoutParams).width); if (((ViewGroup.MarginLayoutParams) layoutParams).width == -2) { constraintWidget.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.WRAP_CONTENT); } } else if (((ViewGroup.MarginLayoutParams) layoutParams).width == -1) { if (layoutParams.constrainedWidth) { constraintWidget.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT); } else { constraintWidget.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_PARENT); } constraintWidget.getAnchor(ConstraintAnchor.Type.LEFT).mMargin = ((ViewGroup.MarginLayoutParams) layoutParams).leftMargin; constraintWidget.getAnchor(ConstraintAnchor.Type.RIGHT).mMargin = ((ViewGroup.MarginLayoutParams) layoutParams).rightMargin; } else { constraintWidget.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT); constraintWidget.setWidth(0); } if (layoutParams.verticalDimensionFixed) { constraintWidget.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED); constraintWidget.setHeight(((ViewGroup.MarginLayoutParams) layoutParams).height); if (((ViewGroup.MarginLayoutParams) layoutParams).height == -2) { constraintWidget.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.WRAP_CONTENT); } } else if (((ViewGroup.MarginLayoutParams) layoutParams).height == -1) { if (layoutParams.constrainedHeight) { constraintWidget.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT); } else { constraintWidget.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_PARENT); } constraintWidget.getAnchor(ConstraintAnchor.Type.TOP).mMargin = ((ViewGroup.MarginLayoutParams) layoutParams).topMargin; constraintWidget.getAnchor(ConstraintAnchor.Type.BOTTOM).mMargin = ((ViewGroup.MarginLayoutParams) layoutParams).bottomMargin; } else { constraintWidget.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT); constraintWidget.setHeight(0); } constraintWidget.setDimensionRatio(layoutParams.dimensionRatio); constraintWidget.setHorizontalWeight(layoutParams.horizontalWeight); constraintWidget.setVerticalWeight(layoutParams.verticalWeight); constraintWidget.setHorizontalChainStyle(layoutParams.horizontalChainStyle); constraintWidget.setVerticalChainStyle(layoutParams.verticalChainStyle); constraintWidget.setHorizontalMatchStyle(layoutParams.matchConstraintDefaultWidth, layoutParams.matchConstraintMinWidth, layoutParams.matchConstraintMaxWidth, layoutParams.matchConstraintPercentWidth); constraintWidget.setVerticalMatchStyle(layoutParams.matchConstraintDefaultHeight, layoutParams.matchConstraintMinHeight, layoutParams.matchConstraintMaxHeight, layoutParams.matchConstraintPercentHeight); } } @Override // android.view.ViewGroup public boolean checkLayoutParams(ViewGroup.LayoutParams layoutParams) { return layoutParams instanceof LayoutParams; } @Override // android.view.ViewGroup, android.view.View public void dispatchDraw(Canvas canvas) { Object tag; int size; ArrayList arrayList = this.mConstraintHelpers; if (arrayList != null && (size = arrayList.size()) > 0) { for (int i = 0; i < size; i++) { this.mConstraintHelpers.get(i).updatePreDraw(this); } } super.dispatchDraw(canvas); if (isInEditMode()) { int childCount = getChildCount(); float width = (float) getWidth(); float height = (float) getHeight(); for (int i2 = 0; i2 < childCount; i2++) { View childAt = getChildAt(i2); if (!(childAt.getVisibility() == 8 || (tag = childAt.getTag()) == null || !(tag instanceof String))) { String[] split = ((String) tag).split(","); if (split.length == 4) { int parseInt = Integer.parseInt(split[0]); int parseInt2 = Integer.parseInt(split[1]); int parseInt3 = Integer.parseInt(split[2]); int i3 = (int) ((((float) parseInt) / 1080.0f) * width); int i4 = (int) ((((float) parseInt2) / 1920.0f) * height); Paint paint = new Paint(); paint.setColor(SupportMenu.CATEGORY_MASK); float f = (float) i3; float f2 = (float) i4; float f3 = (float) (i3 + ((int) ((((float) parseInt3) / 1080.0f) * width))); canvas.drawLine(f, f2, f3, f2, paint); float parseInt4 = (float) (i4 + ((int) ((((float) Integer.parseInt(split[3])) / 1920.0f) * height))); canvas.drawLine(f3, f2, f3, parseInt4, paint); canvas.drawLine(f3, parseInt4, f, parseInt4, paint); canvas.drawLine(f, parseInt4, f, f2, paint); paint.setColor(-16711936); canvas.drawLine(f, f2, f3, parseInt4, paint); canvas.drawLine(f, parseInt4, f3, f2, paint); } } } } } public void fillMetrics(Metrics metrics) { this.mMetrics = metrics; this.mLayoutWidget.fillMetrics(metrics); } @Override // android.view.View public void forceLayout() { markHierarchyDirty(); super.forceLayout(); } @Override // android.view.ViewGroup public LayoutParams generateDefaultLayoutParams() { return new LayoutParams(-2, -2); } @Override // android.view.ViewGroup public ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams layoutParams) { return new LayoutParams(layoutParams); } @Override // android.view.ViewGroup public LayoutParams generateLayoutParams(AttributeSet attributeSet) { return new LayoutParams(getContext(), attributeSet); } public Object getDesignInformation(int i, Object obj) { if (i != 0 || !(obj instanceof String)) { return null; } String str = (String) obj; HashMap hashMap = this.mDesignIds; if (hashMap == null || !hashMap.containsKey(str)) { return null; } return this.mDesignIds.get(str); } public int getMaxHeight() { return this.mMaxHeight; } public int getMaxWidth() { return this.mMaxWidth; } public int getMinHeight() { return this.mMinHeight; } public int getMinWidth() { return this.mMinWidth; } public int getOptimizationLevel() { return this.mLayoutWidget.getOptimizationLevel(); } public View getViewById(int i) { return this.mChildrenByIds.get(i); } public final ConstraintWidget getViewWidget(View view) { if (view == this) { return this.mLayoutWidget; } if (view == null) { return null; } return ((LayoutParams) view.getLayoutParams()).widget; } public boolean isRtl() { return ((getContext().getApplicationInfo().flags & 4194304) != 0) && 1 == getLayoutDirection(); } public void loadLayoutDescription(int i) { if (i != 0) { try { this.mConstraintLayoutSpec = new ConstraintLayoutStates(getContext(), this, i); } catch (Resources.NotFoundException unused) { this.mConstraintLayoutSpec = null; } } else { this.mConstraintLayoutSpec = null; } } @Override // android.view.ViewGroup, android.view.View public void onLayout(boolean z2, int i, int i2, int i3, int i4) { View content; int childCount = getChildCount(); boolean isInEditMode = isInEditMode(); for (int i5 = 0; i5 < childCount; i5++) { View childAt = getChildAt(i5); LayoutParams layoutParams = (LayoutParams) childAt.getLayoutParams(); ConstraintWidget constraintWidget = layoutParams.widget; if ((childAt.getVisibility() != 8 || layoutParams.isGuideline || layoutParams.isHelper || layoutParams.isVirtualGroup || isInEditMode) && !layoutParams.isInPlaceholder) { int x2 = constraintWidget.getX(); int y2 = constraintWidget.getY(); int width = constraintWidget.getWidth() + x2; int height = constraintWidget.getHeight() + y2; childAt.layout(x2, y2, width, height); if ((childAt instanceof Placeholder) && (content = ((Placeholder) childAt).getContent()) != null) { content.setVisibility(0); content.layout(x2, y2, width, height); } } } int size = this.mConstraintHelpers.size(); if (size > 0) { for (int i6 = 0; i6 < size; i6++) { this.mConstraintHelpers.get(i6).updatePostLayout(this); } } } @Override // android.view.View public void onMeasure(int i, int i2) { if (!this.mDirtyHierarchy) { int childCount = getChildCount(); int i3 = 0; while (true) { if (i3 >= childCount) { break; } else if (getChildAt(i3).isLayoutRequested()) { this.mDirtyHierarchy = true; break; } else { i3++; } } } if (!this.mDirtyHierarchy) { int i4 = this.mOnMeasureWidthMeasureSpec; if (i4 == i && this.mOnMeasureHeightMeasureSpec == i2) { resolveMeasuredDimension(i, i2, this.mLayoutWidget.getWidth(), this.mLayoutWidget.getHeight(), this.mLayoutWidget.isWidthMeasuredTooSmall(), this.mLayoutWidget.isHeightMeasuredTooSmall()); return; } else if (i4 == i && View.MeasureSpec.getMode(i) == 1073741824 && View.MeasureSpec.getMode(i2) == Integer.MIN_VALUE && View.MeasureSpec.getMode(this.mOnMeasureHeightMeasureSpec) == Integer.MIN_VALUE && View.MeasureSpec.getSize(i2) >= this.mLayoutWidget.getHeight()) { this.mOnMeasureWidthMeasureSpec = i; this.mOnMeasureHeightMeasureSpec = i2; resolveMeasuredDimension(i, i2, this.mLayoutWidget.getWidth(), this.mLayoutWidget.getHeight(), this.mLayoutWidget.isWidthMeasuredTooSmall(), this.mLayoutWidget.isHeightMeasuredTooSmall()); return; } } this.mOnMeasureWidthMeasureSpec = i; this.mOnMeasureHeightMeasureSpec = i2; this.mLayoutWidget.setRtl(isRtl()); if (this.mDirtyHierarchy) { this.mDirtyHierarchy = false; if (updateHierarchy()) { this.mLayoutWidget.updateHierarchy(); } } resolveSystem(this.mLayoutWidget, this.mOptimizationLevel, i, i2); resolveMeasuredDimension(i, i2, this.mLayoutWidget.getWidth(), this.mLayoutWidget.getHeight(), this.mLayoutWidget.isWidthMeasuredTooSmall(), this.mLayoutWidget.isHeightMeasuredTooSmall()); } @Override // android.view.ViewGroup public void onViewAdded(View view) { super.onViewAdded(view); ConstraintWidget viewWidget = getViewWidget(view); if ((view instanceof Guideline) && !(viewWidget instanceof Guideline)) { LayoutParams layoutParams = (LayoutParams) view.getLayoutParams(); Guideline guideline = new Guideline(); layoutParams.widget = guideline; layoutParams.isGuideline = true; guideline.setOrientation(layoutParams.orientation); } if (view instanceof ConstraintHelper) { ConstraintHelper constraintHelper = (ConstraintHelper) view; constraintHelper.validateParams(); ((LayoutParams) view.getLayoutParams()).isHelper = true; if (!this.mConstraintHelpers.contains(constraintHelper)) { this.mConstraintHelpers.add(constraintHelper); } } this.mChildrenByIds.put(view.getId(), view); this.mDirtyHierarchy = true; } @Override // android.view.ViewGroup public void onViewRemoved(View view) { super.onViewRemoved(view); this.mChildrenByIds.remove(view.getId()); this.mLayoutWidget.remove(getViewWidget(view)); this.mConstraintHelpers.remove(view); this.mDirtyHierarchy = true; } public void parseLayoutDescription(int i) { this.mConstraintLayoutSpec = new ConstraintLayoutStates(getContext(), this, i); } @Override // android.view.ViewGroup, android.view.ViewManager public void removeView(View view) { super.removeView(view); } @Override // android.view.ViewParent, android.view.View public void requestLayout() { markHierarchyDirty(); super.requestLayout(); } public void resolveMeasuredDimension(int i, int i2, int i3, int i4, boolean z2, boolean z3) { Measurer measurer = this.mMeasurer; int i5 = measurer.paddingHeight; int resolveSizeAndState = ViewGroup.resolveSizeAndState(i3 + measurer.paddingWidth, i, 0); int resolveSizeAndState2 = ViewGroup.resolveSizeAndState(i4 + i5, i2, 0); int i6 = resolveSizeAndState & ViewCompat.MEASURED_SIZE_MASK; int i7 = resolveSizeAndState2 & ViewCompat.MEASURED_SIZE_MASK; int min = Math.min(this.mMaxWidth, i6); int min2 = Math.min(this.mMaxHeight, i7); if (z2) { min |= 16777216; } if (z3) { min2 |= 16777216; } setMeasuredDimension(min, min2); this.mLastMeasureWidth = min; this.mLastMeasureHeight = min2; } public void resolveSystem(ConstraintWidgetContainer constraintWidgetContainer, int i, int i2, int i3) { int mode = View.MeasureSpec.getMode(i2); int size = View.MeasureSpec.getSize(i2); int mode2 = View.MeasureSpec.getMode(i3); int size2 = View.MeasureSpec.getSize(i3); int max = Math.max(0, getPaddingTop()); int max2 = Math.max(0, getPaddingBottom()); int i4 = max + max2; int paddingWidth = getPaddingWidth(); this.mMeasurer.captureLayoutInfos(i2, i3, max, max2, paddingWidth, i4); int max3 = Math.max(0, getPaddingStart()); int max4 = Math.max(0, getPaddingEnd()); int max5 = (max3 > 0 || max4 > 0) ? isRtl() ? max4 : max3 : Math.max(0, getPaddingLeft()); int i5 = size - paddingWidth; int i6 = size2 - i4; setSelfDimensionBehaviour(constraintWidgetContainer, mode, i5, mode2, i6); constraintWidgetContainer.measure(i, mode, i5, mode2, i6, this.mLastMeasureWidth, this.mLastMeasureHeight, max5, max); } public void setConstraintSet(ConstraintSet constraintSet) { this.mConstraintSet = constraintSet; } public void setDesignInformation(int i, Object obj, Object obj2) { if (i == 0 && (obj instanceof String) && (obj2 instanceof Integer)) { if (this.mDesignIds == null) { this.mDesignIds = new HashMap<>(); } String str = (String) obj; int indexOf = str.indexOf(AutocompleteViewModel.COMMAND_DISCOVER_TOKEN); if (indexOf != -1) { str = str.substring(indexOf + 1); } this.mDesignIds.put(str, Integer.valueOf(((Integer) obj2).intValue())); } } @Override // android.view.View public void setId(int i) { this.mChildrenByIds.remove(getId()); super.setId(i); this.mChildrenByIds.put(getId(), this); } public void setMaxHeight(int i) { if (i != this.mMaxHeight) { this.mMaxHeight = i; requestLayout(); } } public void setMaxWidth(int i) { if (i != this.mMaxWidth) { this.mMaxWidth = i; requestLayout(); } } public void setMinHeight(int i) { if (i != this.mMinHeight) { this.mMinHeight = i; requestLayout(); } } public void setMinWidth(int i) { if (i != this.mMinWidth) { this.mMinWidth = i; requestLayout(); } } public void setOnConstraintsChanged(ConstraintsChangedListener constraintsChangedListener) { this.mConstraintsChangedListener = constraintsChangedListener; ConstraintLayoutStates constraintLayoutStates = this.mConstraintLayoutSpec; if (constraintLayoutStates != null) { constraintLayoutStates.setOnConstraintsChanged(constraintsChangedListener); } } public void setOptimizationLevel(int i) { this.mOptimizationLevel = i; this.mLayoutWidget.setOptimizationLevel(i); } public void setSelfDimensionBehaviour(ConstraintWidgetContainer constraintWidgetContainer, int i, int i2, int i3, int i4) { ConstraintWidget.DimensionBehaviour dimensionBehaviour; Measurer measurer = this.mMeasurer; int i5 = measurer.paddingHeight; int i6 = measurer.paddingWidth; ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.FIXED; int childCount = getChildCount(); if (i != Integer.MIN_VALUE) { if (i == 0) { dimensionBehaviour = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT; if (childCount == 0) { i2 = Math.max(0, this.mMinWidth); } } else if (i != 1073741824) { dimensionBehaviour = dimensionBehaviour2; } else { i2 = Math.min(this.mMaxWidth - i6, i2); dimensionBehaviour = dimensionBehaviour2; } i2 = 0; } else { dimensionBehaviour = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT; if (childCount == 0) { i2 = Math.max(0, this.mMinWidth); } } if (i3 != Integer.MIN_VALUE) { if (i3 == 0) { dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT; if (childCount == 0) { i4 = Math.max(0, this.mMinHeight); } } else if (i3 == 1073741824) { i4 = Math.min(this.mMaxHeight - i5, i4); } i4 = 0; } else { dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT; if (childCount == 0) { i4 = Math.max(0, this.mMinHeight); } } if (!(i2 == constraintWidgetContainer.getWidth() && i4 == constraintWidgetContainer.getHeight())) { constraintWidgetContainer.invalidateMeasures(); } constraintWidgetContainer.setX(0); constraintWidgetContainer.setY(0); constraintWidgetContainer.setMaxWidth(this.mMaxWidth - i6); constraintWidgetContainer.setMaxHeight(this.mMaxHeight - i5); constraintWidgetContainer.setMinWidth(0); constraintWidgetContainer.setMinHeight(0); constraintWidgetContainer.setHorizontalDimensionBehaviour(dimensionBehaviour); constraintWidgetContainer.setWidth(i2); constraintWidgetContainer.setVerticalDimensionBehaviour(dimensionBehaviour2); constraintWidgetContainer.setHeight(i4); constraintWidgetContainer.setMinWidth(this.mMinWidth - i6); constraintWidgetContainer.setMinHeight(this.mMinHeight - i5); } public void setState(int i, int i2, int i3) { ConstraintLayoutStates constraintLayoutStates = this.mConstraintLayoutSpec; if (constraintLayoutStates != null) { constraintLayoutStates.updateConstraints(i, (float) i2, (float) i3); } } @Override // android.view.ViewGroup public boolean shouldDelayChildPressedState() { return false; } }