package androidx.constraintlayout.solver.widgets.analyzer; import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer; import b.d.b.a.a; import java.util.ArrayList; import java.util.Iterator; public class RunGroup { public static final int BASELINE = 2; public static final int END = 1; public static final int START = 0; public static int index; public int direction; public boolean dual = false; public WidgetRun firstRun = null; public int groupIndex = 0; public WidgetRun lastRun = null; public int position = 0; public ArrayList runs = new ArrayList<>(); public RunGroup(WidgetRun widgetRun, int i) { int i2 = index; this.groupIndex = i2; index = i2 + 1; this.firstRun = widgetRun; this.lastRun = widgetRun; this.direction = i; } private boolean defineTerminalWidget(WidgetRun widgetRun, int i) { DependencyNode dependencyNode; WidgetRun widgetRun2; DependencyNode dependencyNode2; WidgetRun widgetRun3; if (!widgetRun.widget.isTerminalWidget[i]) { return false; } for (Dependency dependency : widgetRun.start.dependencies) { if ((dependency instanceof DependencyNode) && (widgetRun3 = (dependencyNode2 = (DependencyNode) dependency).run) != widgetRun && dependencyNode2 == widgetRun3.start) { if (widgetRun instanceof ChainRun) { Iterator it = ((ChainRun) widgetRun).widgets.iterator(); while (it.hasNext()) { defineTerminalWidget(it.next(), i); } } else if (!(widgetRun instanceof HelperReferences)) { widgetRun.widget.isTerminalWidget[i] = false; } defineTerminalWidget(dependencyNode2.run, i); } } for (Dependency dependency2 : widgetRun.end.dependencies) { if ((dependency2 instanceof DependencyNode) && (widgetRun2 = (dependencyNode = (DependencyNode) dependency2).run) != widgetRun && dependencyNode == widgetRun2.start) { if (widgetRun instanceof ChainRun) { Iterator it2 = ((ChainRun) widgetRun).widgets.iterator(); while (it2.hasNext()) { defineTerminalWidget(it2.next(), i); } } else if (!(widgetRun instanceof HelperReferences)) { widgetRun.widget.isTerminalWidget[i] = false; } defineTerminalWidget(dependencyNode.run, i); } } return false; } private long traverseEnd(DependencyNode dependencyNode, long j) { WidgetRun widgetRun = dependencyNode.run; if (widgetRun instanceof HelperReferences) { return j; } int size = dependencyNode.dependencies.size(); long j2 = j; for (int i = 0; i < size; i++) { Dependency dependency = dependencyNode.dependencies.get(i); if (dependency instanceof DependencyNode) { DependencyNode dependencyNode2 = (DependencyNode) dependency; if (dependencyNode2.run != widgetRun) { j2 = Math.min(j2, traverseEnd(dependencyNode2, ((long) dependencyNode2.margin) + j)); } } } if (dependencyNode != widgetRun.end) { return j2; } long wrapDimension = j - widgetRun.getWrapDimension(); return Math.min(Math.min(j2, traverseEnd(widgetRun.start, wrapDimension)), wrapDimension - ((long) widgetRun.start.margin)); } private long traverseStart(DependencyNode dependencyNode, long j) { WidgetRun widgetRun = dependencyNode.run; if (widgetRun instanceof HelperReferences) { return j; } int size = dependencyNode.dependencies.size(); long j2 = j; for (int i = 0; i < size; i++) { Dependency dependency = dependencyNode.dependencies.get(i); if (dependency instanceof DependencyNode) { DependencyNode dependencyNode2 = (DependencyNode) dependency; if (dependencyNode2.run != widgetRun) { j2 = Math.max(j2, traverseStart(dependencyNode2, ((long) dependencyNode2.margin) + j)); } } } if (dependencyNode != widgetRun.start) { return j2; } long wrapDimension = j + widgetRun.getWrapDimension(); return Math.max(Math.max(j2, traverseStart(widgetRun.end, wrapDimension)), wrapDimension - ((long) widgetRun.end.margin)); } public void add(WidgetRun widgetRun) { this.runs.add(widgetRun); this.lastRun = widgetRun; } public long computeWrapSize(ConstraintWidgetContainer constraintWidgetContainer, int i) { WidgetRun widgetRun = this.firstRun; long j = 0; if (widgetRun instanceof ChainRun) { if (((ChainRun) widgetRun).orientation != i) { return 0; } } else if (i == 0) { if (!(widgetRun instanceof HorizontalWidgetRun)) { return 0; } } else if (!(widgetRun instanceof VerticalWidgetRun)) { return 0; } DependencyNode dependencyNode = (i == 0 ? constraintWidgetContainer.horizontalRun : constraintWidgetContainer.verticalRun).start; DependencyNode dependencyNode2 = (i == 0 ? constraintWidgetContainer.horizontalRun : constraintWidgetContainer.verticalRun).end; boolean contains = widgetRun.start.targets.contains(dependencyNode); boolean contains2 = this.firstRun.end.targets.contains(dependencyNode2); long wrapDimension = this.firstRun.getWrapDimension(); if (contains && contains2) { long traverseStart = traverseStart(this.firstRun.start, 0); long traverseEnd = traverseEnd(this.firstRun.end, 0); long j2 = traverseStart - wrapDimension; WidgetRun widgetRun2 = this.firstRun; int i2 = widgetRun2.end.margin; if (j2 >= ((long) (-i2))) { j2 += (long) i2; } int i3 = widgetRun2.start.margin; long j3 = ((-traverseEnd) - wrapDimension) - ((long) i3); if (j3 >= ((long) i3)) { j3 -= (long) i3; } float biasPercent = widgetRun2.widget.getBiasPercent(i); if (biasPercent > 0.0f) { j = (long) ((((float) j2) / (1.0f - biasPercent)) + (((float) j3) / biasPercent)); } float f = (float) j; long a = ((long) ((f * biasPercent) + 0.5f)) + wrapDimension + ((long) a.a(1.0f, biasPercent, f, 0.5f)); WidgetRun widgetRun3 = this.firstRun; return (((long) widgetRun3.start.margin) + a) - ((long) widgetRun3.end.margin); } else if (contains) { DependencyNode dependencyNode3 = this.firstRun.start; return Math.max(traverseStart(dependencyNode3, (long) dependencyNode3.margin), ((long) this.firstRun.start.margin) + wrapDimension); } else if (contains2) { DependencyNode dependencyNode4 = this.firstRun.end; return Math.max(-traverseEnd(dependencyNode4, (long) dependencyNode4.margin), ((long) (-this.firstRun.end.margin)) + wrapDimension); } else { WidgetRun widgetRun4 = this.firstRun; return (widgetRun4.getWrapDimension() + ((long) widgetRun4.start.margin)) - ((long) this.firstRun.end.margin); } } public void defineTerminalWidgets(boolean z2, boolean z3) { if (z2) { WidgetRun widgetRun = this.firstRun; if (widgetRun instanceof HorizontalWidgetRun) { defineTerminalWidget(widgetRun, 0); } } if (z3) { WidgetRun widgetRun2 = this.firstRun; if (widgetRun2 instanceof VerticalWidgetRun) { defineTerminalWidget(widgetRun2, 1); } } } }