Rabbit-R1/android (non root)/java/sources/androidx/constraintlayout/solver/widgets/ChainHead.java
2024-05-21 17:08:36 -04:00

184 lines
8.3 KiB
Java

package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import java.util.ArrayList;
/* loaded from: classes.dex */
public class ChainHead {
private boolean mDefined;
protected ConstraintWidget mFirst;
protected ConstraintWidget mFirstMatchConstraintWidget;
protected ConstraintWidget mFirstVisibleWidget;
protected boolean mHasComplexMatchWeights;
protected boolean mHasDefinedWeights;
protected boolean mHasRatio;
protected boolean mHasUndefinedWeights;
protected ConstraintWidget mHead;
private boolean mIsRtl;
protected ConstraintWidget mLast;
protected ConstraintWidget mLastMatchConstraintWidget;
protected ConstraintWidget mLastVisibleWidget;
boolean mOptimizable;
private int mOrientation;
int mTotalMargins;
int mTotalSize;
protected float mTotalWeight = 0.0f;
int mVisibleWidgets;
protected ArrayList<ConstraintWidget> mWeightedMatchConstraintsWidgets;
protected int mWidgetsCount;
protected int mWidgetsMatchCount;
public ConstraintWidget getFirst() {
return this.mFirst;
}
public ConstraintWidget getFirstMatchConstraintWidget() {
return this.mFirstMatchConstraintWidget;
}
public ConstraintWidget getFirstVisibleWidget() {
return this.mFirstVisibleWidget;
}
public ConstraintWidget getHead() {
return this.mHead;
}
public ConstraintWidget getLast() {
return this.mLast;
}
public ConstraintWidget getLastMatchConstraintWidget() {
return this.mLastMatchConstraintWidget;
}
public ConstraintWidget getLastVisibleWidget() {
return this.mLastVisibleWidget;
}
public float getTotalWeight() {
return this.mTotalWeight;
}
public ChainHead(ConstraintWidget constraintWidget, int i, boolean z) {
this.mFirst = constraintWidget;
this.mOrientation = i;
this.mIsRtl = z;
}
private static boolean isMatchConstraintEqualityCandidate(ConstraintWidget constraintWidget, int i) {
return constraintWidget.getVisibility() != 8 && constraintWidget.mListDimensionBehaviors[i] == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && (constraintWidget.mResolvedMatchConstraintDefault[i] == 0 || constraintWidget.mResolvedMatchConstraintDefault[i] == 3);
}
private void defineChainProperties() {
int i = this.mOrientation * 2;
ConstraintWidget constraintWidget = this.mFirst;
this.mOptimizable = true;
ConstraintWidget constraintWidget2 = constraintWidget;
boolean z = false;
while (!z) {
this.mWidgetsCount++;
ConstraintWidget constraintWidget3 = null;
constraintWidget.mNextChainWidget[this.mOrientation] = null;
constraintWidget.mListNextMatchConstraintsWidget[this.mOrientation] = null;
if (constraintWidget.getVisibility() != 8) {
this.mVisibleWidgets++;
if (constraintWidget.getDimensionBehaviour(this.mOrientation) != ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
this.mTotalSize += constraintWidget.getLength(this.mOrientation);
}
int margin = this.mTotalSize + constraintWidget.mListAnchors[i].getMargin();
this.mTotalSize = margin;
int i2 = i + 1;
this.mTotalSize = margin + constraintWidget.mListAnchors[i2].getMargin();
int margin2 = this.mTotalMargins + constraintWidget.mListAnchors[i].getMargin();
this.mTotalMargins = margin2;
this.mTotalMargins = margin2 + constraintWidget.mListAnchors[i2].getMargin();
if (this.mFirstVisibleWidget == null) {
this.mFirstVisibleWidget = constraintWidget;
}
this.mLastVisibleWidget = constraintWidget;
if (constraintWidget.mListDimensionBehaviors[this.mOrientation] == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
if (constraintWidget.mResolvedMatchConstraintDefault[this.mOrientation] == 0 || constraintWidget.mResolvedMatchConstraintDefault[this.mOrientation] == 3 || constraintWidget.mResolvedMatchConstraintDefault[this.mOrientation] == 2) {
this.mWidgetsMatchCount++;
float f = constraintWidget.mWeight[this.mOrientation];
if (f > 0.0f) {
this.mTotalWeight += constraintWidget.mWeight[this.mOrientation];
}
if (isMatchConstraintEqualityCandidate(constraintWidget, this.mOrientation)) {
if (f < 0.0f) {
this.mHasUndefinedWeights = true;
} else {
this.mHasDefinedWeights = true;
}
if (this.mWeightedMatchConstraintsWidgets == null) {
this.mWeightedMatchConstraintsWidgets = new ArrayList<>();
}
this.mWeightedMatchConstraintsWidgets.add(constraintWidget);
}
if (this.mFirstMatchConstraintWidget == null) {
this.mFirstMatchConstraintWidget = constraintWidget;
}
ConstraintWidget constraintWidget4 = this.mLastMatchConstraintWidget;
if (constraintWidget4 != null) {
constraintWidget4.mListNextMatchConstraintsWidget[this.mOrientation] = constraintWidget;
}
this.mLastMatchConstraintWidget = constraintWidget;
}
if (this.mOrientation == 0) {
if (constraintWidget.mMatchConstraintDefaultWidth != 0) {
this.mOptimizable = false;
} else if (constraintWidget.mMatchConstraintMinWidth != 0 || constraintWidget.mMatchConstraintMaxWidth != 0) {
this.mOptimizable = false;
}
} else if (constraintWidget.mMatchConstraintDefaultHeight != 0) {
this.mOptimizable = false;
} else if (constraintWidget.mMatchConstraintMinHeight != 0 || constraintWidget.mMatchConstraintMaxHeight != 0) {
this.mOptimizable = false;
}
if (constraintWidget.mDimensionRatio != 0.0f) {
this.mOptimizable = false;
this.mHasRatio = true;
}
}
}
if (constraintWidget2 != constraintWidget) {
constraintWidget2.mNextChainWidget[this.mOrientation] = constraintWidget;
}
ConstraintAnchor constraintAnchor = constraintWidget.mListAnchors[i + 1].mTarget;
if (constraintAnchor != null) {
ConstraintWidget constraintWidget5 = constraintAnchor.mOwner;
if (constraintWidget5.mListAnchors[i].mTarget != null && constraintWidget5.mListAnchors[i].mTarget.mOwner == constraintWidget) {
constraintWidget3 = constraintWidget5;
}
}
if (constraintWidget3 == null) {
constraintWidget3 = constraintWidget;
z = true;
}
constraintWidget2 = constraintWidget;
constraintWidget = constraintWidget3;
}
ConstraintWidget constraintWidget6 = this.mFirstVisibleWidget;
if (constraintWidget6 != null) {
this.mTotalSize -= constraintWidget6.mListAnchors[i].getMargin();
}
ConstraintWidget constraintWidget7 = this.mLastVisibleWidget;
if (constraintWidget7 != null) {
this.mTotalSize -= constraintWidget7.mListAnchors[i + 1].getMargin();
}
this.mLast = constraintWidget;
if (this.mOrientation == 0 && this.mIsRtl) {
this.mHead = constraintWidget;
} else {
this.mHead = this.mFirst;
}
this.mHasComplexMatchWeights = this.mHasDefinedWeights && this.mHasUndefinedWeights;
}
public void define() {
if (!this.mDefined) {
defineChainProperties();
}
this.mDefined = true;
}
}