392 lines
11 KiB
Smali
392 lines
11 KiB
Smali
.class Lcom/moji/imageview/TouchImageView$DoubleTapZoom;
|
|
.super Ljava/lang/Object;
|
|
.source "TouchImageView.java"
|
|
|
|
# interfaces
|
|
.implements Ljava/lang/Runnable;
|
|
|
|
|
|
# annotations
|
|
.annotation system Ldalvik/annotation/EnclosingClass;
|
|
value = Lcom/moji/imageview/TouchImageView;
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/InnerClass;
|
|
accessFlags = 0x2
|
|
name = "DoubleTapZoom"
|
|
.end annotation
|
|
|
|
|
|
# instance fields
|
|
.field final synthetic a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
.field private b:J
|
|
|
|
.field private c:F
|
|
|
|
.field private d:F
|
|
|
|
.field private e:F
|
|
|
|
.field private f:F
|
|
|
|
.field private g:Z
|
|
|
|
.field private h:Landroid/view/animation/AccelerateDecelerateInterpolator;
|
|
|
|
.field private i:Landroid/graphics/PointF;
|
|
|
|
.field private j:Landroid/graphics/PointF;
|
|
|
|
|
|
# direct methods
|
|
.method constructor <init>(Lcom/moji/imageview/TouchImageView;FFFZ)V
|
|
.locals 2
|
|
|
|
.line 888
|
|
iput-object p1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 884
|
|
new-instance v0, Landroid/view/animation/AccelerateDecelerateInterpolator;
|
|
|
|
invoke-direct {v0}, Landroid/view/animation/AccelerateDecelerateInterpolator;-><init>()V
|
|
|
|
iput-object v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->h:Landroid/view/animation/AccelerateDecelerateInterpolator;
|
|
|
|
.line 889
|
|
sget-object v0, Lcom/moji/imageview/TouchImageView$State;->ANIMATE_ZOOM:Lcom/moji/imageview/TouchImageView$State;
|
|
|
|
invoke-static {p1, v0}, Lcom/moji/imageview/TouchImageView;->a(Lcom/moji/imageview/TouchImageView;Lcom/moji/imageview/TouchImageView$State;)V
|
|
|
|
.line 890
|
|
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
|
|
|
|
move-result-wide v0
|
|
|
|
iput-wide v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->b:J
|
|
|
|
.line 891
|
|
invoke-static {p1}, Lcom/moji/imageview/TouchImageView;->d(Lcom/moji/imageview/TouchImageView;)F
|
|
|
|
move-result v0
|
|
|
|
iput v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->c:F
|
|
|
|
.line 892
|
|
iput p2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->d:F
|
|
|
|
.line 893
|
|
iput-boolean p5, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->g:Z
|
|
|
|
const/4 p2, 0x0
|
|
|
|
.line 894
|
|
invoke-static {p1, p3, p4, p2}, Lcom/moji/imageview/TouchImageView;->a(Lcom/moji/imageview/TouchImageView;FFZ)Landroid/graphics/PointF;
|
|
|
|
move-result-object p2
|
|
|
|
if-eqz p2, :cond_0
|
|
|
|
.line 896
|
|
iget p3, p2, Landroid/graphics/PointF;->x:F
|
|
|
|
iput p3, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->e:F
|
|
|
|
.line 897
|
|
iget p2, p2, Landroid/graphics/PointF;->y:F
|
|
|
|
iput p2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->f:F
|
|
|
|
.line 899
|
|
:cond_0
|
|
iget p2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->e:F
|
|
|
|
iget p3, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->f:F
|
|
|
|
invoke-static {p1, p2, p3}, Lcom/moji/imageview/TouchImageView;->a(Lcom/moji/imageview/TouchImageView;FF)Landroid/graphics/PointF;
|
|
|
|
move-result-object p2
|
|
|
|
iput-object p2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->i:Landroid/graphics/PointF;
|
|
|
|
.line 903
|
|
new-instance p2, Landroid/graphics/PointF;
|
|
|
|
invoke-static {p1}, Lcom/moji/imageview/TouchImageView;->i(Lcom/moji/imageview/TouchImageView;)I
|
|
|
|
move-result p3
|
|
|
|
div-int/lit8 p3, p3, 0x2
|
|
|
|
int-to-float p3, p3
|
|
|
|
invoke-static {p1}, Lcom/moji/imageview/TouchImageView;->k(Lcom/moji/imageview/TouchImageView;)I
|
|
|
|
move-result p1
|
|
|
|
div-int/lit8 p1, p1, 0x2
|
|
|
|
int-to-float p1, p1
|
|
|
|
invoke-direct {p2, p3, p1}, Landroid/graphics/PointF;-><init>(FF)V
|
|
|
|
iput-object p2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->j:Landroid/graphics/PointF;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private a()F
|
|
.locals 4
|
|
|
|
.line 957
|
|
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
|
|
|
|
move-result-wide v0
|
|
|
|
.line 958
|
|
iget-wide v2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->b:J
|
|
|
|
sub-long/2addr v0, v2
|
|
|
|
long-to-float v0, v0
|
|
|
|
const/high16 v1, 0x43fa0000 # 500.0f
|
|
|
|
div-float/2addr v0, v1
|
|
|
|
const/high16 v1, 0x3f800000 # 1.0f
|
|
|
|
.line 959
|
|
invoke-static {v1, v0}, Ljava/lang/Math;->min(FF)F
|
|
|
|
move-result v0
|
|
|
|
.line 960
|
|
iget-object v1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->h:Landroid/view/animation/AccelerateDecelerateInterpolator;
|
|
|
|
invoke-virtual {v1, v0}, Landroid/view/animation/AccelerateDecelerateInterpolator;->getInterpolation(F)F
|
|
|
|
move-result v0
|
|
|
|
return v0
|
|
.end method
|
|
|
|
.method private a(F)V
|
|
.locals 5
|
|
|
|
.line 944
|
|
iget-object v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->i:Landroid/graphics/PointF;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
new-instance v0, Landroid/graphics/PointF;
|
|
|
|
invoke-direct {v0, v1, v1}, Landroid/graphics/PointF;-><init>(FF)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->i:Landroid/graphics/PointF;
|
|
|
|
.line 945
|
|
:goto_0
|
|
iget-object v2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->j:Landroid/graphics/PointF;
|
|
|
|
if-nez v2, :cond_1
|
|
|
|
new-instance v2, Landroid/graphics/PointF;
|
|
|
|
invoke-direct {v2, v1, v1}, Landroid/graphics/PointF;-><init>(FF)V
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
iget-object v2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->j:Landroid/graphics/PointF;
|
|
|
|
.line 946
|
|
:goto_1
|
|
iget v1, v0, Landroid/graphics/PointF;->x:F
|
|
|
|
iget v3, v2, Landroid/graphics/PointF;->x:F
|
|
|
|
iget v4, v0, Landroid/graphics/PointF;->x:F
|
|
|
|
sub-float/2addr v3, v4
|
|
|
|
mul-float v3, v3, p1
|
|
|
|
add-float/2addr v1, v3
|
|
|
|
.line 947
|
|
iget v3, v0, Landroid/graphics/PointF;->y:F
|
|
|
|
iget v2, v2, Landroid/graphics/PointF;->y:F
|
|
|
|
iget v0, v0, Landroid/graphics/PointF;->y:F
|
|
|
|
sub-float/2addr v2, v0
|
|
|
|
mul-float p1, p1, v2
|
|
|
|
add-float/2addr v3, p1
|
|
|
|
.line 948
|
|
iget-object p1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
iget v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->e:F
|
|
|
|
iget v2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->f:F
|
|
|
|
invoke-static {p1, v0, v2}, Lcom/moji/imageview/TouchImageView;->a(Lcom/moji/imageview/TouchImageView;FF)Landroid/graphics/PointF;
|
|
|
|
move-result-object p1
|
|
|
|
.line 949
|
|
iget-object v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
invoke-static {v0}, Lcom/moji/imageview/TouchImageView;->m(Lcom/moji/imageview/TouchImageView;)Landroid/graphics/Matrix;
|
|
|
|
move-result-object v0
|
|
|
|
iget v2, p1, Landroid/graphics/PointF;->x:F
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
iget p1, p1, Landroid/graphics/PointF;->y:F
|
|
|
|
sub-float/2addr v3, p1
|
|
|
|
invoke-virtual {v0, v1, v3}, Landroid/graphics/Matrix;->postTranslate(FF)Z
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private b(F)D
|
|
.locals 4
|
|
|
|
.line 970
|
|
iget v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->c:F
|
|
|
|
iget v1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->d:F
|
|
|
|
iget v2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->c:F
|
|
|
|
sub-float/2addr v1, v2
|
|
|
|
mul-float p1, p1, v1
|
|
|
|
add-float/2addr v0, p1
|
|
|
|
float-to-double v0, v0
|
|
|
|
.line 971
|
|
iget-object p1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
invoke-static {p1}, Lcom/moji/imageview/TouchImageView;->d(Lcom/moji/imageview/TouchImageView;)F
|
|
|
|
move-result p1
|
|
|
|
float-to-double v2, p1
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
|
|
|
|
div-double/2addr v0, v2
|
|
|
|
return-wide v0
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method public run()V
|
|
.locals 7
|
|
|
|
.line 908
|
|
invoke-direct {p0}, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a()F
|
|
|
|
move-result v0
|
|
|
|
.line 909
|
|
invoke-direct {p0, v0}, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->b(F)D
|
|
|
|
move-result-wide v2
|
|
|
|
.line 910
|
|
iget-object v1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
iget v4, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->e:F
|
|
|
|
iget v5, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->f:F
|
|
|
|
iget-boolean v6, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->g:Z
|
|
|
|
invoke-static/range {v1 .. v6}, Lcom/moji/imageview/TouchImageView;->a(Lcom/moji/imageview/TouchImageView;DFFZ)V
|
|
|
|
.line 911
|
|
invoke-direct {p0, v0}, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a(F)V
|
|
|
|
.line 912
|
|
iget-object v1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
invoke-static {v1}, Lcom/moji/imageview/TouchImageView;->q(Lcom/moji/imageview/TouchImageView;)V
|
|
|
|
.line 913
|
|
iget-object v1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
iget-object v2, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
invoke-static {v2}, Lcom/moji/imageview/TouchImageView;->m(Lcom/moji/imageview/TouchImageView;)Landroid/graphics/Matrix;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v1, v2}, Lcom/moji/imageview/TouchImageView;->setImageMatrix(Landroid/graphics/Matrix;)V
|
|
|
|
.line 919
|
|
iget-object v1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
invoke-static {v1}, Lcom/moji/imageview/TouchImageView;->p(Lcom/moji/imageview/TouchImageView;)Lcom/moji/imageview/TouchImageView$OnTouchImageViewListener;
|
|
|
|
move-result-object v1
|
|
|
|
if-eqz v1, :cond_0
|
|
|
|
.line 920
|
|
iget-object v1, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
invoke-static {v1}, Lcom/moji/imageview/TouchImageView;->p(Lcom/moji/imageview/TouchImageView;)Lcom/moji/imageview/TouchImageView$OnTouchImageViewListener;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-interface {v1}, Lcom/moji/imageview/TouchImageView$OnTouchImageViewListener;->a()V
|
|
|
|
:cond_0
|
|
const/high16 v1, 0x3f800000 # 1.0f
|
|
|
|
cmpg-float v0, v0, v1
|
|
|
|
if-gez v0, :cond_1
|
|
|
|
.line 927
|
|
iget-object v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
invoke-static {v0, p0}, Lcom/moji/imageview/TouchImageView;->a(Lcom/moji/imageview/TouchImageView;Ljava/lang/Runnable;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 933
|
|
:cond_1
|
|
iget-object v0, p0, Lcom/moji/imageview/TouchImageView$DoubleTapZoom;->a:Lcom/moji/imageview/TouchImageView;
|
|
|
|
sget-object v1, Lcom/moji/imageview/TouchImageView$State;->NONE:Lcom/moji/imageview/TouchImageView$State;
|
|
|
|
invoke-static {v0, v1}, Lcom/moji/imageview/TouchImageView;->a(Lcom/moji/imageview/TouchImageView;Lcom/moji/imageview/TouchImageView$State;)V
|
|
|
|
:goto_0
|
|
return-void
|
|
.end method
|