mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-30 11:02:31 -06:00
185 lines
8.3 KiB
Java
185 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;
|
||
|
}
|
||
|
}
|