WheelView$InertiaTimerTask.smali

.class Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;
.super Ljava/util/TimerTask;
.source "WheelView.java"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcn/qqtheme/framework/widget/WheelView;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0xa
    name = "InertiaTimerTask"
.end annotation


# instance fields
.field a:F

.field final velocityY:F

.field final view:Lcn/qqtheme/framework/widget/WheelView;


# direct methods
.method constructor <init>(Lcn/qqtheme/framework/widget/WheelView;F)V
    .registers 4

    .line 1
    invoke-direct {p0}, Ljava/util/TimerTask;-><init>()V

    const/high16 v0, 0x4f000000

    .line 2
    iput v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    .line 3
    iput-object p1, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    .line 4
    iput p2, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->velocityY:F

    return-void
.end method


# virtual methods
.method public final run()V
    .registers 13

    .line 1
    iget v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    const/4 v1, 0x0

    const/high16 v2, 0x4f000000

    cmpl-float v0, v0, v2

    if-nez v0, :cond_27

    .line 2
    iget v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->velocityY:F

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

    move-result v0

    const/high16 v2, 0x44fa0000    # 2000.0f

    cmpl-float v0, v0, v2

    if-lez v0, :cond_23

    .line 3
    iget v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->velocityY:F

    cmpl-float v0, v0, v1

    if-lez v0, :cond_1e

    .line 4
    iput v2, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    goto :goto_27

    :cond_1e
    const/high16 v0, -0x3b060000    # -2000.0f

    .line 5
    iput v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    goto :goto_27

    .line 6
    :cond_23
    iget v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->velocityY:F

    iput v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    .line 7
    :cond_27
    :goto_27
    iget v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

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

    move-result v0

    const/high16 v2, 0x41a00000    # 20.0f

    cmpl-float v0, v0, v1

    if-ltz v0, :cond_4e

    iget v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

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

    move-result v0

    cmpg-float v0, v0, v2

    if-gtz v0, :cond_4e

    .line 8
    iget-object v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # invokes: Lcn/qqtheme/framework/widget/WheelView;->cancelFuture()V
    invoke-static {v0}, Lcn/qqtheme/framework/widget/WheelView;->access$800(Lcn/qqtheme/framework/widget/WheelView;)V

    .line 9
    iget-object v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->handler:Lcn/qqtheme/framework/widget/WheelView$MessageHandler;
    invoke-static {v0}, Lcn/qqtheme/framework/widget/WheelView;->access$900(Lcn/qqtheme/framework/widget/WheelView;)Lcn/qqtheme/framework/widget/WheelView$MessageHandler;

    move-result-object v0

    const/16 v1, 0x7d0

    invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z

    return-void

    .line 10
    :cond_4e
    iget v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    const/high16 v3, 0x41200000    # 10.0f

    mul-float v0, v0, v3

    const/high16 v3, 0x447a0000    # 1000.0f

    div-float/2addr v0, v3

    float-to-int v0, v0

    .line 11
    iget-object v3, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v3}, Lcn/qqtheme/framework/widget/WheelView;->access$1000(Lcn/qqtheme/framework/widget/WheelView;)F

    move-result v4

    int-to-float v0, v0

    sub-float/2addr v4, v0

    # setter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v3, v4}, Lcn/qqtheme/framework/widget/WheelView;->access$1002(Lcn/qqtheme/framework/widget/WheelView;F)F

    .line 12
    iget-object v3, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->isLoop:Z
    invoke-static {v3}, Lcn/qqtheme/framework/widget/WheelView;->access$1100(Lcn/qqtheme/framework/widget/WheelView;)Z

    move-result v3

    if-nez v3, :cond_f1

    .line 13
    iget-object v3, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->itemHeight:F
    invoke-static {v3}, Lcn/qqtheme/framework/widget/WheelView;->access$1200(Lcn/qqtheme/framework/widget/WheelView;)F

    move-result v3

    .line 14
    iget-object v4, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->initPosition:I
    invoke-static {v4}, Lcn/qqtheme/framework/widget/WheelView;->access$1300(Lcn/qqtheme/framework/widget/WheelView;)I

    move-result v4

    neg-int v4, v4

    int-to-float v4, v4

    mul-float v4, v4, v3

    .line 15
    iget-object v5, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    invoke-virtual {v5}, Lcn/qqtheme/framework/widget/WheelView;->getItemCount()I

    move-result v5

    add-int/lit8 v5, v5, -0x1

    iget-object v6, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->initPosition:I
    invoke-static {v6}, Lcn/qqtheme/framework/widget/WheelView;->access$1300(Lcn/qqtheme/framework/widget/WheelView;)I

    move-result v6

    sub-int/2addr v5, v6

    int-to-float v5, v5

    mul-float v5, v5, v3

    .line 16
    iget-object v6, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v6}, Lcn/qqtheme/framework/widget/WheelView;->access$1000(Lcn/qqtheme/framework/widget/WheelView;)F

    move-result v6

    float-to-double v6, v6

    float-to-double v8, v3

    const-wide/high16 v10, 0x3fd0000000000000L    # 0.25

    invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z

    mul-double v8, v8, v10

    invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z

    sub-double/2addr v6, v8

    float-to-double v10, v4

    cmpg-double v3, v6, v10

    if-gez v3, :cond_ae

    .line 17
    iget-object v3, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v3}, Lcn/qqtheme/framework/widget/WheelView;->access$1000(Lcn/qqtheme/framework/widget/WheelView;)F

    move-result v3

    add-float v4, v3, v0

    goto :goto_c6

    .line 18
    :cond_ae
    iget-object v3, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v3}, Lcn/qqtheme/framework/widget/WheelView;->access$1000(Lcn/qqtheme/framework/widget/WheelView;)F

    move-result v3

    float-to-double v6, v3

    invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z

    add-double/2addr v6, v8

    float-to-double v8, v5

    cmpl-double v3, v6, v8

    if-lez v3, :cond_c6

    .line 19
    iget-object v3, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v3}, Lcn/qqtheme/framework/widget/WheelView;->access$1000(Lcn/qqtheme/framework/widget/WheelView;)F

    move-result v3

    add-float v5, v3, v0

    .line 20
    :cond_c6
    :goto_c6
    iget-object v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v0}, Lcn/qqtheme/framework/widget/WheelView;->access$1000(Lcn/qqtheme/framework/widget/WheelView;)F

    move-result v0

    cmpg-float v0, v0, v4

    if-gtz v0, :cond_dc

    const/high16 v0, 0x42200000    # 40.0f

    .line 21
    iput v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    .line 22
    iget-object v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    float-to-int v3, v4

    int-to-float v3, v3

    # setter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v0, v3}, Lcn/qqtheme/framework/widget/WheelView;->access$1002(Lcn/qqtheme/framework/widget/WheelView;F)F

    goto :goto_f1

    .line 23
    :cond_dc
    iget-object v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v0}, Lcn/qqtheme/framework/widget/WheelView;->access$1000(Lcn/qqtheme/framework/widget/WheelView;)F

    move-result v0

    cmpl-float v0, v0, v5

    if-ltz v0, :cond_f1

    .line 24
    iget-object v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    float-to-int v3, v5

    int-to-float v3, v3

    # setter for: Lcn/qqtheme/framework/widget/WheelView;->totalScrollY:F
    invoke-static {v0, v3}, Lcn/qqtheme/framework/widget/WheelView;->access$1002(Lcn/qqtheme/framework/widget/WheelView;F)F

    const/high16 v0, -0x3de00000    # -40.0f

    .line 25
    iput v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    .line 26
    :cond_f1
    :goto_f1
    iget v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    cmpg-float v1, v0, v1

    if-gez v1, :cond_fb

    add-float/2addr v0, v2

    .line 27
    iput v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    goto :goto_fe

    :cond_fb
    sub-float/2addr v0, v2

    .line 28
    iput v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->a:F

    .line 29
    :goto_fe
    iget-object v0, p0, Lcn/qqtheme/framework/widget/WheelView$InertiaTimerTask;->view:Lcn/qqtheme/framework/widget/WheelView;

    # getter for: Lcn/qqtheme/framework/widget/WheelView;->handler:Lcn/qqtheme/framework/widget/WheelView$MessageHandler;
    invoke-static {v0}, Lcn/qqtheme/framework/widget/WheelView;->access$900(Lcn/qqtheme/framework/widget/WheelView;)Lcn/qqtheme/framework/widget/WheelView$MessageHandler;

    move-result-object v0

    const/16 v1, 0x3e8

    invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z

    return-void
.end method