package androidx.constraintlayout.solver.widgets; import androidx.constraintlayout.solver.Cache; import androidx.constraintlayout.solver.SolverVariable; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; /* loaded from: classes.dex */ public class ConstraintAnchor { private static final boolean ALLOW_BINARY = false; private static final int UNSET_GONE_MARGIN = -1; public final ConstraintWidget mOwner; SolverVariable mSolverVariable; public ConstraintAnchor mTarget; public final Type mType; private HashSet mDependents = null; public int mMargin = 0; int mGoneMargin = -1; /* loaded from: classes.dex */ public enum Type { NONE, LEFT, TOP, RIGHT, BOTTOM, BASELINE, CENTER, CENTER_X, CENTER_Y } public ConstraintWidget getOwner() { return this.mOwner; } public SolverVariable getSolverVariable() { return this.mSolverVariable; } public ConstraintAnchor getTarget() { return this.mTarget; } public Type getType() { return this.mType; } public boolean isConnected() { return this.mTarget != null; } public boolean hasDependents() { HashSet hashSet = this.mDependents; return hashSet != null && hashSet.size() > 0; } public boolean hasCenteredDependents() { HashSet hashSet = this.mDependents; if (hashSet == null) { return false; } Iterator it = hashSet.iterator(); while (it.hasNext()) { if (it.next().getOpposite().isConnected()) { return true; } } return false; } public void copyFrom(ConstraintAnchor constraintAnchor, HashMap hashMap) { HashSet hashSet; ConstraintAnchor constraintAnchor2 = this.mTarget; if (constraintAnchor2 != null && (hashSet = constraintAnchor2.mDependents) != null) { hashSet.remove(this); } ConstraintAnchor constraintAnchor3 = constraintAnchor.mTarget; if (constraintAnchor3 != null) { this.mTarget = hashMap.get(constraintAnchor.mTarget.mOwner).getAnchor(constraintAnchor3.getType()); } else { this.mTarget = null; } ConstraintAnchor constraintAnchor4 = this.mTarget; if (constraintAnchor4 != null) { if (constraintAnchor4.mDependents == null) { constraintAnchor4.mDependents = new HashSet<>(); } this.mTarget.mDependents.add(this); } this.mMargin = constraintAnchor.mMargin; this.mGoneMargin = constraintAnchor.mGoneMargin; } public ConstraintAnchor(ConstraintWidget constraintWidget, Type type) { this.mOwner = constraintWidget; this.mType = type; } public void resetSolverVariable(Cache cache) { SolverVariable solverVariable = this.mSolverVariable; if (solverVariable == null) { this.mSolverVariable = new SolverVariable(SolverVariable.Type.UNRESTRICTED, (String) null); } else { solverVariable.reset(); } } public int getMargin() { ConstraintAnchor constraintAnchor; if (this.mOwner.getVisibility() == 8) { return 0; } return (this.mGoneMargin <= -1 || (constraintAnchor = this.mTarget) == null || constraintAnchor.mOwner.getVisibility() != 8) ? this.mMargin : this.mGoneMargin; } public void reset() { HashSet hashSet; ConstraintAnchor constraintAnchor = this.mTarget; if (constraintAnchor != null && (hashSet = constraintAnchor.mDependents) != null) { hashSet.remove(this); } this.mTarget = null; this.mMargin = 0; this.mGoneMargin = -1; } public boolean connect(ConstraintAnchor constraintAnchor, int i, int i2, boolean z) { if (constraintAnchor == null) { reset(); return true; } if (!z && !isValidConnection(constraintAnchor)) { return false; } this.mTarget = constraintAnchor; if (constraintAnchor.mDependents == null) { constraintAnchor.mDependents = new HashSet<>(); } this.mTarget.mDependents.add(this); if (i > 0) { this.mMargin = i; } else { this.mMargin = 0; } this.mGoneMargin = i2; return true; } public boolean connect(ConstraintAnchor constraintAnchor, int i) { return connect(constraintAnchor, i, -1, false); } public boolean isValidConnection(ConstraintAnchor constraintAnchor) { if (constraintAnchor == null) { return false; } Type type = constraintAnchor.getType(); Type type2 = this.mType; if (type == type2) { return type2 != Type.BASELINE || (constraintAnchor.getOwner().hasBaseline() && getOwner().hasBaseline()); } switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[this.mType.ordinal()]) { case 1: return (type == Type.BASELINE || type == Type.CENTER_X || type == Type.CENTER_Y) ? false : true; case 2: case 3: boolean z = type == Type.LEFT || type == Type.RIGHT; if (constraintAnchor.getOwner() instanceof Guideline) { return z || type == Type.CENTER_X; } return z; case 4: case 5: boolean z2 = type == Type.TOP || type == Type.BOTTOM; if (constraintAnchor.getOwner() instanceof Guideline) { return z2 || type == Type.CENTER_Y; } return z2; case 6: case 7: case 8: case 9: return false; default: throw new AssertionError(this.mType.name()); } } /* JADX INFO: Access modifiers changed from: package-private */ /* renamed from: androidx.constraintlayout.solver.widgets.ConstraintAnchor$1, reason: invalid class name */ /* loaded from: classes.dex */ public static /* synthetic */ class AnonymousClass1 { static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type; static { int[] iArr = new int[Type.values().length]; $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type = iArr; try { iArr[Type.CENTER.ordinal()] = 1; } catch (NoSuchFieldError unused) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.LEFT.ordinal()] = 2; } catch (NoSuchFieldError unused2) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.RIGHT.ordinal()] = 3; } catch (NoSuchFieldError unused3) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.TOP.ordinal()] = 4; } catch (NoSuchFieldError unused4) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.BOTTOM.ordinal()] = 5; } catch (NoSuchFieldError unused5) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.BASELINE.ordinal()] = 6; } catch (NoSuchFieldError unused6) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.CENTER_X.ordinal()] = 7; } catch (NoSuchFieldError unused7) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.CENTER_Y.ordinal()] = 8; } catch (NoSuchFieldError unused8) { } try { $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.NONE.ordinal()] = 9; } catch (NoSuchFieldError unused9) { } } } public boolean isSideAnchor() { switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[this.mType.ordinal()]) { case 1: case 6: case 7: case 8: case 9: return false; case 2: case 3: case 4: case 5: return true; default: throw new AssertionError(this.mType.name()); } } public boolean isSimilarDimensionConnection(ConstraintAnchor constraintAnchor) { Type type = constraintAnchor.getType(); if (type == this.mType) { return true; } switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[this.mType.ordinal()]) { case 1: return type != Type.BASELINE; case 2: case 3: case 7: return type == Type.LEFT || type == Type.RIGHT || type == Type.CENTER_X; case 4: case 5: case 6: case 8: return type == Type.TOP || type == Type.BOTTOM || type == Type.CENTER_Y || type == Type.BASELINE; case 9: return false; default: throw new AssertionError(this.mType.name()); } } public void setMargin(int i) { if (isConnected()) { this.mMargin = i; } } public void setGoneMargin(int i) { if (isConnected()) { this.mGoneMargin = i; } } public boolean isVerticalAnchor() { switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[this.mType.ordinal()]) { case 1: case 2: case 3: case 7: return false; case 4: case 5: case 6: case 8: case 9: return true; default: throw new AssertionError(this.mType.name()); } } public String toString() { return this.mOwner.getDebugName() + ":" + this.mType.toString(); } public boolean isConnectionAllowed(ConstraintWidget constraintWidget, ConstraintAnchor constraintAnchor) { return isConnectionAllowed(constraintWidget); } public boolean isConnectionAllowed(ConstraintWidget constraintWidget) { if (isConnectionToMe(constraintWidget, new HashSet<>())) { return false; } ConstraintWidget parent = getOwner().getParent(); return parent == constraintWidget || constraintWidget.getParent() == parent; } private boolean isConnectionToMe(ConstraintWidget constraintWidget, HashSet hashSet) { if (hashSet.contains(constraintWidget)) { return false; } hashSet.add(constraintWidget); if (constraintWidget == getOwner()) { return true; } ArrayList anchors = constraintWidget.getAnchors(); int size = anchors.size(); for (int i = 0; i < size; i++) { ConstraintAnchor constraintAnchor = anchors.get(i); if (constraintAnchor.isSimilarDimensionConnection(this) && constraintAnchor.isConnected() && isConnectionToMe(constraintAnchor.getTarget().getOwner(), hashSet)) { return true; } } return false; } public final ConstraintAnchor getOpposite() { switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[this.mType.ordinal()]) { case 1: case 6: case 7: case 8: case 9: return null; case 2: return this.mOwner.mRight; case 3: return this.mOwner.mLeft; case 4: return this.mOwner.mBottom; case 5: return this.mOwner.mTop; default: throw new AssertionError(this.mType.name()); } } }