.class public Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .super Landroidx/constraintlayout/solver/widgets/ResolutionNode; .source "ResolutionAnchor.java" # static fields .field public static final BARRIER_CONNECTION:I = 0x5 .field public static final CENTER_CONNECTION:I = 0x2 .field public static final CHAIN_CONNECTION:I = 0x4 .field public static final DIRECT_CONNECTION:I = 0x1 .field public static final MATCH_CONNECTION:I = 0x3 .field public static final UNCONNECTED:I # instance fields .field computedValue:F .field private dimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; .field private dimensionMultiplier:I .field myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; .field offset:F .field private opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .field private oppositeDimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; .field private oppositeDimensionMultiplier:I .field private oppositeOffset:F .field resolvedOffset:F .field resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .field target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .field type:I # direct methods .method public constructor (Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;)V .registers 4 .line 51 invoke-direct {p0}, Landroidx/constraintlayout/solver/widgets/ResolutionNode;->()V const/4 v0, 0x0 .line 34 iput v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I const/4 v0, 0x0 .line 46 iput-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; const/4 v1, 0x1 .line 47 iput v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimensionMultiplier:I .line 48 iput-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; .line 49 iput v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimensionMultiplier:I .line 52 iput-object p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; return-void .end method # virtual methods .method addResolvedValue(Landroidx/constraintlayout/solver/LinearSystem;)V .registers 6 .line 304 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getSolverVariable()Landroidx/constraintlayout/solver/SolverVariable; move-result-object v0 .line 306 iget-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; const/high16 v2, 0x3f000000 # 0.5f if-nez v1, :cond_14 .line 307 iget v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F add-float/2addr v1, v2 float-to-int v1, v1 invoke-virtual {p1, v0, v1}, Landroidx/constraintlayout/solver/LinearSystem;->addEquality(Landroidx/constraintlayout/solver/SolverVariable;I)V goto :goto_22 .line 309 :cond_14 iget-object v1, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {p1, v1}, Landroidx/constraintlayout/solver/LinearSystem;->createObjectVariable(Ljava/lang/Object;)Landroidx/constraintlayout/solver/SolverVariable; move-result-object v1 .line 310 iget v3, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F add-float/2addr v3, v2 float-to-int v2, v3 const/4 v3, 0x6 invoke-virtual {p1, v0, v1, v2, v3}, Landroidx/constraintlayout/solver/LinearSystem;->addEquality(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/SolverVariable;II)Landroidx/constraintlayout/solver/ArrayRow; :goto_22 return-void .end method .method public dependsOn(ILandroidx/constraintlayout/solver/widgets/ResolutionAnchor;I)V .registers 4 .line 262 iput p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I .line 263 iput-object p2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; int-to-float p1, p3 .line 264 iput p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->offset:F .line 265 invoke-virtual {p2, p0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->addDependent(Landroidx/constraintlayout/solver/widgets/ResolutionNode;)V return-void .end method .method public dependsOn(Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;I)V .registers 3 .line 272 iput-object p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; int-to-float p2, p2 .line 273 iput p2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->offset:F .line 274 invoke-virtual {p1, p0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->addDependent(Landroidx/constraintlayout/solver/widgets/ResolutionNode;)V return-void .end method .method public dependsOn(Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;ILandroidx/constraintlayout/solver/widgets/ResolutionDimension;)V .registers 4 .line 281 iput-object p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 282 invoke-virtual {p1, p0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->addDependent(Landroidx/constraintlayout/solver/widgets/ResolutionNode;)V .line 283 iput-object p3, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; .line 284 iput p2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimensionMultiplier:I .line 285 invoke-virtual {p3, p0}, Landroidx/constraintlayout/solver/widgets/ResolutionDimension;->addDependent(Landroidx/constraintlayout/solver/widgets/ResolutionNode;)V return-void .end method .method public getResolvedValue()F .registers 2 .line 315 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F return v0 .end method .method public remove(Landroidx/constraintlayout/solver/widgets/ResolutionDimension;)V .registers 4 .line 56 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; const/4 v1, 0x0 if-ne v0, p1, :cond_d .line 57 iput-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; .line 58 iget p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimensionMultiplier:I int-to-float p1, p1 iput p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->offset:F goto :goto_18 .line 59 :cond_d iget-object p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; if-ne v0, p1, :cond_18 .line 60 iput-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; .line 61 iget p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimensionMultiplier:I int-to-float p1, p1 iput p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeOffset:F .line 63 :cond_18 :goto_18 invoke-virtual {p0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolve()V return-void .end method .method public reset()V .registers 4 .line 229 invoke-super {p0}, Landroidx/constraintlayout/solver/widgets/ResolutionNode;->reset()V const/4 v0, 0x0 .line 230 iput-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; const/4 v1, 0x0 .line 231 iput v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->offset:F .line 232 iput-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; const/4 v2, 0x1 .line 233 iput v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimensionMultiplier:I .line 234 iput-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; .line 235 iput v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimensionMultiplier:I .line 236 iput-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 237 iput v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F .line 238 iput v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->computedValue:F .line 239 iput-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 240 iput v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeOffset:F const/4 v0, 0x0 .line 241 iput v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I return-void .end method .method public resolve()V .registers 9 .line 110 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->state:I const/4 v1, 0x1 if-ne v0, v1, :cond_6 return-void .line 113 :cond_6 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I const/4 v2, 0x4 if-ne v0, v2, :cond_c return-void .line 116 :cond_c iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; if-eqz v0, :cond_1f .line 117 iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionDimension;->state:I if-eq v0, v1, :cond_15 return-void .line 120 :cond_15 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimensionMultiplier:I int-to-float v0, v0 iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; iget v2, v2, Landroidx/constraintlayout/solver/widgets/ResolutionDimension;->value:F mul-float/2addr v0, v2 iput v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->offset:F .line 122 :cond_1f iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; if-eqz v0, :cond_32 .line 123 iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionDimension;->state:I if-eq v0, v1, :cond_28 return-void .line 126 :cond_28 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimensionMultiplier:I int-to-float v0, v0 iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; iget v2, v2, Landroidx/constraintlayout/solver/widgets/ResolutionDimension;->value:F mul-float/2addr v0, v2 iput v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeOffset:F .line 128 :cond_32 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I if-ne v0, v1, :cond_59 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; if-eqz v0, :cond_3e iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->state:I if-ne v0, v1, :cond_59 .line 133 :cond_3e iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; if-nez v0, :cond_49 .line 134 iput-object p0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 135 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->offset:F iput v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F goto :goto_54 .line 137 :cond_49 iget-object v1, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iput-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 138 iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F iget v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->offset:F add-float/2addr v0, v1 iput v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F .line 140 :goto_54 invoke-virtual {p0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->didResolve()V goto/16 :goto_1a8 .line 141 :cond_59 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I const/4 v2, 0x2 const-wide/16 v3, 0x1 if-ne v0, v2, :cond_14f iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; if-eqz v0, :cond_14f iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->state:I if-ne v0, v1, :cond_14f iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; if-eqz v0, :cond_14f iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; if-eqz v0, :cond_14f iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->state:I if-ne v0, v1, :cond_14f .line 149 invoke-static {}, Landroidx/constraintlayout/solver/LinearSystem;->getMetrics()Landroidx/constraintlayout/solver/Metrics; move-result-object v0 if-eqz v0, :cond_83 .line 150 invoke-static {}, Landroidx/constraintlayout/solver/LinearSystem;->getMetrics()Landroidx/constraintlayout/solver/Metrics; move-result-object v0 iget-wide v5, v0, Landroidx/constraintlayout/solver/Metrics;->centerConnectionResolved:J add-long/2addr v5, v3 iput-wide v5, v0, Landroidx/constraintlayout/solver/Metrics;->centerConnectionResolved:J .line 152 :cond_83 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iput-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 153 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v2, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iput-object v2, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 158 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mType:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; sget-object v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type;->RIGHT:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; const/4 v3, 0x0 if-eq v0, v2, :cond_a4 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mType:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; sget-object v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type;->BOTTOM:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; if-ne v0, v2, :cond_a3 goto :goto_a4 :cond_a3 move v1, v3 :cond_a4 :goto_a4 if-eqz v1, :cond_b1 .line 162 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget v2, v2, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F goto :goto_bb .line 164 :cond_b1 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget v2, v2, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F :goto_bb sub-float/2addr v0, v2 .line 167 iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mType:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; sget-object v4, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type;->LEFT:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; if-eq v2, v4, :cond_de iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mType:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; sget-object v4, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type;->RIGHT:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; if-ne v2, v4, :cond_cd goto :goto_de .line 172 :cond_cd iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mOwner:Landroidx/constraintlayout/solver/widgets/ConstraintWidget; invoke-virtual {v2}, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->getHeight()I move-result v2 int-to-float v2, v2 sub-float/2addr v0, v2 .line 173 iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mOwner:Landroidx/constraintlayout/solver/widgets/ConstraintWidget; iget v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mVerticalBiasPercent:F goto :goto_ee .line 169 :cond_de :goto_de iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mOwner:Landroidx/constraintlayout/solver/widgets/ConstraintWidget; invoke-virtual {v2}, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->getWidth()I move-result v2 int-to-float v2, v2 sub-float/2addr v0, v2 .line 170 iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mOwner:Landroidx/constraintlayout/solver/widgets/ConstraintWidget; iget v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->mHorizontalBiasPercent:F .line 175 :goto_ee iget-object v4, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v4}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I move-result v4 .line 176 iget-object v5, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v5, v5, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v5}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I move-result v5 .line 177 iget-object v6, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v6}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getTarget()Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; move-result-object v6 iget-object v7, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v7, v7, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v7}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getTarget()Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; move-result-object v7 if-ne v6, v7, :cond_110 const/high16 v2, 0x3f000000 # 0.5f move v5, v3 goto :goto_111 :cond_110 move v3, v4 :goto_111 int-to-float v3, v3 sub-float/2addr v0, v3 int-to-float v4, v5 sub-float/2addr v0, v4 const/high16 v5, 0x3f800000 # 1.0f if-eqz v1, :cond_130 .line 188 iget-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v6, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget v6, v6, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F add-float/2addr v6, v4 mul-float v4, v0, v2 add-float/2addr v6, v4 iput v6, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F .line 190 iget-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget v1, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F sub-float/2addr v1, v3 sub-float/2addr v5, v2 mul-float/2addr v0, v5 sub-float/2addr v1, v0 iput v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F goto :goto_146 .line 192 :cond_130 iget-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget v1, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F add-float/2addr v1, v3 mul-float v3, v0, v2 add-float/2addr v1, v3 iput v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F .line 193 iget-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v3, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget v3, v3, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F sub-float/2addr v3, v4 sub-float/2addr v5, v2 mul-float/2addr v0, v5 sub-float/2addr v3, v0 iput v3, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F .line 197 :goto_146 invoke-virtual {p0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->didResolve()V .line 198 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->didResolve()V goto :goto_1a8 .line 199 :cond_14f iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I const/4 v2, 0x3 if-ne v0, v2, :cond_19c iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; if-eqz v0, :cond_19c iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->state:I if-ne v0, v1, :cond_19c iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; if-eqz v0, :cond_19c iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; if-eqz v0, :cond_19c iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->state:I if-ne v0, v1, :cond_19c .line 207 invoke-static {}, Landroidx/constraintlayout/solver/LinearSystem;->getMetrics()Landroidx/constraintlayout/solver/Metrics; move-result-object v0 if-eqz v0, :cond_177 .line 208 invoke-static {}, Landroidx/constraintlayout/solver/LinearSystem;->getMetrics()Landroidx/constraintlayout/solver/Metrics; move-result-object v0 iget-wide v1, v0, Landroidx/constraintlayout/solver/Metrics;->matchConnectionResolved:J add-long/2addr v1, v3 iput-wide v1, v0, Landroidx/constraintlayout/solver/Metrics;->matchConnectionResolved:J .line 210 :cond_177 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v1, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iput-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 211 iget-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v2, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->target:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iget-object v3, v2, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; iput-object v3, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 213 iget v0, v0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F iget v3, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->offset:F add-float/2addr v0, v3 iput v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F .line 214 iget v0, v2, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F iget v2, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->offset:F add-float/2addr v0, v2 iput v0, v1, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F .line 216 invoke-virtual {p0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->didResolve()V .line 217 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->didResolve()V goto :goto_1a8 .line 218 :cond_19c iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I const/4 v1, 0x5 if-ne v0, v1, :cond_1a8 .line 219 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v0, v0, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mOwner:Landroidx/constraintlayout/solver/widgets/ConstraintWidget; invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintWidget;->resolve()V :cond_1a8 :goto_1a8 return-void .end method .method public resolve(Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;F)V .registers 4 .line 79 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->state:I if-eqz v0, :cond_e iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; if-eq v0, p1, :cond_1d iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F cmpl-float v0, v0, p2 if-eqz v0, :cond_1d .line 80 :cond_e iput-object p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 81 iput p2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F .line 82 iget p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->state:I const/4 p2, 0x1 if-ne p1, p2, :cond_1a .line 83 invoke-virtual {p0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->invalidate()V .line 85 :cond_1a invoke-virtual {p0}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->didResolve()V :cond_1d return-void .end method .method sType(I)Ljava/lang/String; .registers 3 const/4 v0, 0x1 if-ne p1, v0, :cond_6 .line 91 const-string p1, "DIRECT" return-object p1 :cond_6 const/4 v0, 0x2 if-ne p1, v0, :cond_c .line 93 const-string p1, "CENTER" return-object p1 :cond_c const/4 v0, 0x3 if-ne p1, v0, :cond_12 .line 95 const-string p1, "MATCH" return-object p1 :cond_12 const/4 v0, 0x4 if-ne p1, v0, :cond_18 .line 97 const-string p1, "CHAIN" return-object p1 :cond_18 const/4 v0, 0x5 if-ne p1, v0, :cond_1e .line 99 const-string p1, "BARRIER" return-object p1 .line 101 :cond_1e const-string p1, "UNCONNECTED" return-object p1 .end method .method public setOpposite(Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;F)V .registers 3 .line 293 iput-object p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 294 iput p2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeOffset:F return-void .end method .method public setOpposite(Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;ILandroidx/constraintlayout/solver/widgets/ResolutionDimension;)V .registers 4 .line 298 iput-object p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->opposite:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; .line 299 iput-object p3, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimension:Landroidx/constraintlayout/solver/widgets/ResolutionDimension; .line 300 iput p2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->oppositeDimensionMultiplier:I return-void .end method .method public setType(I)V .registers 2 .line 224 iput p1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I return-void .end method .method public toString()Ljava/lang/String; .registers 4 .line 68 iget v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->state:I const/4 v1, 0x1 if-ne v0, v1, :cond_6d .line 69 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; const-string v1, ", RESOLVED: " const-string v2, "[" if-ne v0, p0, :cond_37 .line 70 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, "] type: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I invoke-virtual {p0, v1}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->sType(I)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .line 72 :cond_37 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedTarget:Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ":" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->resolvedOffset:F invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, "] type: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I .line 73 invoke-virtual {p0, v1}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->sType(I)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .line 75 :cond_6d new-instance v0, Ljava/lang/StringBuilder; const-string v1, "{ " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, " UNRESOLVED} type: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I invoke-virtual {p0, v1}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->sType(I)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public update()V .registers 5 .line 245 iget-object v0, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getTarget()Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; move-result-object v0 if-nez v0, :cond_9 return-void .line 249 :cond_9 invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getTarget()Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; move-result-object v1 iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; if-ne v1, v2, :cond_1a const/4 v1, 0x4 .line 250 iput v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I .line 251 invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getResolutionNode()Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; move-result-object v2 iput v1, v2, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->type:I .line 253 :cond_1a iget-object v1, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; invoke-virtual {v1}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getMargin()I move-result v1 .line 254 iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mType:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; sget-object v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type;->RIGHT:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; if-eq v2, v3, :cond_30 iget-object v2, p0, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->myAnchor:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor; iget-object v2, v2, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->mType:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; sget-object v3, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type;->BOTTOM:Landroidx/constraintlayout/solver/widgets/ConstraintAnchor$Type; if-ne v2, v3, :cond_31 :cond_30 neg-int v1, v1 .line 258 :cond_31 invoke-virtual {v0}, Landroidx/constraintlayout/solver/widgets/ConstraintAnchor;->getResolutionNode()Landroidx/constraintlayout/solver/widgets/ResolutionAnchor; move-result-object v0 invoke-virtual {p0, v0, v1}, Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;->dependsOn(Landroidx/constraintlayout/solver/widgets/ResolutionAnchor;I)V return-void .end method