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