package androidx.constraintlayout.solver.widgets; import androidx.constraintlayout.solver.LinearSystem; import androidx.constraintlayout.solver.SolverVariable; import androidx.constraintlayout.solver.widgets.ConstraintAnchor; import androidx.constraintlayout.solver.widgets.ConstraintWidget; import c.d.b.a.a; import java.util.HashMap; public class Barrier extends HelperWidget { public static final int BOTTOM = 3; public static final int LEFT = 0; public static final int RIGHT = 1; public static final int TOP = 2; private static final boolean USE_RELAX_GONE = false; private static final boolean USE_RESOLUTION = true; private boolean mAllowsGoneWidget = true; private int mBarrierType = 0; private int mMargin = 0; public boolean resolved = false; public Barrier() { } public Barrier(String str) { setDebugName(str); } @Override // androidx.constraintlayout.solver.widgets.ConstraintWidget public void addToSolver(LinearSystem linearSystem, boolean z2) { Object[] objArr; boolean z3; int i; int i2; int i3; ConstraintAnchor[] constraintAnchorArr = this.mListAnchors; constraintAnchorArr[0] = this.mLeft; constraintAnchorArr[2] = this.mTop; constraintAnchorArr[1] = this.mRight; constraintAnchorArr[3] = this.mBottom; int i4 = 0; while (true) { objArr = this.mListAnchors; if (i4 >= objArr.length) { break; } objArr[i4].mSolverVariable = linearSystem.createObjectVariable(objArr[i4]); i4++; } int i5 = this.mBarrierType; if (i5 >= 0 && i5 < 4) { ConstraintAnchor constraintAnchor = objArr[i5]; if (!this.resolved) { allSolved(); } if (this.resolved) { this.resolved = false; int i6 = this.mBarrierType; if (i6 == 0 || i6 == 1) { linearSystem.addEquality(this.mLeft.mSolverVariable, this.mX); linearSystem.addEquality(this.mRight.mSolverVariable, this.mX); } else if (i6 == 2 || i6 == 3) { linearSystem.addEquality(this.mTop.mSolverVariable, this.mY); linearSystem.addEquality(this.mBottom.mSolverVariable, this.mY); } } else { int i7 = 0; while (true) { if (i7 >= this.mWidgetsCount) { z3 = false; break; } ConstraintWidget constraintWidget = this.mWidgets[i7]; if ((this.mAllowsGoneWidget || constraintWidget.allowedInBarrier()) && ((((i2 = this.mBarrierType) == 0 || i2 == 1) && constraintWidget.getHorizontalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && constraintWidget.mLeft.mTarget != null && constraintWidget.mRight.mTarget != null) || (((i3 = this.mBarrierType) == 2 || i3 == 3) && constraintWidget.getVerticalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && constraintWidget.mTop.mTarget != null && constraintWidget.mBottom.mTarget != null))) { break; } i7++; } z3 = true; boolean z4 = this.mLeft.hasCenteredDependents() || this.mRight.hasCenteredDependents(); boolean z5 = this.mTop.hasCenteredDependents() || this.mBottom.hasCenteredDependents(); boolean z6 = !z3 && (((i = this.mBarrierType) == 0 && z4) || ((i == 2 && z5) || ((i == 1 && z4) || (i == 3 && z5)))); int i8 = 5; if (!z6) { i8 = 4; } for (int i9 = 0; i9 < this.mWidgetsCount; i9++) { ConstraintWidget constraintWidget2 = this.mWidgets[i9]; if (this.mAllowsGoneWidget || constraintWidget2.allowedInBarrier()) { SolverVariable createObjectVariable = linearSystem.createObjectVariable(constraintWidget2.mListAnchors[this.mBarrierType]); ConstraintAnchor[] constraintAnchorArr2 = constraintWidget2.mListAnchors; int i10 = this.mBarrierType; constraintAnchorArr2[i10].mSolverVariable = createObjectVariable; int i11 = (constraintAnchorArr2[i10].mTarget == null || constraintAnchorArr2[i10].mTarget.mOwner != this) ? 0 : constraintAnchorArr2[i10].mMargin + 0; if (i10 == 0 || i10 == 2) { linearSystem.addLowerBarrier(constraintAnchor.mSolverVariable, createObjectVariable, this.mMargin - i11, z3); } else { linearSystem.addGreaterBarrier(constraintAnchor.mSolverVariable, createObjectVariable, this.mMargin + i11, z3); } linearSystem.addEquality(constraintAnchor.mSolverVariable, createObjectVariable, this.mMargin + i11, i8); } } int i12 = this.mBarrierType; if (i12 == 0) { linearSystem.addEquality(this.mRight.mSolverVariable, this.mLeft.mSolverVariable, 0, 8); linearSystem.addEquality(this.mLeft.mSolverVariable, this.mParent.mRight.mSolverVariable, 0, 4); linearSystem.addEquality(this.mLeft.mSolverVariable, this.mParent.mLeft.mSolverVariable, 0, 0); } else if (i12 == 1) { linearSystem.addEquality(this.mLeft.mSolverVariable, this.mRight.mSolverVariable, 0, 8); linearSystem.addEquality(this.mLeft.mSolverVariable, this.mParent.mLeft.mSolverVariable, 0, 4); linearSystem.addEquality(this.mLeft.mSolverVariable, this.mParent.mRight.mSolverVariable, 0, 0); } else if (i12 == 2) { linearSystem.addEquality(this.mBottom.mSolverVariable, this.mTop.mSolverVariable, 0, 8); linearSystem.addEquality(this.mTop.mSolverVariable, this.mParent.mBottom.mSolverVariable, 0, 4); linearSystem.addEquality(this.mTop.mSolverVariable, this.mParent.mTop.mSolverVariable, 0, 0); } else if (i12 == 3) { linearSystem.addEquality(this.mTop.mSolverVariable, this.mBottom.mSolverVariable, 0, 8); linearSystem.addEquality(this.mTop.mSolverVariable, this.mParent.mTop.mSolverVariable, 0, 4); linearSystem.addEquality(this.mTop.mSolverVariable, this.mParent.mBottom.mSolverVariable, 0, 0); } } } } public boolean allSolved() { int i; int i2; int i3; int i4 = 0; boolean z2 = true; while (true) { i = this.mWidgetsCount; if (i4 >= i) { break; } ConstraintWidget constraintWidget = this.mWidgets[i4]; if ((this.mAllowsGoneWidget || constraintWidget.allowedInBarrier()) && ((((i2 = this.mBarrierType) == 0 || i2 == 1) && !constraintWidget.isResolvedHorizontally()) || (((i3 = this.mBarrierType) == 2 || i3 == 3) && !constraintWidget.isResolvedVertically()))) { z2 = false; } i4++; } if (!z2 || i <= 0) { return false; } int i5 = 0; boolean z3 = false; for (int i6 = 0; i6 < this.mWidgetsCount; i6++) { ConstraintWidget constraintWidget2 = this.mWidgets[i6]; if (this.mAllowsGoneWidget || constraintWidget2.allowedInBarrier()) { if (!z3) { int i7 = this.mBarrierType; if (i7 == 0) { i5 = constraintWidget2.getAnchor(ConstraintAnchor.Type.LEFT).getFinalValue(); } else if (i7 == 1) { i5 = constraintWidget2.getAnchor(ConstraintAnchor.Type.RIGHT).getFinalValue(); } else if (i7 == 2) { i5 = constraintWidget2.getAnchor(ConstraintAnchor.Type.TOP).getFinalValue(); } else if (i7 == 3) { i5 = constraintWidget2.getAnchor(ConstraintAnchor.Type.BOTTOM).getFinalValue(); } z3 = true; } int i8 = this.mBarrierType; if (i8 == 0) { i5 = Math.min(i5, constraintWidget2.getAnchor(ConstraintAnchor.Type.LEFT).getFinalValue()); } else if (i8 == 1) { i5 = Math.max(i5, constraintWidget2.getAnchor(ConstraintAnchor.Type.RIGHT).getFinalValue()); } else if (i8 == 2) { i5 = Math.min(i5, constraintWidget2.getAnchor(ConstraintAnchor.Type.TOP).getFinalValue()); } else if (i8 == 3) { i5 = Math.max(i5, constraintWidget2.getAnchor(ConstraintAnchor.Type.BOTTOM).getFinalValue()); } } } int i9 = i5 + this.mMargin; int i10 = this.mBarrierType; if (i10 == 0 || i10 == 1) { setFinalHorizontal(i9, i9); } else { setFinalVertical(i9, i9); } this.resolved = true; return true; } @Override // androidx.constraintlayout.solver.widgets.ConstraintWidget public boolean allowedInBarrier() { return true; } public boolean allowsGoneWidget() { return this.mAllowsGoneWidget; } @Override // androidx.constraintlayout.solver.widgets.HelperWidget, androidx.constraintlayout.solver.widgets.ConstraintWidget public void copy(ConstraintWidget constraintWidget, HashMap hashMap) { super.copy(constraintWidget, hashMap); Barrier barrier = (Barrier) constraintWidget; this.mBarrierType = barrier.mBarrierType; this.mAllowsGoneWidget = barrier.mAllowsGoneWidget; this.mMargin = barrier.mMargin; } public int getBarrierType() { return this.mBarrierType; } public int getMargin() { return this.mMargin; } public int getOrientation() { int i = this.mBarrierType; if (i == 0 || i == 1) { return 0; } return (i == 2 || i == 3) ? 1 : -1; } @Override // androidx.constraintlayout.solver.widgets.ConstraintWidget public boolean isResolvedHorizontally() { return this.resolved; } @Override // androidx.constraintlayout.solver.widgets.ConstraintWidget public boolean isResolvedVertically() { return this.resolved; } public void markWidgets() { for (int i = 0; i < this.mWidgetsCount; i++) { ConstraintWidget constraintWidget = this.mWidgets[i]; int i2 = this.mBarrierType; if (i2 == 0 || i2 == 1) { constraintWidget.setInBarrier(0, true); } else if (i2 == 2 || i2 == 3) { constraintWidget.setInBarrier(1, true); } } } public void setAllowsGoneWidget(boolean z2) { this.mAllowsGoneWidget = z2; } public void setBarrierType(int i) { this.mBarrierType = i; } public void setMargin(int i) { this.mMargin = i; } @Override // androidx.constraintlayout.solver.widgets.ConstraintWidget public String toString() { StringBuilder L = a.L("[Barrier] "); L.append(getDebugName()); L.append(" {"); String sb = L.toString(); for (int i = 0; i < this.mWidgetsCount; i++) { ConstraintWidget constraintWidget = this.mWidgets[i]; if (i > 0) { sb = a.t(sb, ", "); } StringBuilder L2 = a.L(sb); L2.append(constraintWidget.getDebugName()); sb = L2.toString(); } return a.t(sb, "}"); } }