a.smali
.class public abstract Landroid/support/v4/widget/a;
.super Ljava/lang/Object;
.source "AutoScrollHelper.java"
# interfaces
.implements Landroid/view/View$OnTouchListener;
# static fields
.field private static final vA:I
# instance fields
.field private mEnabled:Z
.field private nU:Ljava/lang/Runnable;
.field final vm:Landroid/support/v4/widget/b;
.field private final vn:Landroid/view/animation/Interpolator;
.field final vo:Landroid/view/View;
.field private vp:[F
.field private vq:[F
.field private vr:I
.field private vs:I
.field private vt:[F
.field private vu:[F
.field private vv:[F
.field private vw:Z
.field vx:Z
.field vy:Z
.field vz:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 194
invoke-static {}, Landroid/view/ViewConfiguration;->getTapTimeout()I
move-result v0
sput v0, Landroid/support/v4/widget/a;->vA:I
return-void
.end method
.method public constructor <init>(Landroid/view/View;)V
.registers 10
.prologue
const v7, 0x3a83126f # 0.001f
const/high16 v6, 0x447a0000 # 1000.0f
const/4 v1, 0x2
const/4 v5, 0x0
const/4 v4, 0x1
.line 209
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 137
new-instance v0, Landroid/support/v4/widget/b;
invoke-direct {v0}, Landroid/support/v4/widget/b;-><init>()V
iput-object v0, p0, Landroid/support/v4/widget/a;->vm:Landroid/support/v4/widget/b;
.line 140
new-instance v0, Landroid/view/animation/AccelerateInterpolator;
invoke-direct {v0}, Landroid/view/animation/AccelerateInterpolator;-><init>()V
iput-object v0, p0, Landroid/support/v4/widget/a;->vn:Landroid/view/animation/Interpolator;
.line 149
new-array v0, v1, [F
fill-array-data v0, :array_aa
iput-object v0, p0, Landroid/support/v4/widget/a;->vp:[F
.line 152
new-array v0, v1, [F
fill-array-data v0, :array_b2
iput-object v0, p0, Landroid/support/v4/widget/a;->vq:[F
.line 161
new-array v0, v1, [F
fill-array-data v0, :array_ba
iput-object v0, p0, Landroid/support/v4/widget/a;->vt:[F
.line 164
new-array v0, v1, [F
fill-array-data v0, :array_c2
iput-object v0, p0, Landroid/support/v4/widget/a;->vu:[F
.line 167
new-array v0, v1, [F
fill-array-data v0, :array_ca
iput-object v0, p0, Landroid/support/v4/widget/a;->vv:[F
.line 210
iput-object p1, p0, Landroid/support/v4/widget/a;->vo:Landroid/view/View;
.line 212
invoke-static {}, Landroid/content/res/Resources;->getSystem()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v0
.line 213
const v1, 0x44c4e000 # 1575.0f
iget v2, v0, Landroid/util/DisplayMetrics;->density:F
mul-float/2addr v1, v2
const/high16 v2, 0x3f000000 # 0.5f
add-float/2addr v1, v2
float-to-int v1, v1
.line 214
const v2, 0x439d8000 # 315.0f
iget v0, v0, Landroid/util/DisplayMetrics;->density:F
mul-float/2addr v0, v2
const/high16 v2, 0x3f000000 # 0.5f
add-float/2addr v0, v2
float-to-int v0, v0
.line 215
int-to-float v1, v1
.line 1295
iget-object v2, p0, Landroid/support/v4/widget/a;->vv:[F
div-float v3, v1, v6
aput v3, v2, v5
.line 1296
iget-object v2, p0, Landroid/support/v4/widget/a;->vv:[F
div-float/2addr v1, v6
aput v1, v2, v4
.line 216
int-to-float v0, v0
.line 1314
iget-object v1, p0, Landroid/support/v4/widget/a;->vu:[F
div-float v2, v0, v6
aput v2, v1, v5
.line 1315
iget-object v1, p0, Landroid/support/v4/widget/a;->vu:[F
div-float/2addr v0, v6
aput v0, v1, v4
.line 1358
iput v4, p0, Landroid/support/v4/widget/a;->vr:I
.line 1401
iget-object v0, p0, Landroid/support/v4/widget/a;->vq:[F
const v1, 0x7f7fffff # Float.MAX_VALUE
aput v1, v0, v5
.line 1402
iget-object v0, p0, Landroid/support/v4/widget/a;->vq:[F
const v1, 0x7f7fffff # Float.MAX_VALUE
aput v1, v0, v4
.line 2378
iget-object v0, p0, Landroid/support/v4/widget/a;->vp:[F
const v1, 0x3e4ccccd # 0.2f
aput v1, v0, v5
.line 2379
iget-object v0, p0, Landroid/support/v4/widget/a;->vp:[F
const v1, 0x3e4ccccd # 0.2f
aput v1, v0, v4
.line 3336
iget-object v0, p0, Landroid/support/v4/widget/a;->vt:[F
aput v7, v0, v5
.line 3337
iget-object v0, p0, Landroid/support/v4/widget/a;->vt:[F
aput v7, v0, v4
.line 222
sget v0, Landroid/support/v4/widget/a;->vA:I
.line 3419
iput v0, p0, Landroid/support/v4/widget/a;->vs:I
.line 3435
iget-object v0, p0, Landroid/support/v4/widget/a;->vm:Landroid/support/v4/widget/b;
.line 3764
const/16 v1, 0x1f4
iput v1, v0, Landroid/support/v4/widget/b;->vB:I
.line 4451
iget-object v0, p0, Landroid/support/v4/widget/a;->vm:Landroid/support/v4/widget/b;
.line 4768
const/16 v1, 0x1f4
iput v1, v0, Landroid/support/v4/widget/b;->vC:I
.line 225
return-void
.line 149
nop
:array_aa
.array-data 4
0x0
0x0
.end array-data
.line 152
:array_b2
.array-data 4
0x7f7fffff # Float.MAX_VALUE
0x7f7fffff # Float.MAX_VALUE
.end array-data
.line 161
:array_ba
.array-data 4
0x0
0x0
.end array-data
.line 164
:array_c2
.array-data 4
0x0
0x0
.end array-data
.line 167
:array_ca
.array-data 4
0x7f7fffff # Float.MAX_VALUE
0x7f7fffff # Float.MAX_VALUE
.end array-data
.end method
.method private a(IFFF)F
.registers 10
.prologue
const/4 v1, 0x0
.line 548
iget-object v0, p0, Landroid/support/v4/widget/a;->vp:[F
aget v0, v0, p1
.line 549
iget-object v2, p0, Landroid/support/v4/widget/a;->vq:[F
aget v2, v2, p1
.line 9616
mul-float/2addr v0, p3
invoke-static {v0, v1, v2}, Landroid/support/v4/widget/a;->constrain(FFF)F
move-result v0
.line 9617
invoke-direct {p0, p2, v0}, Landroid/support/v4/widget/a;->d(FF)F
move-result v2
.line 9618
sub-float v3, p3, p2
invoke-direct {p0, v3, v0}, Landroid/support/v4/widget/a;->d(FF)F
move-result v0
.line 9619
sub-float/2addr v0, v2
.line 9621
cmpg-float v2, v0, v1
if-gez v2, :cond_33
.line 9622
iget-object v2, p0, Landroid/support/v4/widget/a;->vn:Landroid/view/animation/Interpolator;
neg-float v0, v0
invoke-interface {v2, v0}, Landroid/view/animation/Interpolator;->getInterpolation(F)F
move-result v0
neg-float v0, v0
.line 9629
:goto_25
const/high16 v2, -0x40800000 # -1.0f
const/high16 v3, 0x3f800000 # 1.0f
invoke-static {v0, v2, v3}, Landroid/support/v4/widget/a;->constrain(FFF)F
move-result v0
.line 551
:goto_2d
cmpl-float v2, v0, v1
if-nez v2, :cond_40
move v0, v1
.line 567
:goto_32
return v0
.line 9623
:cond_33
cmpl-float v2, v0, v1
if-lez v2, :cond_3e
.line 9624
iget-object v2, p0, Landroid/support/v4/widget/a;->vn:Landroid/view/animation/Interpolator;
invoke-interface {v2, v0}, Landroid/view/animation/Interpolator;->getInterpolation(F)F
move-result v0
goto :goto_25
:cond_3e
move v0, v1
.line 9626
goto :goto_2d
.line 556
:cond_40
iget-object v2, p0, Landroid/support/v4/widget/a;->vt:[F
aget v2, v2, p1
.line 557
iget-object v3, p0, Landroid/support/v4/widget/a;->vu:[F
aget v3, v3, p1
.line 558
iget-object v4, p0, Landroid/support/v4/widget/a;->vv:[F
aget v4, v4, p1
.line 559
mul-float/2addr v2, p4
.line 564
cmpl-float v1, v0, v1
if-lez v1, :cond_57
.line 565
mul-float/2addr v0, v2
invoke-static {v0, v3, v4}, Landroid/support/v4/widget/a;->constrain(FFF)F
move-result v0
goto :goto_32
.line 567
:cond_57
neg-float v0, v0
mul-float/2addr v0, v2
invoke-static {v0, v3, v4}, Landroid/support/v4/widget/a;->constrain(FFF)F
move-result v0
neg-float v0, v0
goto :goto_32
.end method
.method static constrain(FFF)F
.registers 4
.prologue
.line 672
cmpl-float v0, p0, p2
if-lez v0, :cond_5
.line 677
:goto_4
return p2
.line 674
:cond_5
cmpg-float v0, p0, p1
if-gez v0, :cond_b
move p2, p1
.line 675
goto :goto_4
:cond_b
move p2, p0
.line 677
goto :goto_4
.end method
.method private d(FF)F
.registers 7
.prologue
const/high16 v1, 0x3f800000 # 1.0f
const/4 v0, 0x0
.line 633
cmpl-float v2, p2, v0
if-nez v2, :cond_8
.line 658
:cond_7
:goto_7
return v0
.line 637
:cond_8
iget v2, p0, Landroid/support/v4/widget/a;->vr:I
packed-switch v2, :pswitch_data_2e
goto :goto_7
.line 640
:pswitch_e
cmpg-float v2, p1, p2
if-gez v2, :cond_7
.line 641
cmpl-float v2, p1, v0
if-ltz v2, :cond_1b
.line 643
div-float v0, p1, p2
sub-float v0, v1, v0
goto :goto_7
.line 644
:cond_1b
iget-boolean v2, p0, Landroid/support/v4/widget/a;->vz:Z
if-eqz v2, :cond_7
iget v2, p0, Landroid/support/v4/widget/a;->vr:I
const/4 v3, 0x1
if-ne v2, v3, :cond_7
move v0, v1
.line 646
goto :goto_7
.line 651
:pswitch_26
cmpg-float v1, p1, v0
if-gez v1, :cond_7
.line 653
neg-float v0, p2
div-float v0, p1, v0
goto :goto_7
.line 637
:pswitch_data_2e
.packed-switch 0x0
:pswitch_e
:pswitch_e
:pswitch_26
.end packed-switch
.end method
.method private requestStop()V
.registers 9
.prologue
const/4 v1, 0x0
.line 537
iget-boolean v0, p0, Landroid/support/v4/widget/a;->vx:Z
if-eqz v0, :cond_8
.line 540
iput-boolean v1, p0, Landroid/support/v4/widget/a;->vz:Z
.line 544
:goto_7
return-void
.line 542
:cond_8
iget-object v3, p0, Landroid/support/v4/widget/a;->vm:Landroid/support/v4/widget/b;
.line 7787
invoke-static {}, Landroid/view/animation/AnimationUtils;->currentAnimationTimeMillis()J
move-result-wide v4
.line 7788
iget-wide v6, v3, Landroid/support/v4/widget/b;->mStartTime:J
sub-long v6, v4, v6
long-to-int v2, v6
iget v0, v3, Landroid/support/v4/widget/b;->vC:I
.line 8662
if-le v2, v0, :cond_22
.line 7788
:goto_17
iput v0, v3, Landroid/support/v4/widget/b;->vI:I
.line 7789
invoke-virtual {v3, v4, v5}, Landroid/support/v4/widget/b;->d(J)F
move-result v0
iput v0, v3, Landroid/support/v4/widget/b;->vH:F
.line 7790
iput-wide v4, v3, Landroid/support/v4/widget/b;->vG:J
goto :goto_7
.line 8664
:cond_22
if-gez v2, :cond_26
move v0, v1
.line 8665
goto :goto_17
:cond_26
move v0, v2
.line 8667
goto :goto_17
.end method
# virtual methods
.method public abstract M(I)V
.end method
.method public abstract canTargetScrollVertically(I)Z
.end method
.method public final j(Z)Landroid/support/v4/widget/a;
.registers 3
.prologue
.line 235
iget-boolean v0, p0, Landroid/support/v4/widget/a;->mEnabled:Z
if-eqz v0, :cond_9
if-nez p1, :cond_9
.line 236
invoke-direct {p0}, Landroid/support/v4/widget/a;->requestStop()V
.line 239
:cond_9
iput-boolean p1, p0, Landroid/support/v4/widget/a;->mEnabled:Z
.line 240
return-object p0
.end method
.method public onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z
.registers 9
.prologue
const/4 v5, 0x0
const/4 v4, 0x1
.line 465
iget-boolean v0, p0, Landroid/support/v4/widget/a;->mEnabled:Z
if-nez v0, :cond_7
.line 494
:cond_6
:goto_6
return v5
.line 469
:cond_7
invoke-virtual {p2}, Landroid/view/MotionEvent;->getActionMasked()I
move-result v0
.line 470
packed-switch v0, :pswitch_data_7a
goto :goto_6
.line 472
:pswitch_f
iput-boolean v4, p0, Landroid/support/v4/widget/a;->vy:Z
.line 473
iput-boolean v5, p0, Landroid/support/v4/widget/a;->vw:Z
.line 477
:pswitch_13
invoke-virtual {p2}, Landroid/view/MotionEvent;->getX()F
move-result v0
invoke-virtual {p1}, Landroid/view/View;->getWidth()I
move-result v1
int-to-float v1, v1
iget-object v2, p0, Landroid/support/v4/widget/a;->vo:Landroid/view/View;
invoke-virtual {v2}, Landroid/view/View;->getWidth()I
move-result v2
int-to-float v2, v2
.line 476
invoke-direct {p0, v5, v0, v1, v2}, Landroid/support/v4/widget/a;->a(IFFF)F
move-result v0
.line 479
invoke-virtual {p2}, Landroid/view/MotionEvent;->getY()F
move-result v1
invoke-virtual {p1}, Landroid/view/View;->getHeight()I
move-result v2
int-to-float v2, v2
iget-object v3, p0, Landroid/support/v4/widget/a;->vo:Landroid/view/View;
invoke-virtual {v3}, Landroid/view/View;->getHeight()I
move-result v3
int-to-float v3, v3
.line 478
invoke-direct {p0, v4, v1, v2, v3}, Landroid/support/v4/widget/a;->a(IFFF)F
move-result v1
.line 480
iget-object v2, p0, Landroid/support/v4/widget/a;->vm:Landroid/support/v4/widget/b;
.line 4851
iput v0, v2, Landroid/support/v4/widget/b;->vD:F
.line 4852
iput v1, v2, Landroid/support/v4/widget/b;->vE:F
.line 484
iget-boolean v0, p0, Landroid/support/v4/widget/a;->vz:Z
if-nez v0, :cond_6
invoke-virtual {p0}, Landroid/support/v4/widget/a;->shouldAnimate()Z
move-result v0
if-eqz v0, :cond_6
.line 5513
iget-object v0, p0, Landroid/support/v4/widget/a;->nU:Ljava/lang/Runnable;
if-nez v0, :cond_56
.line 5514
new-instance v0, Landroid/support/v4/widget/c;
invoke-direct {v0, p0}, Landroid/support/v4/widget/c;-><init>(Landroid/support/v4/widget/a;)V
iput-object v0, p0, Landroid/support/v4/widget/a;->nU:Ljava/lang/Runnable;
.line 5517
:cond_56
iput-boolean v4, p0, Landroid/support/v4/widget/a;->vz:Z
.line 5518
iput-boolean v4, p0, Landroid/support/v4/widget/a;->vx:Z
.line 5520
iget-boolean v0, p0, Landroid/support/v4/widget/a;->vw:Z
if-nez v0, :cond_6f
iget v0, p0, Landroid/support/v4/widget/a;->vs:I
if-lez v0, :cond_6f
.line 5521
iget-object v0, p0, Landroid/support/v4/widget/a;->vo:Landroid/view/View;
iget-object v1, p0, Landroid/support/v4/widget/a;->nU:Ljava/lang/Runnable;
iget v2, p0, Landroid/support/v4/widget/a;->vs:I
int-to-long v2, v2
invoke-static {v0, v1, v2, v3}, Landroid/support/v4/view/af;->a(Landroid/view/View;Ljava/lang/Runnable;J)V
.line 5528
:goto_6c
iput-boolean v4, p0, Landroid/support/v4/widget/a;->vw:Z
goto :goto_6
.line 5523
:cond_6f
iget-object v0, p0, Landroid/support/v4/widget/a;->nU:Ljava/lang/Runnable;
invoke-interface {v0}, Ljava/lang/Runnable;->run()V
goto :goto_6c
.line 490
:pswitch_75
invoke-direct {p0}, Landroid/support/v4/widget/a;->requestStop()V
goto :goto_6
.line 470
nop
:pswitch_data_7a
.packed-switch 0x0
:pswitch_f
:pswitch_75
:pswitch_13
:pswitch_75
.end packed-switch
.end method
.method final shouldAnimate()Z
.registers 4
.prologue
.line 501
iget-object v0, p0, Landroid/support/v4/widget/a;->vm:Landroid/support/v4/widget/b;
.line 5860
iget v1, v0, Landroid/support/v4/widget/b;->vE:F
iget v2, v0, Landroid/support/v4/widget/b;->vE:F
invoke-static {v2}, Ljava/lang/Math;->abs(F)F
move-result v2
div-float/2addr v1, v2
float-to-int v1, v1
.line 6856
iget v2, v0, Landroid/support/v4/widget/b;->vD:F
iget v0, v0, Landroid/support/v4/widget/b;->vD:F
invoke-static {v0}, Ljava/lang/Math;->abs(F)F
move-result v0
div-float v0, v2, v0
float-to-int v0, v0
.line 505
if-eqz v1, :cond_1f
invoke-virtual {p0, v1}, Landroid/support/v4/widget/a;->canTargetScrollVertically(I)Z
move-result v1
if-nez v1, :cond_23
:cond_1f
if-eqz v0, :cond_21
.line 506
:cond_21
const/4 v0, 0x0
:goto_22
return v0
:cond_23
const/4 v0, 0x1
goto :goto_22
.end method