a.smali
.class public abstract La/e/l/a;
.super Ljava/lang/Object;
.source "AutoScrollHelper.java"
# interfaces
.implements Landroid/view/View$OnTouchListener;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
La/e/l/a$a;,
La/e/l/a$b;
}
.end annotation
# static fields
.field public static final s:I
# instance fields
.field public final b:La/e/l/a$a;
.field public final c:Landroid/view/animation/Interpolator;
.field public final d:Landroid/view/View;
.field public e:Ljava/lang/Runnable;
.field public f:[F
.field public g:[F
.field public h:I
.field public i:I
.field public j:[F
.field public k:[F
.field public l:[F
.field public m:Z
.field public n:Z
.field public o:Z
.field public p:Z
.field public q:Z
.field public r:Z
# direct methods
.method public static constructor <clinit>()V
.registers 1
.line 1
invoke-static {}, Landroid/view/ViewConfiguration;->getTapTimeout()I
move-result v0
sput v0, La/e/l/a;->s:I
return-void
.end method
.method public constructor <init>(Landroid/view/View;)V
.registers 7
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, La/e/l/a$a;
invoke-direct {v0}, La/e/l/a$a;-><init>()V
iput-object v0, p0, La/e/l/a;->b:La/e/l/a$a;
.line 3
new-instance v0, Landroid/view/animation/AccelerateInterpolator;
invoke-direct {v0}, Landroid/view/animation/AccelerateInterpolator;-><init>()V
iput-object v0, p0, La/e/l/a;->c:Landroid/view/animation/Interpolator;
const/4 v0, 0x2
new-array v1, v0, [F
.line 4
fill-array-data v1, :array_90
iput-object v1, p0, La/e/l/a;->f:[F
new-array v1, v0, [F
.line 5
fill-array-data v1, :array_98
iput-object v1, p0, La/e/l/a;->g:[F
new-array v1, v0, [F
.line 6
fill-array-data v1, :array_a0
iput-object v1, p0, La/e/l/a;->j:[F
new-array v1, v0, [F
.line 7
fill-array-data v1, :array_a8
iput-object v1, p0, La/e/l/a;->k:[F
new-array v0, v0, [F
.line 8
fill-array-data v0, :array_b0
iput-object v0, p0, La/e/l/a;->l:[F
.line 9
iput-object p1, p0, La/e/l/a;->d:Landroid/view/View;
.line 10
invoke-static {}, Landroid/content/res/Resources;->getSystem()Landroid/content/res/Resources;
move-result-object p1
invoke-virtual {p1}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object p1
.line 11
iget p1, p1, Landroid/util/DisplayMetrics;->density:F
const v0, 0x44c4e000 # 1575.0f
mul-float v0, v0, p1
const/high16 v1, 0x3f000000 # 0.5f
add-float/2addr v0, v1
float-to-int v0, v0
const v2, 0x439d8000 # 315.0f
mul-float p1, p1, v2
add-float/2addr p1, v1
float-to-int p1, p1
int-to-float v0, v0
.line 12
iget-object v1, p0, La/e/l/a;->l:[F
const/high16 v2, 0x447a0000 # 1000.0f
div-float/2addr v0, v2
const/4 v3, 0x0
aput v0, v1, v3
const/4 v4, 0x1
.line 13
aput v0, v1, v4
int-to-float p1, p1
.line 14
iget-object v0, p0, La/e/l/a;->k:[F
div-float/2addr p1, v2
aput p1, v0, v3
.line 15
aput p1, v0, v4
.line 16
iput v4, p0, La/e/l/a;->h:I
.line 17
iget-object p1, p0, La/e/l/a;->g:[F
const v0, 0x7f7fffff # Float.MAX_VALUE
aput v0, p1, v3
.line 18
aput v0, p1, v4
.line 19
iget-object p1, p0, La/e/l/a;->f:[F
const v0, 0x3e4ccccd # 0.2f
aput v0, p1, v3
.line 20
aput v0, p1, v4
.line 21
iget-object p1, p0, La/e/l/a;->j:[F
const v0, 0x3a83126f # 0.001f
aput v0, p1, v3
.line 22
aput v0, p1, v4
.line 23
sget p1, La/e/l/a;->s:I
.line 24
iput p1, p0, La/e/l/a;->i:I
.line 25
iget-object p1, p0, La/e/l/a;->b:La/e/l/a$a;
const/16 v0, 0x1f4
.line 26
iput v0, p1, La/e/l/a$a;->a:I
.line 27
iput v0, p1, La/e/l/a$a;->b:I
return-void
nop
:array_90
.array-data 4
0x0
0x0
.end array-data
:array_98
.array-data 4
0x7f7fffff # Float.MAX_VALUE
0x7f7fffff # Float.MAX_VALUE
.end array-data
:array_a0
.array-data 4
0x0
0x0
.end array-data
:array_a8
.array-data 4
0x0
0x0
.end array-data
:array_b0
.array-data 4
0x7f7fffff # Float.MAX_VALUE
0x7f7fffff # Float.MAX_VALUE
.end array-data
.end method
.method public static a(FFF)F
.registers 4
cmpl-float v0, p0, p2
if-lez v0, :cond_5
return p2
:cond_5
cmpg-float p2, p0, p1
if-gez p2, :cond_a
return p1
:cond_a
return p0
.end method
.method public static a(III)I
.registers 3
if-le p0, p2, :cond_3
return p2
:cond_3
if-ge p0, p1, :cond_6
return p1
:cond_6
return p0
.end method
# virtual methods
.method public final a(FF)F
.registers 7
const/4 v0, 0x0
cmpl-float v1, p2, v0
if-nez v1, :cond_6
return v0
.line 19
:cond_6
iget v1, p0, La/e/l/a;->h:I
const/4 v2, 0x1
if-eqz v1, :cond_18
if-eq v1, v2, :cond_18
const/4 v2, 0x2
if-eq v1, v2, :cond_11
goto :goto_2e
:cond_11
cmpg-float v1, p1, v0
if-gez v1, :cond_2e
neg-float p2, p2
div-float/2addr p1, p2
return p1
:cond_18
cmpg-float v1, p1, p2
if-gez v1, :cond_2e
const/high16 v1, 0x3f800000 # 1.0f
cmpl-float v3, p1, v0
if-ltz v3, :cond_25
div-float/2addr p1, p2
sub-float/2addr v1, p1
return v1
.line 20
:cond_25
iget-boolean p1, p0, La/e/l/a;->p:Z
if-eqz p1, :cond_2e
iget p1, p0, La/e/l/a;->h:I
if-ne p1, v2, :cond_2e
return v1
:cond_2e
:goto_2e
return v0
.end method
.method public final a(IFFF)F
.registers 8
.line 6
iget-object v0, p0, La/e/l/a;->f:[F
aget v0, v0, p1
.line 7
iget-object v1, p0, La/e/l/a;->g:[F
aget v1, v1, p1
mul-float v0, v0, p3
const/4 v2, 0x0
.line 8
invoke-static {v0, v2, v1}, La/e/l/a;->a(FFF)F
move-result v0
.line 9
invoke-virtual {p0, p2, v0}, La/e/l/a;->a(FF)F
move-result v1
sub-float/2addr p3, p2
.line 10
invoke-virtual {p0, p3, v0}, La/e/l/a;->a(FF)F
move-result p2
sub-float/2addr p2, v1
cmpg-float p3, p2, v2
if-gez p3, :cond_26
.line 11
iget-object p3, p0, La/e/l/a;->c:Landroid/view/animation/Interpolator;
neg-float p2, p2
invoke-interface {p3, p2}, Landroid/view/animation/Interpolator;->getInterpolation(F)F
move-result p2
neg-float p2, p2
goto :goto_30
:cond_26
cmpl-float p3, p2, v2
if-lez p3, :cond_39
.line 12
iget-object p3, p0, La/e/l/a;->c:Landroid/view/animation/Interpolator;
invoke-interface {p3, p2}, Landroid/view/animation/Interpolator;->getInterpolation(F)F
move-result p2
:goto_30
const/high16 p3, -0x40800000 # -1.0f
const/high16 v0, 0x3f800000 # 1.0f
.line 13
invoke-static {p2, p3, v0}, La/e/l/a;->a(FFF)F
move-result p2
goto :goto_3a
:cond_39
const/4 p2, 0x0
:goto_3a
cmpl-float p3, p2, v2
if-nez p3, :cond_3f
return v2
.line 14
:cond_3f
iget-object p3, p0, La/e/l/a;->j:[F
aget p3, p3, p1
.line 15
iget-object v0, p0, La/e/l/a;->k:[F
aget v0, v0, p1
.line 16
iget-object v1, p0, La/e/l/a;->l:[F
aget p1, v1, p1
mul-float p3, p3, p4
cmpl-float p4, p2, v2
if-lez p4, :cond_58
mul-float p2, p2, p3
.line 17
invoke-static {p2, v0, p1}, La/e/l/a;->a(FFF)F
move-result p1
return p1
:cond_58
neg-float p2, p2
mul-float p2, p2, p3
.line 18
invoke-static {p2, v0, p1}, La/e/l/a;->a(FFF)F
move-result p1
neg-float p1, p1
return p1
.end method
.method public a(Z)La/e/l/a;
.registers 3
.line 1
iget-boolean v0, p0, La/e/l/a;->q:Z
if-eqz v0, :cond_13
if-nez p1, :cond_13
.line 2
iget-boolean v0, p0, La/e/l/a;->n:Z
if-eqz v0, :cond_e
const/4 v0, 0x0
.line 3
iput-boolean v0, p0, La/e/l/a;->p:Z
goto :goto_13
.line 4
:cond_e
iget-object v0, p0, La/e/l/a;->b:La/e/l/a$a;
invoke-virtual {v0}, La/e/l/a$a;->a()V
.line 5
:cond_13
:goto_13
iput-boolean p1, p0, La/e/l/a;->q:Z
return-object p0
.end method
.method public a()V
.registers 9
.line 21
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v2
const/4 v4, 0x3
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
move-wide v0, v2
.line 22
invoke-static/range {v0 .. v7}, Landroid/view/MotionEvent;->obtain(JJIFFI)Landroid/view/MotionEvent;
move-result-object v0
.line 23
iget-object v1, p0, La/e/l/a;->d:Landroid/view/View;
invoke-virtual {v1, v0}, Landroid/view/View;->onTouchEvent(Landroid/view/MotionEvent;)Z
.line 24
invoke-virtual {v0}, Landroid/view/MotionEvent;->recycle()V
return-void
.end method
.method public b()Z
.registers 10
.line 1
iget-object v0, p0, La/e/l/a;->b:La/e/l/a$a;
.line 2
iget v1, v0, La/e/l/a$a;->d:F
invoke-static {v1}, Ljava/lang/Math;->abs(F)F
move-result v2
div-float/2addr v1, v2
float-to-int v1, v1
.line 3
iget v0, v0, La/e/l/a$a;->c:F
invoke-static {v0}, Ljava/lang/Math;->abs(F)F
move-result v2
div-float/2addr v0, v2
float-to-int v0, v0
const/4 v2, 0x1
const/4 v3, 0x0
if-eqz v1, :cond_53
.line 4
move-object v4, p0
check-cast v4, La/e/l/c;
.line 5
iget-object v4, v4, La/e/l/c;->t:Landroid/widget/ListView;
.line 6
invoke-virtual {v4}, Landroid/widget/ListView;->getCount()I
move-result v5
if-nez v5, :cond_23
:cond_21
:goto_21
const/4 v1, 0x0
goto :goto_51
.line 7
:cond_23
invoke-virtual {v4}, Landroid/widget/ListView;->getChildCount()I
move-result v6
.line 8
invoke-virtual {v4}, Landroid/widget/ListView;->getFirstVisiblePosition()I
move-result v7
add-int v8, v7, v6
if-lez v1, :cond_41
if-lt v8, v5, :cond_50
sub-int/2addr v6, v2
.line 9
invoke-virtual {v4, v6}, Landroid/widget/ListView;->getChildAt(I)Landroid/view/View;
move-result-object v1
.line 10
invoke-virtual {v1}, Landroid/view/View;->getBottom()I
move-result v1
invoke-virtual {v4}, Landroid/widget/ListView;->getHeight()I
move-result v4
if-gt v1, v4, :cond_50
goto :goto_21
:cond_41
if-gez v1, :cond_21
if-gtz v7, :cond_50
.line 11
invoke-virtual {v4, v3}, Landroid/widget/ListView;->getChildAt(I)Landroid/view/View;
move-result-object v1
.line 12
invoke-virtual {v1}, Landroid/view/View;->getTop()I
move-result v1
if-ltz v1, :cond_50
goto :goto_21
:cond_50
const/4 v1, 0x1
:goto_51
if-nez v1, :cond_59
:cond_53
if-eqz v0, :cond_58
.line 13
move-object v0, p0
check-cast v0, La/e/l/c;
:cond_58
const/4 v2, 0x0
:cond_59
return v2
.end method
.method public onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z
.registers 8
.line 1
iget-boolean v0, p0, La/e/l/a;->q:Z
const/4 v1, 0x0
if-nez v0, :cond_6
return v1
.line 2
:cond_6
invoke-virtual {p2}, Landroid/view/MotionEvent;->getActionMasked()I
move-result v0
const/4 v2, 0x1
if-eqz v0, :cond_23
if-eq v0, v2, :cond_16
const/4 v3, 0x2
if-eq v0, v3, :cond_27
const/4 p1, 0x3
if-eq v0, p1, :cond_16
goto :goto_86
.line 3
:cond_16
iget-boolean p1, p0, La/e/l/a;->n:Z
if-eqz p1, :cond_1d
.line 4
iput-boolean v1, p0, La/e/l/a;->p:Z
goto :goto_86
.line 5
:cond_1d
iget-object p1, p0, La/e/l/a;->b:La/e/l/a$a;
invoke-virtual {p1}, La/e/l/a$a;->a()V
goto :goto_86
.line 6
:cond_23
iput-boolean v2, p0, La/e/l/a;->o:Z
.line 7
iput-boolean v1, p0, La/e/l/a;->m:Z
.line 8
:cond_27
invoke-virtual {p2}, Landroid/view/MotionEvent;->getX()F
move-result v0
invoke-virtual {p1}, Landroid/view/View;->getWidth()I
move-result v3
int-to-float v3, v3
iget-object v4, p0, La/e/l/a;->d:Landroid/view/View;
invoke-virtual {v4}, Landroid/view/View;->getWidth()I
move-result v4
int-to-float v4, v4
.line 9
invoke-virtual {p0, v1, v0, v3, v4}, La/e/l/a;->a(IFFF)F
move-result v0
.line 10
invoke-virtual {p2}, Landroid/view/MotionEvent;->getY()F
move-result p2
invoke-virtual {p1}, Landroid/view/View;->getHeight()I
move-result p1
int-to-float p1, p1
iget-object v3, p0, La/e/l/a;->d:Landroid/view/View;
invoke-virtual {v3}, Landroid/view/View;->getHeight()I
move-result v3
int-to-float v3, v3
.line 11
invoke-virtual {p0, v2, p2, p1, v3}, La/e/l/a;->a(IFFF)F
move-result p1
.line 12
iget-object p2, p0, La/e/l/a;->b:La/e/l/a$a;
.line 13
iput v0, p2, La/e/l/a$a;->c:F
.line 14
iput p1, p2, La/e/l/a$a;->d:F
.line 15
iget-boolean p1, p0, La/e/l/a;->p:Z
if-nez p1, :cond_86
invoke-virtual {p0}, La/e/l/a;->b()Z
move-result p1
if-eqz p1, :cond_86
.line 16
iget-object p1, p0, La/e/l/a;->e:Ljava/lang/Runnable;
if-nez p1, :cond_6a
.line 17
new-instance p1, La/e/l/a$b;
invoke-direct {p1, p0}, La/e/l/a$b;-><init>(La/e/l/a;)V
iput-object p1, p0, La/e/l/a;->e:Ljava/lang/Runnable;
.line 18
:cond_6a
iput-boolean v2, p0, La/e/l/a;->p:Z
.line 19
iput-boolean v2, p0, La/e/l/a;->n:Z
.line 20
iget-boolean p1, p0, La/e/l/a;->m:Z
if-nez p1, :cond_7f
iget p1, p0, La/e/l/a;->i:I
if-lez p1, :cond_7f
.line 21
iget-object p2, p0, La/e/l/a;->d:Landroid/view/View;
iget-object v0, p0, La/e/l/a;->e:Ljava/lang/Runnable;
int-to-long v3, p1
invoke-static {p2, v0, v3, v4}, La/e/k/m;->a(Landroid/view/View;Ljava/lang/Runnable;J)V
goto :goto_84
.line 22
:cond_7f
iget-object p1, p0, La/e/l/a;->e:Ljava/lang/Runnable;
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
.line 23
:goto_84
iput-boolean v2, p0, La/e/l/a;->m:Z
.line 24
:cond_86
:goto_86
iget-boolean p1, p0, La/e/l/a;->r:Z
if-eqz p1, :cond_8f
iget-boolean p1, p0, La/e/l/a;->p:Z
if-eqz p1, :cond_8f
const/4 v1, 0x1
:cond_8f
return v1
.end method