CircularPropagation.smali

.class public Landroidx/transition/CircularPropagation;
.super Landroidx/transition/VisibilityPropagation;
.source "CircularPropagation.java"


# instance fields
.field private mPropagationSpeed:F


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>()V
    .registers 2

    .line 33
    invoke-direct {p0}, Landroidx/transition/VisibilityPropagation;-><init>()V

    .line 35
    const/high16 v0, 0x40400000    # 3.0f

    iput v0, p0, Landroidx/transition/CircularPropagation;->mPropagationSpeed:F

    return-void
.end method

.method private static distance(FFFF)F
    .registers 8
    .param p0, "x1"    # F
    .param p1, "y1"    # F
    .param p2, "x2"    # F
    .param p3, "y2"    # F

    .line 101
    sub-float v0, p2, p0

    .line 102
    .local v0, "x":F
    sub-float v1, p3, p1

    .line 103
    .local v1, "y":F
    mul-float v2, v0, v0

    mul-float v3, v1, v1

    add-float/2addr v2, v3

    float-to-double v2, v2

    invoke-static {v2, v3}, Ljava/lang/Math;->sqrt(D)D

    move-result-wide v2

    double-to-float v2, v2

    return v2
.end method


# virtual methods
.method public getStartDelay(Landroid/view/ViewGroup;Landroidx/transition/Transition;Landroidx/transition/TransitionValues;Landroidx/transition/TransitionValues;)J
    .registers 23
    .param p1, "sceneRoot"    # Landroid/view/ViewGroup;
    .param p2, "transition"    # Landroidx/transition/Transition;
    .param p3, "startValues"    # Landroidx/transition/TransitionValues;
    .param p4, "endValues"    # Landroidx/transition/TransitionValues;

    .line 59
    move-object/from16 v0, p0

    move-object/from16 v1, p3

    const-wide/16 v2, 0x0

    if-nez v1, :cond_b

    if-nez p4, :cond_b

    .line 60
    return-wide v2

    .line 62
    :cond_b
    const/4 v4, 0x1

    .line 64
    .local v4, "directionMultiplier":I
    if-eqz p4, :cond_18

    invoke-virtual {v0, v1}, Landroidx/transition/CircularPropagation;->getViewVisibility(Landroidx/transition/TransitionValues;)I

    move-result v5

    if-nez v5, :cond_15

    goto :goto_18

    .line 68
    :cond_15
    move-object/from16 v5, p4

    .local v5, "positionValues":Landroidx/transition/TransitionValues;
    goto :goto_1b

    .line 65
    .end local v5    # "positionValues":Landroidx/transition/TransitionValues;
    :cond_18
    :goto_18
    move-object/from16 v5, p3

    .line 66
    .restart local v5    # "positionValues":Landroidx/transition/TransitionValues;
    const/4 v4, -0x1

    .line 71
    :goto_1b
    invoke-virtual {v0, v5}, Landroidx/transition/CircularPropagation;->getViewX(Landroidx/transition/TransitionValues;)I

    move-result v6

    .line 72
    .local v6, "viewCenterX":I
    invoke-virtual {v0, v5}, Landroidx/transition/CircularPropagation;->getViewY(Landroidx/transition/TransitionValues;)I

    move-result v7

    .line 74
    .local v7, "viewCenterY":I
    invoke-virtual/range {p2 .. p2}, Landroidx/transition/Transition;->getEpicenter()Landroid/graphics/Rect;

    move-result-object v8

    .line 77
    .local v8, "epicenter":Landroid/graphics/Rect;
    if-eqz v8, :cond_34

    .line 78
    invoke-virtual {v8}, Landroid/graphics/Rect;->centerX()I

    move-result v9

    .line 79
    .local v9, "epicenterX":I
    invoke-virtual {v8}, Landroid/graphics/Rect;->centerY()I

    move-result v10

    move-object/from16 v11, p1

    .local v10, "epicenterY":I
    goto :goto_64

    .line 81
    .end local v9    # "epicenterX":I
    .end local v10    # "epicenterY":I
    :cond_34
    const/4 v9, 0x2

    new-array v10, v9, [I

    .line 82
    .local v10, "loc":[I
    move-object/from16 v11, p1

    invoke-virtual {v11, v10}, Landroid/view/ViewGroup;->getLocationOnScreen([I)V

    .line 83
    const/4 v12, 0x0

    aget v12, v10, v12

    invoke-virtual/range {p1 .. p1}, Landroid/view/ViewGroup;->getWidth()I

    move-result v13

    div-int/2addr v13, v9

    add-int/2addr v12, v13

    int-to-float v12, v12

    .line 84
    invoke-virtual/range {p1 .. p1}, Landroid/view/ViewGroup;->getTranslationX()F

    move-result v13

    add-float/2addr v12, v13

    .line 83
    invoke-static {v12}, Ljava/lang/Math;->round(F)I

    move-result v12

    .line 85
    .local v12, "epicenterX":I
    const/4 v13, 0x1

    aget v13, v10, v13

    invoke-virtual/range {p1 .. p1}, Landroid/view/ViewGroup;->getHeight()I

    move-result v14

    div-int/2addr v14, v9

    add-int/2addr v13, v14

    int-to-float v9, v13

    .line 86
    invoke-virtual/range {p1 .. p1}, Landroid/view/ViewGroup;->getTranslationY()F

    move-result v13

    add-float/2addr v9, v13

    .line 85
    invoke-static {v9}, Ljava/lang/Math;->round(F)I

    move-result v9

    move v10, v9

    move v9, v12

    .line 88
    .end local v12    # "epicenterX":I
    .restart local v9    # "epicenterX":I
    .local v10, "epicenterY":I
    :goto_64
    int-to-float v12, v6

    int-to-float v13, v7

    int-to-float v14, v9

    int-to-float v15, v10

    invoke-static {v12, v13, v14, v15}, Landroidx/transition/CircularPropagation;->distance(FFFF)F

    move-result v12

    .line 89
    .local v12, "distance":F
    invoke-virtual/range {p1 .. p1}, Landroid/view/ViewGroup;->getWidth()I

    move-result v13

    int-to-float v13, v13

    invoke-virtual/range {p1 .. p1}, Landroid/view/ViewGroup;->getHeight()I

    move-result v14

    int-to-float v14, v14

    const/4 v15, 0x0

    invoke-static {v15, v15, v13, v14}, Landroidx/transition/CircularPropagation;->distance(FFFF)F

    move-result v13

    .line 90
    .local v13, "maxDistance":F
    div-float v14, v12, v13

    .line 92
    .local v14, "distanceFraction":F
    invoke-virtual/range {p2 .. p2}, Landroidx/transition/Transition;->getDuration()J

    move-result-wide v15

    .line 93
    .local v15, "duration":J
    cmp-long v17, v15, v2

    if-gez v17, :cond_87

    .line 94
    const-wide/16 v15, 0x12c

    .line 97
    :cond_87
    int-to-long v2, v4

    mul-long v2, v2, v15

    long-to-float v2, v2

    iget v3, v0, Landroidx/transition/CircularPropagation;->mPropagationSpeed:F

    div-float/2addr v2, v3

    mul-float v2, v2, v14

    invoke-static {v2}, Ljava/lang/Math;->round(F)I

    move-result v2

    int-to-long v2, v2

    return-wide v2
.end method

.method public setPropagationSpeed(F)V
    .registers 4
    .param p1, "propagationSpeed"    # F

    .line 50
    const/4 v0, 0x0

    cmpl-float v0, p1, v0

    if-eqz v0, :cond_8

    .line 53
    iput p1, p0, Landroidx/transition/CircularPropagation;->mPropagationSpeed:F

    .line 54
    return-void

    .line 51
    :cond_8
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "propagationSpeed may not be 0"

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0
.end method