2021-07-24 02:37:17 +00:00
|
|
|
package androidx.constraintlayout.solver.widgets.analyzer;
|
|
|
|
|
|
|
|
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
|
|
|
|
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
|
|
|
|
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
|
|
|
|
import c.d.b.a.a;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Iterator;
|
|
|
|
public class ChainRun extends WidgetRun {
|
|
|
|
private int chainStyle;
|
|
|
|
public ArrayList<WidgetRun> widgets = new ArrayList<>();
|
|
|
|
|
|
|
|
public ChainRun(ConstraintWidget constraintWidget, int i) {
|
|
|
|
super(constraintWidget);
|
|
|
|
this.orientation = i;
|
|
|
|
build();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void build() {
|
|
|
|
ConstraintWidget constraintWidget = this.widget;
|
|
|
|
ConstraintWidget previousChainMember = constraintWidget.getPreviousChainMember(this.orientation);
|
|
|
|
while (true) {
|
|
|
|
constraintWidget = previousChainMember;
|
|
|
|
if (constraintWidget == null) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
previousChainMember = constraintWidget.getPreviousChainMember(this.orientation);
|
|
|
|
}
|
|
|
|
this.widget = constraintWidget;
|
|
|
|
this.widgets.add(constraintWidget.getRun(this.orientation));
|
|
|
|
ConstraintWidget nextChainMember = constraintWidget.getNextChainMember(this.orientation);
|
|
|
|
while (nextChainMember != null) {
|
|
|
|
this.widgets.add(nextChainMember.getRun(this.orientation));
|
|
|
|
nextChainMember = nextChainMember.getNextChainMember(this.orientation);
|
|
|
|
}
|
|
|
|
Iterator<WidgetRun> it = this.widgets.iterator();
|
|
|
|
while (it.hasNext()) {
|
|
|
|
WidgetRun next = it.next();
|
|
|
|
int i = this.orientation;
|
|
|
|
if (i == 0) {
|
|
|
|
next.widget.horizontalChainRun = this;
|
|
|
|
} else if (i == 1) {
|
|
|
|
next.widget.verticalChainRun = this;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((this.orientation == 0 && ((ConstraintWidgetContainer) this.widget.getParent()).isRtl()) && this.widgets.size() > 1) {
|
|
|
|
ArrayList<WidgetRun> arrayList = this.widgets;
|
|
|
|
this.widget = arrayList.get(arrayList.size() - 1).widget;
|
|
|
|
}
|
|
|
|
this.chainStyle = this.orientation == 0 ? this.widget.getHorizontalChainStyle() : this.widget.getVerticalChainStyle();
|
|
|
|
}
|
|
|
|
|
|
|
|
private ConstraintWidget getFirstVisibleWidget() {
|
|
|
|
for (int i = 0; i < this.widgets.size(); i++) {
|
|
|
|
WidgetRun widgetRun = this.widgets.get(i);
|
|
|
|
if (widgetRun.widget.getVisibility() != 8) {
|
|
|
|
return widgetRun.widget;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
private ConstraintWidget getLastVisibleWidget() {
|
|
|
|
for (int size = this.widgets.size() - 1; size >= 0; size--) {
|
|
|
|
WidgetRun widgetRun = this.widgets.get(size);
|
|
|
|
if (widgetRun.widget.getVisibility() != 8) {
|
|
|
|
return widgetRun.widget;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
|
|
|
|
public void apply() {
|
|
|
|
Iterator<WidgetRun> it = this.widgets.iterator();
|
|
|
|
while (it.hasNext()) {
|
|
|
|
it.next().apply();
|
|
|
|
}
|
|
|
|
int size = this.widgets.size();
|
|
|
|
if (size >= 1) {
|
|
|
|
ConstraintWidget constraintWidget = this.widgets.get(0).widget;
|
|
|
|
ConstraintWidget constraintWidget2 = this.widgets.get(size - 1).widget;
|
|
|
|
if (this.orientation == 0) {
|
|
|
|
ConstraintAnchor constraintAnchor = constraintWidget.mLeft;
|
|
|
|
ConstraintAnchor constraintAnchor2 = constraintWidget2.mRight;
|
|
|
|
DependencyNode target = getTarget(constraintAnchor, 0);
|
|
|
|
int margin = constraintAnchor.getMargin();
|
|
|
|
ConstraintWidget firstVisibleWidget = getFirstVisibleWidget();
|
|
|
|
if (firstVisibleWidget != null) {
|
|
|
|
margin = firstVisibleWidget.mLeft.getMargin();
|
|
|
|
}
|
|
|
|
if (target != null) {
|
|
|
|
addTarget(this.start, target, margin);
|
|
|
|
}
|
|
|
|
DependencyNode target2 = getTarget(constraintAnchor2, 0);
|
|
|
|
int margin2 = constraintAnchor2.getMargin();
|
|
|
|
ConstraintWidget lastVisibleWidget = getLastVisibleWidget();
|
|
|
|
if (lastVisibleWidget != null) {
|
|
|
|
margin2 = lastVisibleWidget.mRight.getMargin();
|
|
|
|
}
|
|
|
|
if (target2 != null) {
|
|
|
|
addTarget(this.end, target2, -margin2);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
ConstraintAnchor constraintAnchor3 = constraintWidget.mTop;
|
|
|
|
ConstraintAnchor constraintAnchor4 = constraintWidget2.mBottom;
|
|
|
|
DependencyNode target3 = getTarget(constraintAnchor3, 1);
|
|
|
|
int margin3 = constraintAnchor3.getMargin();
|
|
|
|
ConstraintWidget firstVisibleWidget2 = getFirstVisibleWidget();
|
|
|
|
if (firstVisibleWidget2 != null) {
|
|
|
|
margin3 = firstVisibleWidget2.mTop.getMargin();
|
|
|
|
}
|
|
|
|
if (target3 != null) {
|
|
|
|
addTarget(this.start, target3, margin3);
|
|
|
|
}
|
|
|
|
DependencyNode target4 = getTarget(constraintAnchor4, 1);
|
|
|
|
int margin4 = constraintAnchor4.getMargin();
|
|
|
|
ConstraintWidget lastVisibleWidget2 = getLastVisibleWidget();
|
|
|
|
if (lastVisibleWidget2 != null) {
|
|
|
|
margin4 = lastVisibleWidget2.mBottom.getMargin();
|
|
|
|
}
|
|
|
|
if (target4 != null) {
|
|
|
|
addTarget(this.end, target4, -margin4);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.start.updateDelegate = this;
|
|
|
|
this.end.updateDelegate = this;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
|
|
|
|
public void applyToWidget() {
|
|
|
|
for (int i = 0; i < this.widgets.size(); i++) {
|
|
|
|
this.widgets.get(i).applyToWidget();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
|
|
|
|
public void clear() {
|
|
|
|
this.runGroup = null;
|
|
|
|
Iterator<WidgetRun> it = this.widgets.iterator();
|
|
|
|
while (it.hasNext()) {
|
|
|
|
it.next().clear();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
|
|
|
|
public long getWrapDimension() {
|
|
|
|
int size = this.widgets.size();
|
|
|
|
long j = 0;
|
|
|
|
for (int i = 0; i < size; i++) {
|
|
|
|
WidgetRun widgetRun = this.widgets.get(i);
|
|
|
|
j = ((long) widgetRun.end.margin) + widgetRun.getWrapDimension() + j + ((long) widgetRun.start.margin);
|
|
|
|
}
|
|
|
|
return j;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
|
|
|
|
public void reset() {
|
|
|
|
this.start.resolved = false;
|
|
|
|
this.end.resolved = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
|
|
|
|
public boolean supportsWrapComputation() {
|
|
|
|
int size = this.widgets.size();
|
|
|
|
for (int i = 0; i < size; i++) {
|
|
|
|
if (!this.widgets.get(i).supportsWrapComputation()) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String toString() {
|
2021-10-09 06:29:02 +00:00
|
|
|
StringBuilder O = a.O("ChainRun ");
|
|
|
|
O.append(this.orientation == 0 ? "horizontal : " : "vertical : ");
|
|
|
|
String sb = O.toString();
|
2021-07-24 02:37:17 +00:00
|
|
|
Iterator<WidgetRun> it = this.widgets.iterator();
|
|
|
|
while (it.hasNext()) {
|
2021-08-28 06:29:07 +00:00
|
|
|
String u = a.u(sb, "<");
|
|
|
|
sb = a.u(u + it.next(), "> ");
|
2021-07-24 02:37:17 +00:00
|
|
|
}
|
|
|
|
return sb;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX WARNING: Code restructure failed: missing block: B:104:0x01a6, code lost:
|
|
|
|
if (r1 != r7) goto L_0x01ce;
|
|
|
|
*/
|
|
|
|
/* JADX WARNING: Code restructure failed: missing block: B:112:0x01cc, code lost:
|
|
|
|
if (r1 != r7) goto L_0x01ce;
|
|
|
|
*/
|
|
|
|
/* JADX WARNING: Removed duplicated region for block: B:60:0x00d9 */
|
|
|
|
/* JADX WARNING: Removed duplicated region for block: B:63:0x00eb */
|
|
|
|
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun, androidx.constraintlayout.solver.widgets.analyzer.Dependency
|
|
|
|
public void update(Dependency dependency) {
|
|
|
|
int i;
|
|
|
|
int i2;
|
|
|
|
int i3;
|
|
|
|
int i4;
|
|
|
|
int i5;
|
|
|
|
float f;
|
|
|
|
int i6;
|
|
|
|
boolean z2;
|
|
|
|
int i7;
|
|
|
|
int i8;
|
|
|
|
int i9;
|
|
|
|
boolean z3;
|
|
|
|
float f2;
|
|
|
|
int i10;
|
|
|
|
int i11;
|
|
|
|
int i12;
|
|
|
|
int i13;
|
|
|
|
int i14;
|
|
|
|
int i15;
|
|
|
|
if (this.start.resolved && this.end.resolved) {
|
|
|
|
ConstraintWidget parent = this.widget.getParent();
|
|
|
|
boolean isRtl = (parent == null || !(parent instanceof ConstraintWidgetContainer)) ? false : ((ConstraintWidgetContainer) parent).isRtl();
|
|
|
|
int i16 = this.end.value - this.start.value;
|
|
|
|
int size = this.widgets.size();
|
|
|
|
int i17 = 0;
|
|
|
|
while (true) {
|
|
|
|
i = -1;
|
|
|
|
i2 = 8;
|
|
|
|
if (i17 >= size) {
|
|
|
|
i17 = -1;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if (this.widgets.get(i17).widget.getVisibility() != 8) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
i17++;
|
|
|
|
}
|
|
|
|
int i18 = size - 1;
|
|
|
|
int i19 = i18;
|
|
|
|
while (true) {
|
|
|
|
if (i19 < 0) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if (this.widgets.get(i19).widget.getVisibility() != 8) {
|
|
|
|
i = i19;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
i19--;
|
|
|
|
}
|
|
|
|
int i20 = 0;
|
|
|
|
while (true) {
|
|
|
|
if (i20 >= 2) {
|
|
|
|
i3 = 0;
|
|
|
|
i4 = 0;
|
|
|
|
i5 = 0;
|
|
|
|
f = 0.0f;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
int i21 = 0;
|
|
|
|
i4 = 0;
|
|
|
|
i5 = 0;
|
|
|
|
i13 = 0;
|
|
|
|
f = 0.0f;
|
|
|
|
while (i21 < size) {
|
|
|
|
WidgetRun widgetRun = this.widgets.get(i21);
|
|
|
|
if (widgetRun.widget.getVisibility() != i2) {
|
|
|
|
i13++;
|
|
|
|
if (i21 > 0 && i21 >= i17) {
|
|
|
|
i4 += widgetRun.start.margin;
|
|
|
|
}
|
|
|
|
DimensionDependency dimensionDependency = widgetRun.dimension;
|
|
|
|
int i22 = dimensionDependency.value;
|
|
|
|
boolean z4 = widgetRun.dimensionBehavior != ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
|
|
|
|
if (z4) {
|
|
|
|
int i23 = this.orientation;
|
|
|
|
if (i23 == 0 && !widgetRun.widget.horizontalRun.dimension.resolved) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (i23 != 1 || widgetRun.widget.verticalRun.dimension.resolved) {
|
|
|
|
i15 = i22;
|
|
|
|
} else {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
i15 = i22;
|
|
|
|
if (widgetRun.matchConstraintsType == 1 && i20 == 0) {
|
|
|
|
i14 = dimensionDependency.wrapValue;
|
|
|
|
i5++;
|
|
|
|
} else if (dimensionDependency.resolved) {
|
|
|
|
i14 = i15;
|
|
|
|
}
|
|
|
|
z4 = true;
|
|
|
|
if (z4) {
|
|
|
|
i5++;
|
|
|
|
float f3 = widgetRun.widget.mWeight[this.orientation];
|
|
|
|
if (f3 >= 0.0f) {
|
|
|
|
f += f3;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
i4 += i14;
|
|
|
|
}
|
|
|
|
if (i21 < i18 && i21 < i) {
|
|
|
|
i4 += -widgetRun.end.margin;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
i14 = i15;
|
|
|
|
if (z4) {
|
|
|
|
}
|
|
|
|
i4 += -widgetRun.end.margin;
|
|
|
|
}
|
|
|
|
i21++;
|
|
|
|
i2 = 8;
|
|
|
|
}
|
|
|
|
if (i4 < i16 || i5 == 0) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
i20++;
|
|
|
|
i2 = 8;
|
|
|
|
}
|
|
|
|
i3 = i13;
|
|
|
|
int i24 = this.start.value;
|
|
|
|
if (isRtl) {
|
|
|
|
i24 = this.end.value;
|
|
|
|
}
|
|
|
|
if (i4 > i16) {
|
|
|
|
i24 = isRtl ? i24 + ((int) ((((float) (i4 - i16)) / 2.0f) + 0.5f)) : i24 - ((int) ((((float) (i4 - i16)) / 2.0f) + 0.5f));
|
|
|
|
}
|
|
|
|
if (i5 > 0) {
|
|
|
|
float f4 = (float) (i16 - i4);
|
|
|
|
int i25 = (int) ((f4 / ((float) i5)) + 0.5f);
|
|
|
|
int i26 = 0;
|
|
|
|
int i27 = 0;
|
|
|
|
while (i26 < size) {
|
|
|
|
WidgetRun widgetRun2 = this.widgets.get(i26);
|
|
|
|
if (widgetRun2.widget.getVisibility() != 8 && widgetRun2.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
|
|
|
|
DimensionDependency dimensionDependency2 = widgetRun2.dimension;
|
|
|
|
if (!dimensionDependency2.resolved) {
|
|
|
|
if (f > 0.0f) {
|
|
|
|
i10 = i24;
|
|
|
|
i11 = (int) (((widgetRun2.widget.mWeight[this.orientation] * f4) / f) + 0.5f);
|
|
|
|
} else {
|
|
|
|
i10 = i24;
|
|
|
|
i11 = i25;
|
|
|
|
}
|
|
|
|
if (this.orientation == 0) {
|
|
|
|
ConstraintWidget constraintWidget = widgetRun2.widget;
|
|
|
|
f2 = f4;
|
|
|
|
int i28 = constraintWidget.mMatchConstraintMaxWidth;
|
|
|
|
z3 = isRtl;
|
|
|
|
i9 = i3;
|
|
|
|
i12 = Math.max(constraintWidget.mMatchConstraintMinWidth, widgetRun2.matchConstraintsType == 1 ? Math.min(i11, dimensionDependency2.wrapValue) : i11);
|
|
|
|
if (i28 > 0) {
|
|
|
|
i12 = Math.min(i28, i12);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
z3 = isRtl;
|
|
|
|
i9 = i3;
|
|
|
|
f2 = f4;
|
|
|
|
ConstraintWidget constraintWidget2 = widgetRun2.widget;
|
|
|
|
int i29 = constraintWidget2.mMatchConstraintMaxHeight;
|
|
|
|
i12 = Math.max(constraintWidget2.mMatchConstraintMinHeight, widgetRun2.matchConstraintsType == 1 ? Math.min(i11, dimensionDependency2.wrapValue) : i11);
|
|
|
|
if (i29 > 0) {
|
|
|
|
i12 = Math.min(i29, i12);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
i27++;
|
|
|
|
i11 = i12;
|
|
|
|
widgetRun2.dimension.resolve(i11);
|
|
|
|
i26++;
|
|
|
|
i25 = i25;
|
|
|
|
i4 = i4;
|
|
|
|
i24 = i10;
|
|
|
|
f4 = f2;
|
|
|
|
isRtl = z3;
|
|
|
|
i3 = i9;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
z3 = isRtl;
|
|
|
|
i9 = i3;
|
|
|
|
i10 = i24;
|
|
|
|
f2 = f4;
|
|
|
|
i26++;
|
|
|
|
i25 = i25;
|
|
|
|
i4 = i4;
|
|
|
|
i24 = i10;
|
|
|
|
f4 = f2;
|
|
|
|
isRtl = z3;
|
|
|
|
i3 = i9;
|
|
|
|
}
|
|
|
|
z2 = isRtl;
|
|
|
|
i6 = i3;
|
|
|
|
i7 = i24;
|
|
|
|
if (i27 > 0) {
|
|
|
|
i5 -= i27;
|
|
|
|
int i30 = 0;
|
|
|
|
for (int i31 = 0; i31 < size; i31++) {
|
|
|
|
WidgetRun widgetRun3 = this.widgets.get(i31);
|
|
|
|
if (widgetRun3.widget.getVisibility() != 8) {
|
|
|
|
if (i31 > 0 && i31 >= i17) {
|
|
|
|
i30 += widgetRun3.start.margin;
|
|
|
|
}
|
|
|
|
i30 += widgetRun3.dimension.value;
|
|
|
|
if (i31 < i18 && i31 < i) {
|
|
|
|
i30 += -widgetRun3.end.margin;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
i4 = i30;
|
|
|
|
} else {
|
|
|
|
i4 = i4;
|
|
|
|
}
|
|
|
|
i8 = 2;
|
|
|
|
if (this.chainStyle == 2 && i27 == 0) {
|
|
|
|
this.chainStyle = 0;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
z2 = isRtl;
|
|
|
|
i6 = i3;
|
|
|
|
i7 = i24;
|
|
|
|
i8 = 2;
|
|
|
|
}
|
|
|
|
if (i4 > i16) {
|
|
|
|
this.chainStyle = i8;
|
|
|
|
}
|
|
|
|
if (i6 > 0 && i5 == 0 && i17 == i) {
|
|
|
|
this.chainStyle = i8;
|
|
|
|
}
|
|
|
|
int i32 = this.chainStyle;
|
|
|
|
if (i32 == 1) {
|
|
|
|
int i33 = i6 > 1 ? (i16 - i4) / (i6 - 1) : i6 == 1 ? (i16 - i4) / 2 : 0;
|
|
|
|
if (i5 > 0) {
|
|
|
|
i33 = 0;
|
|
|
|
}
|
|
|
|
int i34 = i7;
|
|
|
|
for (int i35 = 0; i35 < size; i35++) {
|
|
|
|
WidgetRun widgetRun4 = this.widgets.get(z2 ? size - (i35 + 1) : i35);
|
|
|
|
if (widgetRun4.widget.getVisibility() == 8) {
|
|
|
|
widgetRun4.start.resolve(i34);
|
|
|
|
widgetRun4.end.resolve(i34);
|
|
|
|
} else {
|
|
|
|
if (i35 > 0) {
|
|
|
|
i34 = z2 ? i34 - i33 : i34 + i33;
|
|
|
|
}
|
|
|
|
if (i35 > 0 && i35 >= i17) {
|
|
|
|
i34 = z2 ? i34 - widgetRun4.start.margin : i34 + widgetRun4.start.margin;
|
|
|
|
}
|
|
|
|
if (z2) {
|
|
|
|
widgetRun4.end.resolve(i34);
|
|
|
|
} else {
|
|
|
|
widgetRun4.start.resolve(i34);
|
|
|
|
}
|
|
|
|
DimensionDependency dimensionDependency3 = widgetRun4.dimension;
|
|
|
|
int i36 = dimensionDependency3.value;
|
|
|
|
if (widgetRun4.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && widgetRun4.matchConstraintsType == 1) {
|
|
|
|
i36 = dimensionDependency3.wrapValue;
|
|
|
|
}
|
|
|
|
i34 = z2 ? i34 - i36 : i34 + i36;
|
|
|
|
if (z2) {
|
|
|
|
widgetRun4.start.resolve(i34);
|
|
|
|
} else {
|
|
|
|
widgetRun4.end.resolve(i34);
|
|
|
|
}
|
|
|
|
widgetRun4.resolved = true;
|
|
|
|
if (i35 < i18 && i35 < i) {
|
|
|
|
i34 = z2 ? i34 - (-widgetRun4.end.margin) : i34 + (-widgetRun4.end.margin);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (i32 == 0) {
|
|
|
|
int i37 = (i16 - i4) / (i6 + 1);
|
|
|
|
if (i5 > 0) {
|
|
|
|
i37 = 0;
|
|
|
|
}
|
|
|
|
int i38 = i7;
|
|
|
|
for (int i39 = 0; i39 < size; i39++) {
|
|
|
|
WidgetRun widgetRun5 = this.widgets.get(z2 ? size - (i39 + 1) : i39);
|
|
|
|
if (widgetRun5.widget.getVisibility() == 8) {
|
|
|
|
widgetRun5.start.resolve(i38);
|
|
|
|
widgetRun5.end.resolve(i38);
|
|
|
|
} else {
|
|
|
|
int i40 = z2 ? i38 - i37 : i38 + i37;
|
|
|
|
if (i39 > 0 && i39 >= i17) {
|
|
|
|
i40 = z2 ? i40 - widgetRun5.start.margin : i40 + widgetRun5.start.margin;
|
|
|
|
}
|
|
|
|
if (z2) {
|
|
|
|
widgetRun5.end.resolve(i40);
|
|
|
|
} else {
|
|
|
|
widgetRun5.start.resolve(i40);
|
|
|
|
}
|
|
|
|
DimensionDependency dimensionDependency4 = widgetRun5.dimension;
|
|
|
|
int i41 = dimensionDependency4.value;
|
|
|
|
if (widgetRun5.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && widgetRun5.matchConstraintsType == 1) {
|
|
|
|
i41 = Math.min(i41, dimensionDependency4.wrapValue);
|
|
|
|
}
|
|
|
|
i38 = z2 ? i40 - i41 : i40 + i41;
|
|
|
|
if (z2) {
|
|
|
|
widgetRun5.start.resolve(i38);
|
|
|
|
} else {
|
|
|
|
widgetRun5.end.resolve(i38);
|
|
|
|
}
|
|
|
|
if (i39 < i18 && i39 < i) {
|
|
|
|
i38 = z2 ? i38 - (-widgetRun5.end.margin) : i38 + (-widgetRun5.end.margin);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (i32 == 2) {
|
|
|
|
float horizontalBiasPercent = this.orientation == 0 ? this.widget.getHorizontalBiasPercent() : this.widget.getVerticalBiasPercent();
|
|
|
|
if (z2) {
|
|
|
|
horizontalBiasPercent = 1.0f - horizontalBiasPercent;
|
|
|
|
}
|
|
|
|
int i42 = (int) ((((float) (i16 - i4)) * horizontalBiasPercent) + 0.5f);
|
|
|
|
if (i42 < 0 || i5 > 0) {
|
|
|
|
i42 = 0;
|
|
|
|
}
|
|
|
|
int i43 = z2 ? i7 - i42 : i7 + i42;
|
|
|
|
for (int i44 = 0; i44 < size; i44++) {
|
|
|
|
WidgetRun widgetRun6 = this.widgets.get(z2 ? size - (i44 + 1) : i44);
|
|
|
|
if (widgetRun6.widget.getVisibility() == 8) {
|
|
|
|
widgetRun6.start.resolve(i43);
|
|
|
|
widgetRun6.end.resolve(i43);
|
|
|
|
} else {
|
|
|
|
if (i44 > 0 && i44 >= i17) {
|
|
|
|
i43 = z2 ? i43 - widgetRun6.start.margin : i43 + widgetRun6.start.margin;
|
|
|
|
}
|
|
|
|
if (z2) {
|
|
|
|
widgetRun6.end.resolve(i43);
|
|
|
|
} else {
|
|
|
|
widgetRun6.start.resolve(i43);
|
|
|
|
}
|
|
|
|
DimensionDependency dimensionDependency5 = widgetRun6.dimension;
|
|
|
|
int i45 = dimensionDependency5.value;
|
|
|
|
if (widgetRun6.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
|
|
|
|
if (widgetRun6.matchConstraintsType == 1) {
|
|
|
|
i45 = dimensionDependency5.wrapValue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
i43 = z2 ? i43 - i45 : i43 + i45;
|
|
|
|
if (z2) {
|
|
|
|
widgetRun6.start.resolve(i43);
|
|
|
|
} else {
|
|
|
|
widgetRun6.end.resolve(i43);
|
|
|
|
}
|
|
|
|
if (i44 < i18 && i44 < i) {
|
|
|
|
i43 = z2 ? i43 - (-widgetRun6.end.margin) : i43 + (-widgetRun6.end.margin);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|