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

132 lines
5.7 KiB
Java

package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.Barrier;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.analyzer.DependencyNode;
public class HelperReferences extends WidgetRun {
public HelperReferences(ConstraintWidget constraintWidget) {
super(constraintWidget);
}
private void addDependency(DependencyNode dependencyNode) {
this.start.dependencies.add(dependencyNode);
dependencyNode.targets.add(this.start);
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void apply() {
ConstraintWidget constraintWidget = this.widget;
if (constraintWidget instanceof Barrier) {
this.start.delegateToWidgetRun = true;
Barrier barrier = (Barrier) constraintWidget;
int barrierType = barrier.getBarrierType();
boolean allowsGoneWidget = barrier.allowsGoneWidget();
int i = 0;
if (barrierType == 0) {
this.start.type = DependencyNode.Type.LEFT;
while (i < barrier.mWidgetsCount) {
ConstraintWidget constraintWidget2 = barrier.mWidgets[i];
if (allowsGoneWidget || constraintWidget2.getVisibility() != 8) {
DependencyNode dependencyNode = constraintWidget2.horizontalRun.start;
dependencyNode.dependencies.add(this.start);
this.start.targets.add(dependencyNode);
}
i++;
}
addDependency(this.widget.horizontalRun.start);
addDependency(this.widget.horizontalRun.end);
} else if (barrierType == 1) {
this.start.type = DependencyNode.Type.RIGHT;
while (i < barrier.mWidgetsCount) {
ConstraintWidget constraintWidget3 = barrier.mWidgets[i];
if (allowsGoneWidget || constraintWidget3.getVisibility() != 8) {
DependencyNode dependencyNode2 = constraintWidget3.horizontalRun.end;
dependencyNode2.dependencies.add(this.start);
this.start.targets.add(dependencyNode2);
}
i++;
}
addDependency(this.widget.horizontalRun.start);
addDependency(this.widget.horizontalRun.end);
} else if (barrierType == 2) {
this.start.type = DependencyNode.Type.TOP;
while (i < barrier.mWidgetsCount) {
ConstraintWidget constraintWidget4 = barrier.mWidgets[i];
if (allowsGoneWidget || constraintWidget4.getVisibility() != 8) {
DependencyNode dependencyNode3 = constraintWidget4.verticalRun.start;
dependencyNode3.dependencies.add(this.start);
this.start.targets.add(dependencyNode3);
}
i++;
}
addDependency(this.widget.verticalRun.start);
addDependency(this.widget.verticalRun.end);
} else if (barrierType == 3) {
this.start.type = DependencyNode.Type.BOTTOM;
while (i < barrier.mWidgetsCount) {
ConstraintWidget constraintWidget5 = barrier.mWidgets[i];
if (allowsGoneWidget || constraintWidget5.getVisibility() != 8) {
DependencyNode dependencyNode4 = constraintWidget5.verticalRun.end;
dependencyNode4.dependencies.add(this.start);
this.start.targets.add(dependencyNode4);
}
i++;
}
addDependency(this.widget.verticalRun.start);
addDependency(this.widget.verticalRun.end);
}
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void applyToWidget() {
ConstraintWidget constraintWidget = this.widget;
if (constraintWidget instanceof Barrier) {
int barrierType = ((Barrier) constraintWidget).getBarrierType();
if (barrierType == 0 || barrierType == 1) {
this.widget.setX(this.start.value);
} else {
this.widget.setY(this.start.value);
}
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void clear() {
this.runGroup = null;
this.start.clear();
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void reset() {
this.start.resolved = false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public boolean supportsWrapComputation() {
return false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun, androidx.constraintlayout.solver.widgets.analyzer.Dependency
public void update(Dependency dependency) {
Barrier barrier = (Barrier) this.widget;
int barrierType = barrier.getBarrierType();
int i = 0;
int i2 = -1;
for (DependencyNode dependencyNode : this.start.targets) {
int i3 = dependencyNode.value;
if (i2 == -1 || i3 < i2) {
i2 = i3;
}
if (i < i3) {
i = i3;
}
}
if (barrierType == 0 || barrierType == 2) {
this.start.resolve(barrier.getMargin() + i2);
} else {
this.start.resolve(barrier.getMargin() + i);
}
}
}