package androidx.constraintlayout.solver.widgets; import androidx.constraintlayout.solver.widgets.ConstraintWidget; import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure; public class VirtualLayout extends HelperWidget { public BasicMeasure.Measure mMeasure = new BasicMeasure.Measure(); private int mMeasuredHeight = 0; private int mMeasuredWidth = 0; public BasicMeasure.Measurer mMeasurer = null; private boolean mNeedsCallFromSolver = false; private int mPaddingBottom = 0; private int mPaddingEnd = 0; private int mPaddingLeft = 0; private int mPaddingRight = 0; private int mPaddingStart = 0; private int mPaddingTop = 0; private int mResolvedPaddingLeft = 0; private int mResolvedPaddingRight = 0; public void applyRtl(boolean z2) { int i = this.mPaddingStart; if (i <= 0 && this.mPaddingEnd <= 0) { return; } if (z2) { this.mResolvedPaddingLeft = this.mPaddingEnd; this.mResolvedPaddingRight = i; return; } this.mResolvedPaddingLeft = i; this.mResolvedPaddingRight = this.mPaddingEnd; } public void captureWidgets() { for (int i = 0; i < this.mWidgetsCount; i++) { ConstraintWidget constraintWidget = this.mWidgets[i]; if (constraintWidget != null) { constraintWidget.setInVirtualLayout(true); } } } public int getMeasuredHeight() { return this.mMeasuredHeight; } public int getMeasuredWidth() { return this.mMeasuredWidth; } public int getPaddingBottom() { return this.mPaddingBottom; } public int getPaddingLeft() { return this.mResolvedPaddingLeft; } public int getPaddingRight() { return this.mResolvedPaddingRight; } public int getPaddingTop() { return this.mPaddingTop; } public void measure(int i, int i2, int i3, int i4) { } public void measure(ConstraintWidget constraintWidget, ConstraintWidget.DimensionBehaviour dimensionBehaviour, int i, ConstraintWidget.DimensionBehaviour dimensionBehaviour2, int i2) { while (this.mMeasurer == null && getParent() != null) { this.mMeasurer = ((ConstraintWidgetContainer) getParent()).getMeasurer(); } BasicMeasure.Measure measure = this.mMeasure; measure.horizontalBehavior = dimensionBehaviour; measure.verticalBehavior = dimensionBehaviour2; measure.horizontalDimension = i; measure.verticalDimension = i2; this.mMeasurer.measure(constraintWidget, measure); constraintWidget.setWidth(this.mMeasure.measuredWidth); constraintWidget.setHeight(this.mMeasure.measuredHeight); constraintWidget.setHasBaseline(this.mMeasure.measuredHasBaseline); constraintWidget.setBaselineDistance(this.mMeasure.measuredBaseline); } public boolean measureChildren() { ConstraintWidget constraintWidget = this.mParent; BasicMeasure.Measurer measurer = constraintWidget != null ? ((ConstraintWidgetContainer) constraintWidget).getMeasurer() : null; if (measurer == null) { return false; } int i = 0; while (true) { boolean z2 = true; if (i >= this.mWidgetsCount) { return true; } ConstraintWidget constraintWidget2 = this.mWidgets[i]; if (constraintWidget2 != null && !(constraintWidget2 instanceof Guideline)) { ConstraintWidget.DimensionBehaviour dimensionBehaviour = constraintWidget2.getDimensionBehaviour(0); ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = constraintWidget2.getDimensionBehaviour(1); ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT; if (dimensionBehaviour != dimensionBehaviour3 || constraintWidget2.mMatchConstraintDefaultWidth == 1 || dimensionBehaviour2 != dimensionBehaviour3 || constraintWidget2.mMatchConstraintDefaultHeight == 1) { z2 = false; } if (!z2) { if (dimensionBehaviour == dimensionBehaviour3) { dimensionBehaviour = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT; } if (dimensionBehaviour2 == dimensionBehaviour3) { dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT; } BasicMeasure.Measure measure = this.mMeasure; measure.horizontalBehavior = dimensionBehaviour; measure.verticalBehavior = dimensionBehaviour2; measure.horizontalDimension = constraintWidget2.getWidth(); this.mMeasure.verticalDimension = constraintWidget2.getHeight(); measurer.measure(constraintWidget2, this.mMeasure); constraintWidget2.setWidth(this.mMeasure.measuredWidth); constraintWidget2.setHeight(this.mMeasure.measuredHeight); constraintWidget2.setBaselineDistance(this.mMeasure.measuredBaseline); } } i++; } } public boolean needSolverPass() { return this.mNeedsCallFromSolver; } public void needsCallbackFromSolver(boolean z2) { this.mNeedsCallFromSolver = z2; } public void setMeasure(int i, int i2) { this.mMeasuredWidth = i; this.mMeasuredHeight = i2; } public void setPadding(int i) { this.mPaddingLeft = i; this.mPaddingTop = i; this.mPaddingRight = i; this.mPaddingBottom = i; this.mPaddingStart = i; this.mPaddingEnd = i; } public void setPaddingBottom(int i) { this.mPaddingBottom = i; } public void setPaddingEnd(int i) { this.mPaddingEnd = i; } public void setPaddingLeft(int i) { this.mPaddingLeft = i; this.mResolvedPaddingLeft = i; } public void setPaddingRight(int i) { this.mPaddingRight = i; this.mResolvedPaddingRight = i; } public void setPaddingStart(int i) { this.mPaddingStart = i; this.mResolvedPaddingLeft = i; this.mResolvedPaddingRight = i; } public void setPaddingTop(int i) { this.mPaddingTop = i; } @Override // androidx.constraintlayout.solver.widgets.HelperWidget, androidx.constraintlayout.solver.widgets.Helper public void updateConstraints(ConstraintWidgetContainer constraintWidgetContainer) { captureWidgets(); } }