Rabbit-R1/android (non root)/java/sources/androidx/constraintlayout/solver/widgets/analyzer/DependencyNode.java
2024-05-21 17:08:36 -04:00

121 lines
3.6 KiB
Java

package androidx.constraintlayout.solver.widgets.analyzer;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/* loaded from: classes.dex */
public class DependencyNode implements Dependency {
int margin;
WidgetRun run;
public int value;
public Dependency updateDelegate = null;
public boolean delegateToWidgetRun = false;
public boolean readyToSolve = false;
Type type = Type.UNKNOWN;
int marginFactor = 1;
DimensionDependency marginDependency = null;
public boolean resolved = false;
List<Dependency> dependencies = new ArrayList();
List<DependencyNode> targets = new ArrayList();
/* loaded from: classes.dex */
enum Type {
UNKNOWN,
HORIZONTAL_DIMENSION,
VERTICAL_DIMENSION,
LEFT,
RIGHT,
TOP,
BOTTOM,
BASELINE
}
public DependencyNode(WidgetRun widgetRun) {
this.run = widgetRun;
}
public String toString() {
return this.run.widget.getDebugName() + ":" + this.type + "(" + (this.resolved ? Integer.valueOf(this.value) : "unresolved") + ") <t=" + this.targets.size() + ":d=" + this.dependencies.size() + ">";
}
public void resolve(int i) {
if (this.resolved) {
return;
}
this.resolved = true;
this.value = i;
for (Dependency dependency : this.dependencies) {
dependency.update(dependency);
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.Dependency
public void update(Dependency dependency) {
Iterator<DependencyNode> it = this.targets.iterator();
while (it.hasNext()) {
if (!it.next().resolved) {
return;
}
}
this.readyToSolve = true;
Dependency dependency2 = this.updateDelegate;
if (dependency2 != null) {
dependency2.update(this);
}
if (this.delegateToWidgetRun) {
this.run.update(this);
return;
}
DependencyNode dependencyNode = null;
int i = 0;
for (DependencyNode dependencyNode2 : this.targets) {
if (!(dependencyNode2 instanceof DimensionDependency)) {
i++;
dependencyNode = dependencyNode2;
}
}
if (dependencyNode != null && i == 1 && dependencyNode.resolved) {
DimensionDependency dimensionDependency = this.marginDependency;
if (dimensionDependency != null) {
if (!dimensionDependency.resolved) {
return;
} else {
this.margin = this.marginFactor * this.marginDependency.value;
}
}
resolve(dependencyNode.value + this.margin);
}
Dependency dependency3 = this.updateDelegate;
if (dependency3 != null) {
dependency3.update(this);
}
}
public void addDependency(Dependency dependency) {
this.dependencies.add(dependency);
if (this.resolved) {
dependency.update(dependency);
}
}
public String name() {
String str;
String debugName = this.run.widget.getDebugName();
if (this.type == Type.LEFT || this.type == Type.RIGHT) {
str = debugName + "_HORIZONTAL";
} else {
str = debugName + "_VERTICAL";
}
return str + ":" + this.type.name();
}
public void clear() {
this.targets.clear();
this.dependencies.clear();
this.resolved = false;
this.value = 0;
this.readyToSolve = false;
this.delegateToWidgetRun = false;
}
}