discord-jadx/app/src/main/java/androidx/constraintlayout/widget/ConstraintLayout.java

1934 lines
98 KiB
Java

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<View> mChildrenByIds = new SparseArray<>();
private ArrayList<ConstraintHelper> mConstraintHelpers = new ArrayList<>(4);
public ConstraintLayoutStates mConstraintLayoutSpec = null;
private ConstraintSet mConstraintSet = null;
private int mConstraintSetId = -1;
private ConstraintsChangedListener mConstraintsChangedListener;
private HashMap<String, Integer> 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<ConstraintWidget> 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<ConstraintWidget> 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<ConstraintHelper> 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<String, Integer> 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;
}
}