FloatingActionButton$SwitchIconAnimator.smali

.class Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;
.super Ljava/lang/Object;
.source "FloatingActionButton.java"

# interfaces
.implements Ljava/lang/Runnable;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/rey/material/widget/FloatingActionButton;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x0
    name = "SwitchIconAnimator"
.end annotation


# instance fields
.field mRunning:Z

.field mStartTime:J

.field final synthetic this$0:Lcom/rey/material/widget/FloatingActionButton;


# direct methods
.method constructor <init>(Lcom/rey/material/widget/FloatingActionButton;)V
    .registers 2

    .line 571
    iput-object p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    const/4 p1, 0x0

    .line 573
    iput-boolean p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->mRunning:Z

    return-void
.end method


# virtual methods
.method public resetAnimation()V
    .registers 3

    .line 577
    invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J

    move-result-wide v0

    iput-wide v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->mStartTime:J

    .line 578
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0}, Lcom/rey/material/widget/FloatingActionButton;->access$100(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v0

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V

    .line 579
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mPrevIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0}, Lcom/rey/material/widget/FloatingActionButton;->access$200(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v0

    const/16 v1, 0xff

    invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V

    return-void
.end method

.method public run()V
    .registers 7

    .line 620
    invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J

    move-result-wide v0

    .line 621
    iget-wide v2, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->mStartTime:J

    sub-long/2addr v0, v2

    long-to-float v0, v0

    iget-object v1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mAnimDuration:I
    invoke-static {v1}, Lcom/rey/material/widget/FloatingActionButton;->access$500(Lcom/rey/material/widget/FloatingActionButton;)I

    move-result v1

    int-to-float v1, v1

    div-float/2addr v0, v1

    const/high16 v1, 0x3f800000    # 1.0f

    invoke-static {v1, v0}, Ljava/lang/Math;->min(FF)F

    move-result v0

    .line 622
    iget-object v2, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mInterpolator:Landroid/view/animation/Interpolator;
    invoke-static {v2}, Lcom/rey/material/widget/FloatingActionButton;->access$600(Lcom/rey/material/widget/FloatingActionButton;)Landroid/view/animation/Interpolator;

    move-result-object v2

    invoke-interface {v2, v0}, Landroid/view/animation/Interpolator;->getInterpolation(F)F

    move-result v2

    .line 624
    iget-object v3, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v3}, Lcom/rey/material/widget/FloatingActionButton;->access$100(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v3

    const/high16 v4, 0x437f0000    # 255.0f

    mul-float v5, v2, v4

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

    move-result v5

    invoke-virtual {v3, v5}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V

    .line 625
    iget-object v3, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mPrevIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v3}, Lcom/rey/material/widget/FloatingActionButton;->access$200(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v3

    sub-float v2, v1, v2

    mul-float v2, v2, v4

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

    move-result v2

    invoke-virtual {v3, v2}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V

    cmpl-float v0, v0, v1

    if-nez v0, :cond_49

    .line 628
    invoke-virtual {p0}, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->stopAnimation()V

    .line 630
    :cond_49
    iget-boolean v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->mRunning:Z

    if-eqz v0, :cond_69

    .line 631
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {v0}, Lcom/rey/material/widget/FloatingActionButton;->getHandler()Landroid/os/Handler;

    move-result-object v0

    if-eqz v0, :cond_66

    .line 632
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {v0}, Lcom/rey/material/widget/FloatingActionButton;->getHandler()Landroid/os/Handler;

    move-result-object v0

    invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J

    move-result-wide v1

    const-wide/16 v3, 0x10

    add-long/2addr v1, v3

    invoke-virtual {v0, p0, v1, v2}, Landroid/os/Handler;->postAtTime(Ljava/lang/Runnable;J)Z

    goto :goto_69

    .line 634
    :cond_66
    invoke-virtual {p0}, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->stopAnimation()V

    .line 637
    :cond_69
    :goto_69
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {v0}, Lcom/rey/material/widget/FloatingActionButton;->invalidate()V

    return-void
.end method

.method public startAnimation(Landroid/graphics/drawable/Drawable;)Z
    .registers 7

    .line 583
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0}, Lcom/rey/material/widget/FloatingActionButton;->access$100(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v0

    if-ne v0, p1, :cond_a

    const/4 p1, 0x0

    return p1

    .line 586
    :cond_a
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0}, Lcom/rey/material/widget/FloatingActionButton;->access$100(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v1

    # setter for: Lcom/rey/material/widget/FloatingActionButton;->mPrevIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0, v1}, Lcom/rey/material/widget/FloatingActionButton;->access$202(Lcom/rey/material/widget/FloatingActionButton;Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;

    .line 587
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # setter for: Lcom/rey/material/widget/FloatingActionButton;->mIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0, p1}, Lcom/rey/material/widget/FloatingActionButton;->access$102(Lcom/rey/material/widget/FloatingActionButton;Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;

    .line 588
    iget-object p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mIconSize:I
    invoke-static {p1}, Lcom/rey/material/widget/FloatingActionButton;->access$300(Lcom/rey/material/widget/FloatingActionButton;)I

    move-result p1

    int-to-float p1, p1

    const/high16 v0, 0x40000000    # 2.0f

    div-float/2addr p1, v0

    .line 589
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0}, Lcom/rey/material/widget/FloatingActionButton;->access$100(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v0

    iget-object v1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mBackground:Lcom/rey/material/drawable/OvalShadowDrawable;
    invoke-static {v1}, Lcom/rey/material/widget/FloatingActionButton;->access$400(Lcom/rey/material/widget/FloatingActionButton;)Lcom/rey/material/drawable/OvalShadowDrawable;

    move-result-object v1

    invoke-virtual {v1}, Lcom/rey/material/drawable/OvalShadowDrawable;->getCenterX()F

    move-result v1

    sub-float/2addr v1, p1

    float-to-int v1, v1

    iget-object v2, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mBackground:Lcom/rey/material/drawable/OvalShadowDrawable;
    invoke-static {v2}, Lcom/rey/material/widget/FloatingActionButton;->access$400(Lcom/rey/material/widget/FloatingActionButton;)Lcom/rey/material/drawable/OvalShadowDrawable;

    move-result-object v2

    invoke-virtual {v2}, Lcom/rey/material/drawable/OvalShadowDrawable;->getCenterY()F

    move-result v2

    sub-float/2addr v2, p1

    float-to-int v2, v2

    iget-object v3, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mBackground:Lcom/rey/material/drawable/OvalShadowDrawable;
    invoke-static {v3}, Lcom/rey/material/widget/FloatingActionButton;->access$400(Lcom/rey/material/widget/FloatingActionButton;)Lcom/rey/material/drawable/OvalShadowDrawable;

    move-result-object v3

    invoke-virtual {v3}, Lcom/rey/material/drawable/OvalShadowDrawable;->getCenterX()F

    move-result v3

    add-float/2addr v3, p1

    float-to-int v3, v3

    iget-object v4, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mBackground:Lcom/rey/material/drawable/OvalShadowDrawable;
    invoke-static {v4}, Lcom/rey/material/widget/FloatingActionButton;->access$400(Lcom/rey/material/widget/FloatingActionButton;)Lcom/rey/material/drawable/OvalShadowDrawable;

    move-result-object v4

    invoke-virtual {v4}, Lcom/rey/material/drawable/OvalShadowDrawable;->getCenterY()F

    move-result v4

    add-float/2addr v4, p1

    float-to-int p1, v4

    invoke-virtual {v0, v1, v2, v3, p1}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V

    .line 590
    iget-object p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {p1}, Lcom/rey/material/widget/FloatingActionButton;->access$100(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object p1

    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {p1, v0}, Landroid/graphics/drawable/Drawable;->setCallback(Landroid/graphics/drawable/Drawable$Callback;)V

    .line 592
    iget-object p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {p1}, Lcom/rey/material/widget/FloatingActionButton;->getHandler()Landroid/os/Handler;

    move-result-object p1

    const/4 v0, 0x1

    if-eqz p1, :cond_85

    .line 593
    invoke-virtual {p0}, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->resetAnimation()V

    .line 594
    iput-boolean v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->mRunning:Z

    .line 595
    iget-object p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {p1}, Lcom/rey/material/widget/FloatingActionButton;->getHandler()Landroid/os/Handler;

    move-result-object p1

    invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J

    move-result-wide v1

    const-wide/16 v3, 0x10

    add-long/2addr v1, v3

    invoke-virtual {p1, p0, v1, v2}, Landroid/os/Handler;->postAtTime(Ljava/lang/Runnable;J)Z

    goto :goto_9d

    .line 598
    :cond_85
    iget-object p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mPrevIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {p1}, Lcom/rey/material/widget/FloatingActionButton;->access$200(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object p1

    const/4 v1, 0x0

    invoke-virtual {p1, v1}, Landroid/graphics/drawable/Drawable;->setCallback(Landroid/graphics/drawable/Drawable$Callback;)V

    .line 599
    iget-object p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mPrevIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {p1}, Lcom/rey/material/widget/FloatingActionButton;->access$200(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v2

    invoke-virtual {p1, v2}, Lcom/rey/material/widget/FloatingActionButton;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V

    .line 600
    iget-object p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # setter for: Lcom/rey/material/widget/FloatingActionButton;->mPrevIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {p1, v1}, Lcom/rey/material/widget/FloatingActionButton;->access$202(Lcom/rey/material/widget/FloatingActionButton;Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;

    .line 603
    :goto_9d
    iget-object p1, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {p1}, Lcom/rey/material/widget/FloatingActionButton;->invalidate()V

    return v0
.end method

.method public stopAnimation()V
    .registers 4

    const/4 v0, 0x0

    .line 608
    iput-boolean v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->mRunning:Z

    .line 609
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mPrevIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0}, Lcom/rey/material/widget/FloatingActionButton;->access$200(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v0

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setCallback(Landroid/graphics/drawable/Drawable$Callback;)V

    .line 610
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mPrevIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0}, Lcom/rey/material/widget/FloatingActionButton;->access$200(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v2

    invoke-virtual {v0, v2}, Lcom/rey/material/widget/FloatingActionButton;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V

    .line 611
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # setter for: Lcom/rey/material/widget/FloatingActionButton;->mPrevIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0, v1}, Lcom/rey/material/widget/FloatingActionButton;->access$202(Lcom/rey/material/widget/FloatingActionButton;Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;

    .line 612
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    # getter for: Lcom/rey/material/widget/FloatingActionButton;->mIcon:Landroid/graphics/drawable/Drawable;
    invoke-static {v0}, Lcom/rey/material/widget/FloatingActionButton;->access$100(Lcom/rey/material/widget/FloatingActionButton;)Landroid/graphics/drawable/Drawable;

    move-result-object v0

    const/16 v1, 0xff

    invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V

    .line 613
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {v0}, Lcom/rey/material/widget/FloatingActionButton;->getHandler()Landroid/os/Handler;

    move-result-object v0

    if-eqz v0, :cond_37

    .line 614
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {v0}, Lcom/rey/material/widget/FloatingActionButton;->getHandler()Landroid/os/Handler;

    move-result-object v0

    invoke-virtual {v0, p0}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V

    .line 615
    :cond_37
    iget-object v0, p0, Lcom/rey/material/widget/FloatingActionButton$SwitchIconAnimator;->this$0:Lcom/rey/material/widget/FloatingActionButton;

    invoke-virtual {v0}, Lcom/rey/material/widget/FloatingActionButton;->invalidate()V

    return-void
.end method