discord-jadx/app/src/main/java/androidx/constraintlayout/solver/widgets/analyzer/WidgetGroup.java

213 lines
7.5 KiB
Java

package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.LinearSystem;
import androidx.constraintlayout.solver.widgets.Chain;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import c.d.b.a.a;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Iterator;
public class WidgetGroup {
private static final boolean DEBUG = false;
public static int count;
public boolean authoritative = false;
/* renamed from: id reason: collision with root package name */
public int f24id = -1;
private int moveTo = -1;
public int orientation = 0;
public ArrayList<MeasureResult> results = null;
public ArrayList<ConstraintWidget> widgets = new ArrayList<>();
public class MeasureResult {
public int baseline;
public int bottom;
public int left;
public int orientation;
public int right;
public int top;
public WeakReference<ConstraintWidget> widgetRef;
public MeasureResult(ConstraintWidget constraintWidget, LinearSystem linearSystem, int i) {
this.widgetRef = new WeakReference<>(constraintWidget);
this.left = linearSystem.getObjectVariableValue(constraintWidget.mLeft);
this.top = linearSystem.getObjectVariableValue(constraintWidget.mTop);
this.right = linearSystem.getObjectVariableValue(constraintWidget.mRight);
this.bottom = linearSystem.getObjectVariableValue(constraintWidget.mBottom);
this.baseline = linearSystem.getObjectVariableValue(constraintWidget.mBaseline);
this.orientation = i;
}
public void apply() {
ConstraintWidget constraintWidget = this.widgetRef.get();
if (constraintWidget != null) {
constraintWidget.setFinalFrame(this.left, this.top, this.right, this.bottom, this.baseline, this.orientation);
}
}
}
public WidgetGroup(int i) {
int i2 = count;
count = i2 + 1;
this.f24id = i2;
this.orientation = i;
}
private boolean contains(ConstraintWidget constraintWidget) {
return this.widgets.contains(constraintWidget);
}
private String getOrientationString() {
int i = this.orientation;
return i == 0 ? "Horizontal" : i == 1 ? "Vertical" : i == 2 ? "Both" : "Unknown";
}
private int measureWrap(int i, ConstraintWidget constraintWidget) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour = constraintWidget.getDimensionBehaviour(i);
if (dimensionBehaviour == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT || dimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_PARENT || dimensionBehaviour == ConstraintWidget.DimensionBehaviour.FIXED) {
return i == 0 ? constraintWidget.getWidth() : constraintWidget.getHeight();
}
return -1;
}
private int solverMeasure(LinearSystem linearSystem, ArrayList<ConstraintWidget> arrayList, int i) {
int objectVariableValue;
int objectVariableValue2;
ConstraintWidgetContainer constraintWidgetContainer = (ConstraintWidgetContainer) arrayList.get(0).getParent();
linearSystem.reset();
constraintWidgetContainer.addToSolver(linearSystem, false);
for (int i2 = 0; i2 < arrayList.size(); i2++) {
arrayList.get(i2).addToSolver(linearSystem, false);
}
if (i == 0 && constraintWidgetContainer.mHorizontalChainsSize > 0) {
Chain.applyChainConstraints(constraintWidgetContainer, linearSystem, arrayList, 0);
}
if (i == 1 && constraintWidgetContainer.mVerticalChainsSize > 0) {
Chain.applyChainConstraints(constraintWidgetContainer, linearSystem, arrayList, 1);
}
try {
linearSystem.minimize();
} catch (Exception e) {
e.printStackTrace();
}
this.results = new ArrayList<>();
for (int i3 = 0; i3 < arrayList.size(); i3++) {
this.results.add(new MeasureResult(arrayList.get(i3), linearSystem, i));
}
if (i == 0) {
objectVariableValue = linearSystem.getObjectVariableValue(constraintWidgetContainer.mLeft);
objectVariableValue2 = linearSystem.getObjectVariableValue(constraintWidgetContainer.mRight);
linearSystem.reset();
} else {
objectVariableValue = linearSystem.getObjectVariableValue(constraintWidgetContainer.mTop);
objectVariableValue2 = linearSystem.getObjectVariableValue(constraintWidgetContainer.mBottom);
linearSystem.reset();
}
return objectVariableValue2 - objectVariableValue;
}
public boolean add(ConstraintWidget constraintWidget) {
if (this.widgets.contains(constraintWidget)) {
return false;
}
this.widgets.add(constraintWidget);
return true;
}
public void apply() {
if (this.results != null && this.authoritative) {
for (int i = 0; i < this.results.size(); i++) {
this.results.get(i).apply();
}
}
}
public void cleanup(ArrayList<WidgetGroup> arrayList) {
int size = this.widgets.size();
if (this.moveTo != -1 && size > 0) {
for (int i = 0; i < arrayList.size(); i++) {
WidgetGroup widgetGroup = arrayList.get(i);
if (this.moveTo == widgetGroup.f24id) {
moveTo(this.orientation, widgetGroup);
}
}
}
if (size == 0) {
arrayList.remove(this);
}
}
public void clear() {
this.widgets.clear();
}
public int getId() {
return this.f24id;
}
public int getOrientation() {
return this.orientation;
}
public boolean intersectWith(WidgetGroup widgetGroup) {
for (int i = 0; i < this.widgets.size(); i++) {
if (widgetGroup.contains(this.widgets.get(i))) {
return true;
}
}
return false;
}
public boolean isAuthoritative() {
return this.authoritative;
}
public int measureWrap(LinearSystem linearSystem, int i) {
if (this.widgets.size() == 0) {
return 0;
}
return solverMeasure(linearSystem, this.widgets, i);
}
public void moveTo(int i, WidgetGroup widgetGroup) {
Iterator<ConstraintWidget> it = this.widgets.iterator();
while (it.hasNext()) {
ConstraintWidget next = it.next();
widgetGroup.add(next);
if (i == 0) {
next.horizontalGroup = widgetGroup.getId();
} else {
next.verticalGroup = widgetGroup.getId();
}
}
this.moveTo = widgetGroup.f24id;
}
public void setAuthoritative(boolean z2) {
this.authoritative = z2;
}
public void setOrientation(int i) {
this.orientation = i;
}
public int size() {
return this.widgets.size();
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getOrientationString());
sb.append(" [");
String w = a.w(sb, this.f24id, "] <");
Iterator<ConstraintWidget> it = this.widgets.iterator();
while (it.hasNext()) {
StringBuilder O = a.O(w, " ");
O.append(it.next().getDebugName());
w = O.toString();
}
return a.s(w, " >");
}
}