.class public Landroidx/constraintlayout/motion/widget/KeyPosition; .super Landroidx/constraintlayout/motion/widget/KeyPositionBase; .source "KeyPosition.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/constraintlayout/motion/widget/KeyPosition$Loader; } .end annotation # static fields .field public static final KEY_TYPE:I = 0x2 .field public static final NAME:Ljava/lang/String; = "KeyPosition" .field public static final PERCENT_X:Ljava/lang/String; = "percentX" .field public static final PERCENT_Y:Ljava/lang/String; = "percentY" .field public static final TAG:Ljava/lang/String; = "KeyPosition" .field public static final TYPE_CARTESIAN:I = 0x0 .field public static final TYPE_PATH:I = 0x1 .field public static final TYPE_SCREEN:I = 0x2 # instance fields .field public mAltPercentX:F .field public mAltPercentY:F .field public mCalculatedPositionX:F .field public mCalculatedPositionY:F .field public mDrawPath:I .field public mPathMotionArc:I .field public mPercentHeight:F .field public mPercentWidth:F .field public mPercentX:F .field public mPercentY:F .field public mPositionType:I .field public mTransitionEasing:Ljava/lang/String; # direct methods .method public constructor ()V .locals 2 invoke-direct {p0}, Landroidx/constraintlayout/motion/widget/KeyPositionBase;->()V const/4 v0, 0x0 iput-object v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mTransitionEasing:Ljava/lang/String; sget v0, Landroidx/constraintlayout/motion/widget/Key;->UNSET:I iput v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPathMotionArc:I const/4 v0, 0x0 iput v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mDrawPath:I const/high16 v1, 0x7fc00000 # Float.NaN iput v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentWidth:F iput v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentHeight:F iput v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentX:F iput v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentY:F iput v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mAltPercentX:F iput v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mAltPercentY:F iput v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPositionType:I iput v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionX:F iput v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionY:F const/4 v0, 0x2 iput v0, p0, Landroidx/constraintlayout/motion/widget/Key;->mType:I return-void .end method .method private calcCartesianPosition(FFFF)V .locals 5 sub-float/2addr p3, p1 sub-float/2addr p4, p2 iget v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentX:F invoke-static {v0}, Ljava/lang/Float;->isNaN(F)Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_0 const/4 v0, 0x0 goto :goto_0 :cond_0 iget v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentX:F :goto_0 iget v2, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mAltPercentY:F invoke-static {v2}, Ljava/lang/Float;->isNaN(F)Z move-result v2 if-eqz v2, :cond_1 const/4 v2, 0x0 goto :goto_1 :cond_1 iget v2, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mAltPercentY:F :goto_1 iget v3, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentY:F invoke-static {v3}, Ljava/lang/Float;->isNaN(F)Z move-result v3 if-eqz v3, :cond_2 const/4 v3, 0x0 goto :goto_2 :cond_2 iget v3, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentY:F :goto_2 iget v4, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mAltPercentX:F invoke-static {v4}, Ljava/lang/Float;->isNaN(F)Z move-result v4 if-eqz v4, :cond_3 goto :goto_3 :cond_3 iget v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mAltPercentX:F :goto_3 mul-float v0, v0, p3 add-float/2addr v0, p1 mul-float v1, v1, p4 add-float/2addr v1, v0 float-to-int p1, v1 int-to-float p1, p1 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionX:F mul-float p3, p3, v2 add-float/2addr p3, p2 mul-float p4, p4, v3 add-float/2addr p4, p3 float-to-int p1, p4 int-to-float p1, p1 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionY:F return-void .end method .method private calcPathPosition(FFFF)V .locals 3 sub-float/2addr p3, p1 sub-float/2addr p4, p2 neg-float v0, p4 iget v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentX:F mul-float v2, p3, v1 add-float/2addr v2, p1 iget p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentY:F mul-float v0, v0, p1 add-float/2addr v0, v2 iput v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionX:F mul-float p4, p4, v1 add-float/2addr p4, p2 mul-float p3, p3, p1 add-float/2addr p3, p4 iput p3, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionY:F return-void .end method .method private calcScreenPosition(II)V .locals 3 const/4 v0, 0x0 sub-int/2addr p1, v0 int-to-float p1, p1 iget v1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentX:F mul-float p1, p1, v1 int-to-float v2, v0 add-float/2addr p1, v2 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionX:F sub-int/2addr p2, v0 int-to-float p1, p2 mul-float p1, p1, v1 add-float/2addr p1, v2 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionY:F return-void .end method # virtual methods .method public addValues(Ljava/util/HashMap;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/HashMap<", "Ljava/lang/String;", "Landroidx/constraintlayout/motion/widget/SplineSet;", ">;)V" } .end annotation return-void .end method .method public calcPosition(IIFFFF)V .locals 2 iget v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPositionType:I const/4 v1, 0x1 if-eq v0, v1, :cond_1 const/4 v1, 0x2 if-eq v0, v1, :cond_0 invoke-direct {p0, p3, p4, p5, p6}, Landroidx/constraintlayout/motion/widget/KeyPosition;->calcCartesianPosition(FFFF)V return-void :cond_0 invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/motion/widget/KeyPosition;->calcScreenPosition(II)V return-void :cond_1 invoke-direct {p0, p3, p4, p5, p6}, Landroidx/constraintlayout/motion/widget/KeyPosition;->calcPathPosition(FFFF)V return-void .end method .method public getPositionX()F .locals 1 iget v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionX:F return v0 .end method .method public getPositionY()F .locals 1 iget v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionY:F return v0 .end method .method public intersects(IILandroid/graphics/RectF;Landroid/graphics/RectF;FF)Z .locals 7 invoke-virtual {p3}, Landroid/graphics/RectF;->centerX()F move-result v3 invoke-virtual {p3}, Landroid/graphics/RectF;->centerY()F move-result v4 invoke-virtual {p4}, Landroid/graphics/RectF;->centerX()F move-result v5 invoke-virtual {p4}, Landroid/graphics/RectF;->centerY()F move-result v6 move-object v0, p0 move v1, p1 move v2, p2 invoke-virtual/range {v0 .. v6}, Landroidx/constraintlayout/motion/widget/KeyPosition;->calcPosition(IIFFFF)V iget p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionX:F sub-float/2addr p5, p1 invoke-static {p5}, Ljava/lang/Math;->abs(F)F move-result p1 const/high16 p2, 0x41a00000 # 20.0f cmpg-float p1, p1, p2 if-gez p1, :cond_0 iget p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mCalculatedPositionY:F sub-float/2addr p6, p1 invoke-static {p6}, Ljava/lang/Math;->abs(F)F move-result p1 cmpg-float p1, p1, p2 if-gez p1, :cond_0 const/4 p1, 0x1 return p1 :cond_0 const/4 p1, 0x0 return p1 .end method .method public load(Landroid/content/Context;Landroid/util/AttributeSet;)V .locals 1 sget-object v0, Landroidx/constraintlayout/widget/R$styleable;->KeyPosition:[I invoke-virtual {p1, p2, v0}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; move-result-object p1 invoke-static {p0, p1}, Landroidx/constraintlayout/motion/widget/KeyPosition$Loader;->access$000(Landroidx/constraintlayout/motion/widget/KeyPosition;Landroid/content/res/TypedArray;)V return-void .end method .method public positionAttributes(Landroid/view/View;Landroid/graphics/RectF;Landroid/graphics/RectF;FF[Ljava/lang/String;[F)V .locals 7 iget v0, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPositionType:I const/4 v1, 0x1 if-eq v0, v1, :cond_1 const/4 v1, 0x2 if-eq v0, v1, :cond_0 move-object v0, p0 move-object v1, p2 move-object v2, p3 move v3, p4 move v4, p5 move-object v5, p6 move-object v6, p7 invoke-virtual/range {v0 .. v6}, Landroidx/constraintlayout/motion/widget/KeyPosition;->positionCartAttributes(Landroid/graphics/RectF;Landroid/graphics/RectF;FF[Ljava/lang/String;[F)V return-void :cond_0 invoke-virtual/range {p0 .. p7}, Landroidx/constraintlayout/motion/widget/KeyPosition;->positionScreenAttributes(Landroid/view/View;Landroid/graphics/RectF;Landroid/graphics/RectF;FF[Ljava/lang/String;[F)V return-void :cond_1 move-object v0, p0 move-object v1, p2 move-object v2, p3 move v3, p4 move v4, p5 move-object v5, p6 move-object v6, p7 invoke-virtual/range {v0 .. v6}, Landroidx/constraintlayout/motion/widget/KeyPosition;->positionPathAttributes(Landroid/graphics/RectF;Landroid/graphics/RectF;FF[Ljava/lang/String;[F)V return-void .end method .method public positionCartAttributes(Landroid/graphics/RectF;Landroid/graphics/RectF;FF[Ljava/lang/String;[F)V .locals 6 invoke-virtual {p1}, Landroid/graphics/RectF;->centerX()F move-result v0 invoke-virtual {p1}, Landroid/graphics/RectF;->centerY()F move-result p1 invoke-virtual {p2}, Landroid/graphics/RectF;->centerX()F move-result v1 invoke-virtual {p2}, Landroid/graphics/RectF;->centerY()F move-result p2 sub-float/2addr v1, v0 sub-float/2addr p2, p1 const/4 v2, 0x0 aget-object v3, p5, v2 const-string v4, "percentX" const/4 v5, 0x1 if-eqz v3, :cond_1 aget-object p5, p5, v2 invoke-virtual {v4, p5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p5 if-eqz p5, :cond_0 sub-float/2addr p3, v0 div-float/2addr p3, v1 aput p3, p6, v2 sub-float/2addr p4, p1 div-float/2addr p4, p2 aput p4, p6, v5 goto :goto_0 :cond_0 sub-float/2addr p3, v0 div-float/2addr p3, v1 aput p3, p6, v5 sub-float/2addr p4, p1 div-float/2addr p4, p2 aput p4, p6, v2 goto :goto_0 :cond_1 aput-object v4, p5, v2 sub-float/2addr p3, v0 div-float/2addr p3, v1 aput p3, p6, v2 const-string p3, "percentY" aput-object p3, p5, v5 sub-float/2addr p4, p1 div-float/2addr p4, p2 aput p4, p6, v5 :goto_0 return-void .end method .method public positionPathAttributes(Landroid/graphics/RectF;Landroid/graphics/RectF;FF[Ljava/lang/String;[F)V .locals 12 invoke-virtual {p1}, Landroid/graphics/RectF;->centerX()F move-result v0 invoke-virtual {p1}, Landroid/graphics/RectF;->centerY()F move-result v1 invoke-virtual {p2}, Landroid/graphics/RectF;->centerX()F move-result v2 invoke-virtual {p2}, Landroid/graphics/RectF;->centerY()F move-result v3 sub-float/2addr v2, v0 sub-float/2addr v3, v1 float-to-double v4, v2 float-to-double v6, v3 invoke-static {v4, v5, v6, v7}, Ljava/lang/Math;->hypot(DD)D move-result-wide v4 double-to-float v4, v4 float-to-double v5, v4 const/4 v7, 0x1 const/4 v8, 0x0 const-wide v9, 0x3f1a36e2eb1c432dL # 1.0E-4 cmpg-double v11, v5, v9 if-gez v11, :cond_0 sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; const-string v1, "distance ~ 0" invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V const/4 v0, 0x0 aput v0, p6, v8 aput v0, p6, v7 return-void :cond_0 div-float/2addr v2, v4 div-float/2addr v3, v4 sub-float v1, p4, v1 mul-float v5, v2, v1 sub-float v0, p3, v0 mul-float v6, v0, v3 sub-float/2addr v5, v6 div-float/2addr v5, v4 mul-float v2, v2, v0 mul-float v3, v3, v1 add-float/2addr v3, v2 div-float/2addr v3, v4 aget-object v0, p5, v8 const-string v1, "percentX" if-eqz v0, :cond_1 aget-object v0, p5, v8 invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_2 aput v3, p6, v8 aput v5, p6, v7 goto :goto_0 :cond_1 aput-object v1, p5, v8 const-string v0, "percentY" aput-object v0, p5, v7 aput v3, p6, v8 aput v5, p6, v7 :cond_2 :goto_0 return-void .end method .method public positionScreenAttributes(Landroid/view/View;Landroid/graphics/RectF;Landroid/graphics/RectF;FF[Ljava/lang/String;[F)V .locals 3 invoke-virtual {p2}, Landroid/graphics/RectF;->centerX()F invoke-virtual {p2}, Landroid/graphics/RectF;->centerY()F invoke-virtual {p3}, Landroid/graphics/RectF;->centerX()F invoke-virtual {p3}, Landroid/graphics/RectF;->centerY()F invoke-virtual {p1}, Landroid/view/View;->getParent()Landroid/view/ViewParent; move-result-object p1 check-cast p1, Landroid/view/ViewGroup; invoke-virtual {p1}, Landroid/view/ViewGroup;->getWidth()I move-result p2 invoke-virtual {p1}, Landroid/view/ViewGroup;->getHeight()I move-result p1 const/4 p3, 0x0 aget-object v0, p6, p3 const-string v1, "percentX" const/4 v2, 0x1 if-eqz v0, :cond_1 aget-object p6, p6, p3 invoke-virtual {v1, p6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p6 if-eqz p6, :cond_0 int-to-float p2, p2 div-float/2addr p4, p2 aput p4, p7, p3 int-to-float p1, p1 div-float/2addr p5, p1 aput p5, p7, v2 goto :goto_0 :cond_0 int-to-float p2, p2 div-float/2addr p4, p2 aput p4, p7, v2 int-to-float p1, p1 div-float/2addr p5, p1 aput p5, p7, p3 goto :goto_0 :cond_1 aput-object v1, p6, p3 int-to-float p2, p2 div-float/2addr p4, p2 aput p4, p7, p3 const-string p2, "percentY" aput-object p2, p6, v2 int-to-float p1, p1 div-float/2addr p5, p1 aput p5, p7, v2 :goto_0 return-void .end method .method public setValue(Ljava/lang/String;Ljava/lang/Object;)V .locals 1 invoke-virtual {p1}, Ljava/lang/String;->hashCode()I move-result v0 sparse-switch v0, :sswitch_data_0 goto :goto_0 :sswitch_0 const-string v0, "percentY" invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_0 const/4 p1, 0x6 goto :goto_1 :sswitch_1 const-string v0, "percentX" invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_0 const/4 p1, 0x5 goto :goto_1 :sswitch_2 const-string v0, "sizePercent" invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_0 const/4 p1, 0x4 goto :goto_1 :sswitch_3 const-string v0, "drawPath" invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_0 const/4 p1, 0x1 goto :goto_1 :sswitch_4 const-string v0, "percentHeight" invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_0 const/4 p1, 0x3 goto :goto_1 :sswitch_5 const-string v0, "percentWidth" invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_0 const/4 p1, 0x2 goto :goto_1 :sswitch_6 const-string/jumbo v0, "transitionEasing" invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_0 const/4 p1, 0x0 goto :goto_1 :cond_0 :goto_0 const/4 p1, -0x1 :goto_1 packed-switch p1, :pswitch_data_0 goto :goto_2 :pswitch_0 invoke-virtual {p0, p2}, Landroidx/constraintlayout/motion/widget/Key;->toFloat(Ljava/lang/Object;)F move-result p1 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentY:F goto :goto_2 :pswitch_1 invoke-virtual {p0, p2}, Landroidx/constraintlayout/motion/widget/Key;->toFloat(Ljava/lang/Object;)F move-result p1 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentX:F goto :goto_2 :pswitch_2 invoke-virtual {p0, p2}, Landroidx/constraintlayout/motion/widget/Key;->toFloat(Ljava/lang/Object;)F move-result p1 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentWidth:F iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentHeight:F goto :goto_2 :pswitch_3 invoke-virtual {p0, p2}, Landroidx/constraintlayout/motion/widget/Key;->toFloat(Ljava/lang/Object;)F move-result p1 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentHeight:F goto :goto_2 :pswitch_4 invoke-virtual {p0, p2}, Landroidx/constraintlayout/motion/widget/Key;->toFloat(Ljava/lang/Object;)F move-result p1 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mPercentWidth:F goto :goto_2 :pswitch_5 invoke-virtual {p0, p2}, Landroidx/constraintlayout/motion/widget/Key;->toInt(Ljava/lang/Object;)I move-result p1 iput p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mDrawPath:I goto :goto_2 :pswitch_6 invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object p1 iput-object p1, p0, Landroidx/constraintlayout/motion/widget/KeyPosition;->mTransitionEasing:Ljava/lang/String; :goto_2 return-void nop :sswitch_data_0 .sparse-switch -0x6c0d7d20 -> :sswitch_6 -0x4330437f -> :sswitch_5 -0x3ca72634 -> :sswitch_4 -0x314b3c77 -> :sswitch_3 -0xbefb6fc -> :sswitch_2 0x198424b3 -> :sswitch_1 0x198424b4 -> :sswitch_0 .end sparse-switch :pswitch_data_0 .packed-switch 0x0 :pswitch_6 :pswitch_5 :pswitch_4 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method