.class public Lcom/polites/android/GestureImageView; .super Landroid/widget/ImageView; .source "GestureImageView.java" # static fields .field private static synthetic $SWITCH_TABLE$android$widget$ImageView$ScaleType:[I = null .field public static final GLOBAL_NS:Ljava/lang/String; = "http://schemas.android.com/apk/res/android" .field public static final LOCAL_NS:Ljava/lang/String; = "http://schemas.polites.com/android" # instance fields .field private alpha:I .field private animator:Lcom/polites/android/Animator; .field private centerX:F .field private centerY:F .field private colorFilter:Landroid/graphics/ColorFilter; .field private customOnTouchListener:Landroid/view/View$OnTouchListener; .field private deviceOrientation:I .field private displayHeight:I .field private displayWidth:I .field private final drawLock:Ljava/util/concurrent/Semaphore; .field private drawable:Landroid/graphics/drawable/Drawable; .field private fitScaleHorizontal:F .field private fitScaleVertical:F .field private gestureImageViewListener:Lcom/polites/android/GestureImageViewListener; .field private gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; .field private hHeight:I .field private hWidth:I .field private imageOrientation:I .field private layout:Z .field private maxScale:F .field private minScale:F .field private onClickListener:Landroid/view/View$OnClickListener; .field private recycle:Z .field private resId:I .field private rotation:F .field private scale:F .field private scaleAdjust:F .field private startX:Ljava/lang/Float; .field private startY:Ljava/lang/Float; .field private startingScale:F .field private strict:Z .field private x:F .field private y:F # direct methods .method static synthetic $SWITCH_TABLE$android$widget$ImageView$ScaleType()[I .registers 3 .line 40 sget-object v0, Lcom/polites/android/GestureImageView;->$SWITCH_TABLE$android$widget$ImageView$ScaleType:[I if-eqz v0, :cond_5 return-object v0 :cond_5 invoke-static {}, Landroid/widget/ImageView$ScaleType;->values()[Landroid/widget/ImageView$ScaleType; move-result-object v0 array-length v0, v0 new-array v0, v0, [I :try_start_c sget-object v1, Landroid/widget/ImageView$ScaleType;->CENTER:Landroid/widget/ImageView$ScaleType; invoke-virtual {v1}, Landroid/widget/ImageView$ScaleType;->ordinal()I move-result v1 const/4 v2, 0x1 aput v2, v0, v1 :try_end_15 .catch Ljava/lang/NoSuchFieldError; {:try_start_c .. :try_end_15} :catch_15 :catch_15 :try_start_15 sget-object v1, Landroid/widget/ImageView$ScaleType;->CENTER_CROP:Landroid/widget/ImageView$ScaleType; invoke-virtual {v1}, Landroid/widget/ImageView$ScaleType;->ordinal()I move-result v1 const/4 v2, 0x2 aput v2, v0, v1 :try_end_1e .catch Ljava/lang/NoSuchFieldError; {:try_start_15 .. :try_end_1e} :catch_1e :catch_1e :try_start_1e sget-object v1, Landroid/widget/ImageView$ScaleType;->CENTER_INSIDE:Landroid/widget/ImageView$ScaleType; invoke-virtual {v1}, Landroid/widget/ImageView$ScaleType;->ordinal()I move-result v1 const/4 v2, 0x3 aput v2, v0, v1 :try_end_27 .catch Ljava/lang/NoSuchFieldError; {:try_start_1e .. :try_end_27} :catch_27 :catch_27 :try_start_27 sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_CENTER:Landroid/widget/ImageView$ScaleType; invoke-virtual {v1}, Landroid/widget/ImageView$ScaleType;->ordinal()I move-result v1 const/4 v2, 0x4 aput v2, v0, v1 :try_end_30 .catch Ljava/lang/NoSuchFieldError; {:try_start_27 .. :try_end_30} :catch_30 :catch_30 :try_start_30 sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_END:Landroid/widget/ImageView$ScaleType; invoke-virtual {v1}, Landroid/widget/ImageView$ScaleType;->ordinal()I move-result v1 const/4 v2, 0x5 aput v2, v0, v1 :try_end_39 .catch Ljava/lang/NoSuchFieldError; {:try_start_30 .. :try_end_39} :catch_39 :catch_39 :try_start_39 sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_START:Landroid/widget/ImageView$ScaleType; invoke-virtual {v1}, Landroid/widget/ImageView$ScaleType;->ordinal()I move-result v1 const/4 v2, 0x6 aput v2, v0, v1 :try_end_42 .catch Ljava/lang/NoSuchFieldError; {:try_start_39 .. :try_end_42} :catch_42 :catch_42 :try_start_42 sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_XY:Landroid/widget/ImageView$ScaleType; invoke-virtual {v1}, Landroid/widget/ImageView$ScaleType;->ordinal()I move-result v1 const/4 v2, 0x7 aput v2, v0, v1 :try_end_4b .catch Ljava/lang/NoSuchFieldError; {:try_start_42 .. :try_end_4b} :catch_4b :catch_4b :try_start_4b sget-object v1, Landroid/widget/ImageView$ScaleType;->MATRIX:Landroid/widget/ImageView$ScaleType; invoke-virtual {v1}, Landroid/widget/ImageView$ScaleType;->ordinal()I move-result v1 const/16 v2, 0x8 aput v2, v0, v1 :try_end_55 .catch Ljava/lang/NoSuchFieldError; {:try_start_4b .. :try_end_55} :catch_55 :catch_55 sput-object v0, Lcom/polites/android/GestureImageView;->$SWITCH_TABLE$android$widget$ImageView$ScaleType:[I return-object v0 .end method .method public constructor (Landroid/content/Context;)V .registers 5 .line 125 invoke-direct {p0, p1}, Landroid/widget/ImageView;->(Landroid/content/Context;)V .line 45 new-instance p1, Ljava/util/concurrent/Semaphore; const/4 v0, 0x0 invoke-direct {p1, v0}, Ljava/util/concurrent/Semaphore;->(I)V iput-object p1, p0, Lcom/polites/android/GestureImageView;->drawLock:Ljava/util/concurrent/Semaphore; const/4 p1, 0x0 .line 50 iput p1, p0, Lcom/polites/android/GestureImageView;->x:F iput p1, p0, Lcom/polites/android/GestureImageView;->y:F .line 52 iput-boolean v0, p0, Lcom/polites/android/GestureImageView;->layout:Z const/high16 v1, 0x3f800000 # 1.0f .line 54 iput v1, p0, Lcom/polites/android/GestureImageView;->scaleAdjust:F const/high16 v2, -0x40800000 # -1.0f .line 55 iput v2, p0, Lcom/polites/android/GestureImageView;->startingScale:F .line 57 iput v1, p0, Lcom/polites/android/GestureImageView;->scale:F const/high16 v2, 0x40a00000 # 5.0f .line 58 iput v2, p0, Lcom/polites/android/GestureImageView;->maxScale:F const/high16 v2, 0x3f400000 # 0.75f .line 59 iput v2, p0, Lcom/polites/android/GestureImageView;->minScale:F .line 60 iput v1, p0, Lcom/polites/android/GestureImageView;->fitScaleHorizontal:F .line 61 iput v1, p0, Lcom/polites/android/GestureImageView;->fitScaleVertical:F .line 62 iput p1, p0, Lcom/polites/android/GestureImageView;->rotation:F const/4 p1, -0x1 .line 72 iput p1, p0, Lcom/polites/android/GestureImageView;->resId:I .line 73 iput-boolean v0, p0, Lcom/polites/android/GestureImageView;->recycle:Z .line 74 iput-boolean v0, p0, Lcom/polites/android/GestureImageView;->strict:Z const/16 v0, 0xff .line 79 iput v0, p0, Lcom/polites/android/GestureImageView;->alpha:I .line 82 iput p1, p0, Lcom/polites/android/GestureImageView;->deviceOrientation:I .line 126 sget-object p1, Landroid/widget/ImageView$ScaleType;->CENTER_INSIDE:Landroid/widget/ImageView$ScaleType; invoke-virtual {p0, p1}, Lcom/polites/android/GestureImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V .line 127 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->initImage()V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .registers 6 .line 96 invoke-direct {p0, p1, p2}, Landroid/widget/ImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;)V .line 45 new-instance p1, Ljava/util/concurrent/Semaphore; const/4 v0, 0x0 invoke-direct {p1, v0}, Ljava/util/concurrent/Semaphore;->(I)V iput-object p1, p0, Lcom/polites/android/GestureImageView;->drawLock:Ljava/util/concurrent/Semaphore; const/4 p1, 0x0 .line 50 iput p1, p0, Lcom/polites/android/GestureImageView;->x:F iput p1, p0, Lcom/polites/android/GestureImageView;->y:F .line 52 iput-boolean v0, p0, Lcom/polites/android/GestureImageView;->layout:Z const/high16 v1, 0x3f800000 # 1.0f .line 54 iput v1, p0, Lcom/polites/android/GestureImageView;->scaleAdjust:F const/high16 v2, -0x40800000 # -1.0f .line 55 iput v2, p0, Lcom/polites/android/GestureImageView;->startingScale:F .line 57 iput v1, p0, Lcom/polites/android/GestureImageView;->scale:F const/high16 v2, 0x40a00000 # 5.0f .line 58 iput v2, p0, Lcom/polites/android/GestureImageView;->maxScale:F const/high16 v2, 0x3f400000 # 0.75f .line 59 iput v2, p0, Lcom/polites/android/GestureImageView;->minScale:F .line 60 iput v1, p0, Lcom/polites/android/GestureImageView;->fitScaleHorizontal:F .line 61 iput v1, p0, Lcom/polites/android/GestureImageView;->fitScaleVertical:F .line 62 iput p1, p0, Lcom/polites/android/GestureImageView;->rotation:F const/4 p1, -0x1 .line 72 iput p1, p0, Lcom/polites/android/GestureImageView;->resId:I .line 73 iput-boolean v0, p0, Lcom/polites/android/GestureImageView;->recycle:Z .line 74 iput-boolean v0, p0, Lcom/polites/android/GestureImageView;->strict:Z const/16 v0, 0xff .line 79 iput v0, p0, Lcom/polites/android/GestureImageView;->alpha:I .line 82 iput p1, p0, Lcom/polites/android/GestureImageView;->deviceOrientation:I .line 98 const-string p1, "http://schemas.android.com/apk/res/android" const-string v0, "scaleType" invoke-interface {p2, p1, v0}, Landroid/util/AttributeSet;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p1 if-eqz p1, :cond_4b .line 100 invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object p1 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p1 if-nez p1, :cond_50 .line 101 :cond_4b sget-object p1, Landroid/widget/ImageView$ScaleType;->CENTER_INSIDE:Landroid/widget/ImageView$ScaleType; invoke-virtual {p0, p1}, Lcom/polites/android/GestureImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V .line 104 :cond_50 const-string p1, "start-x" const-string v0, "http://schemas.polites.com/android" invoke-interface {p2, v0, p1}, Landroid/util/AttributeSet;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p1 .line 105 const-string v1, "start-y" invoke-interface {p2, v0, v1}, Landroid/util/AttributeSet;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 if-eqz p1, :cond_74 .line 107 invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v2 invoke-virtual {v2}, Ljava/lang/String;->length()I move-result v2 if-lez v2, :cond_74 .line 108 invoke-static {p1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F move-result p1 invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object p1 iput-object p1, p0, Lcom/polites/android/GestureImageView;->startX:Ljava/lang/Float; :cond_74 if-eqz v1, :cond_8a .line 111 invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object p1 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p1 if-lez p1, :cond_8a .line 112 invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F move-result p1 invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object p1 iput-object p1, p0, Lcom/polites/android/GestureImageView;->startY:Ljava/lang/Float; .line 115 :cond_8a const-string p1, "start-scale" iget v1, p0, Lcom/polites/android/GestureImageView;->startingScale:F invoke-interface {p2, v0, p1, v1}, Landroid/util/AttributeSet;->getAttributeFloatValue(Ljava/lang/String;Ljava/lang/String;F)F move-result p1 invoke-virtual {p0, p1}, Lcom/polites/android/GestureImageView;->setStartingScale(F)V .line 116 const-string p1, "min-scale" iget v1, p0, Lcom/polites/android/GestureImageView;->minScale:F invoke-interface {p2, v0, p1, v1}, Landroid/util/AttributeSet;->getAttributeFloatValue(Ljava/lang/String;Ljava/lang/String;F)F move-result p1 invoke-virtual {p0, p1}, Lcom/polites/android/GestureImageView;->setMinScale(F)V .line 117 const-string p1, "max-scale" iget v1, p0, Lcom/polites/android/GestureImageView;->maxScale:F invoke-interface {p2, v0, p1, v1}, Landroid/util/AttributeSet;->getAttributeFloatValue(Ljava/lang/String;Ljava/lang/String;F)F move-result p1 invoke-virtual {p0, p1}, Lcom/polites/android/GestureImageView;->setMaxScale(F)V .line 118 const-string p1, "strict" iget-boolean v1, p0, Lcom/polites/android/GestureImageView;->strict:Z invoke-interface {p2, v0, p1, v1}, Landroid/util/AttributeSet;->getAttributeBooleanValue(Ljava/lang/String;Ljava/lang/String;Z)Z move-result p1 invoke-virtual {p0, p1}, Lcom/polites/android/GestureImageView;->setStrict(Z)V .line 119 const-string p1, "recycle" iget-boolean v1, p0, Lcom/polites/android/GestureImageView;->recycle:Z invoke-interface {p2, v0, p1, v1}, Landroid/util/AttributeSet;->getAttributeBooleanValue(Ljava/lang/String;Ljava/lang/String;Z)Z move-result p1 invoke-virtual {p0, p1}, Lcom/polites/android/GestureImageView;->setRecycle(Z)V .line 121 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->initImage()V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V .registers 4 .line 92 invoke-direct {p0, p1, p2}, Lcom/polites/android/GestureImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;)V return-void .end method .method static synthetic access$0(Lcom/polites/android/GestureImageView;)Landroid/view/View$OnTouchListener; .registers 1 .line 88 iget-object p0, p0, Lcom/polites/android/GestureImageView;->customOnTouchListener:Landroid/view/View$OnTouchListener; return-object p0 .end method .method static synthetic access$1(Lcom/polites/android/GestureImageView;)Lcom/polites/android/GestureImageViewTouchListener; .registers 1 .line 86 iget-object p0, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; return-object p0 .end method # virtual methods .method public animationStart(Lcom/polites/android/Animation;)V .registers 3 .line 355 iget-object v0, p0, Lcom/polites/android/GestureImageView;->animator:Lcom/polites/android/Animator; if-eqz v0, :cond_7 .line 356 invoke-virtual {v0, p1}, Lcom/polites/android/Animator;->play(Lcom/polites/android/Animation;)V :cond_7 return-void .end method .method public animationStop()V .registers 2 .line 361 iget-object v0, p0, Lcom/polites/android/GestureImageView;->animator:Lcom/polites/android/Animator; if-eqz v0, :cond_7 .line 362 invoke-virtual {v0}, Lcom/polites/android/Animator;->cancel()V :cond_7 return-void .end method .method protected computeCropScale(IIII)V .registers 5 int-to-float p3, p3 int-to-float p1, p1 div-float/2addr p3, p1 .line 250 iput p3, p0, Lcom/polites/android/GestureImageView;->fitScaleHorizontal:F int-to-float p1, p4 int-to-float p2, p2 div-float/2addr p1, p2 .line 251 iput p1, p0, Lcom/polites/android/GestureImageView;->fitScaleVertical:F return-void .end method .method protected computeStartingScale(IIII)V .registers 7 .line 255 invoke-static {}, Lcom/polites/android/GestureImageView;->$SWITCH_TABLE$android$widget$ImageView$ScaleType()[I move-result-object v0 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getScaleType()Landroid/widget/ImageView$ScaleType; move-result-object v1 invoke-virtual {v1}, Landroid/widget/ImageView$ScaleType;->ordinal()I move-result v1 aget v0, v0, v1 const/4 v1, 0x1 if-eq v0, v1, :cond_39 const/4 v1, 0x2 if-eq v0, v1, :cond_2c const/4 v1, 0x3 if-eq v0, v1, :cond_18 goto :goto_3d :cond_18 int-to-float p1, p1 int-to-float p3, p3 div-float/2addr p1, p3 int-to-float p2, p2 int-to-float p3, p4 div-float/2addr p2, p3 cmpl-float p1, p1, p2 if-lez p1, :cond_27 .line 275 iget p1, p0, Lcom/polites/android/GestureImageView;->fitScaleHorizontal:F iput p1, p0, Lcom/polites/android/GestureImageView;->startingScale:F goto :goto_3d .line 278 :cond_27 iget p1, p0, Lcom/polites/android/GestureImageView;->fitScaleVertical:F iput p1, p0, Lcom/polites/android/GestureImageView;->startingScale:F goto :goto_3d :cond_2c int-to-float p4, p4 int-to-float p2, p2 div-float/2addr p4, p2 int-to-float p2, p3 int-to-float p1, p1 div-float/2addr p2, p1 .line 264 invoke-static {p4, p2}, Ljava/lang/Math;->max(FF)F move-result p1 iput p1, p0, Lcom/polites/android/GestureImageView;->startingScale:F goto :goto_3d :cond_39 const/high16 p1, 0x3f800000 # 1.0f .line 258 iput p1, p0, Lcom/polites/android/GestureImageView;->startingScale:F :goto_3d return-void .end method .method public getCenterX()F .registers 2 .line 674 iget v0, p0, Lcom/polites/android/GestureImageView;->centerX:F return v0 .end method .method public getCenterY()F .registers 2 .line 678 iget v0, p0, Lcom/polites/android/GestureImageView;->centerY:F return v0 .end method .method public getDeviceOrientation()I .registers 2 .line 722 iget v0, p0, Lcom/polites/android/GestureImageView;->deviceOrientation:I return v0 .end method .method public getDrawable()Landroid/graphics/drawable/Drawable; .registers 2 .line 520 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; return-object v0 .end method .method public getGestureImageViewListener()Lcom/polites/android/GestureImageViewListener; .registers 2 .line 515 iget-object v0, p0, Lcom/polites/android/GestureImageView;->gestureImageViewListener:Lcom/polites/android/GestureImageViewListener; return-object v0 .end method .method public getImageHeight()I .registers 2 .line 430 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_9 .line 431 invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I move-result v0 return v0 :cond_9 const/4 v0, 0x0 return v0 .end method .method public getImageMatrix()Landroid/graphics/Matrix; .registers 3 .line 595 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->strict:Z if-nez v0, :cond_9 .line 598 invoke-super {p0}, Landroid/widget/ImageView;->getImageMatrix()Landroid/graphics/Matrix; move-result-object v0 return-object v0 .line 596 :cond_9 new-instance v0, Ljava/lang/UnsupportedOperationException; const-string v1, "Not supported" invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw v0 .end method .method public getImageWidth()I .registers 2 .line 423 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_9 .line 424 invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I move-result v0 return v0 :cond_9 const/4 v0, 0x0 return v0 .end method .method public getImageX()F .registers 2 .line 473 iget v0, p0, Lcom/polites/android/GestureImageView;->x:F return v0 .end method .method public getImageY()F .registers 2 .line 477 iget v0, p0, Lcom/polites/android/GestureImageView;->y:F return v0 .end method .method public getScale()F .registers 2 .line 469 iget v0, p0, Lcom/polites/android/GestureImageView;->scaleAdjust:F return v0 .end method .method public getScaledHeight()I .registers 3 .line 419 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageHeight()I move-result v0 int-to-float v0, v0 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getScale()F move-result v1 mul-float/2addr v0, v1 invoke-static {v0}, Ljava/lang/Math;->round(F)I move-result v0 return v0 .end method .method public getScaledWidth()I .registers 3 .line 415 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageWidth()I move-result v0 int-to-float v0, v0 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getScale()F move-result v1 mul-float/2addr v0, v1 invoke-static {v0}, Ljava/lang/Math;->round(F)I move-result v0 return v0 .end method .method protected initImage()V .registers 3 .line 379 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_18 .line 380 iget v1, p0, Lcom/polites/android/GestureImageView;->alpha:I invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V .line 381 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; const/4 v1, 0x1 invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setFilterBitmap(Z)V .line 382 iget-object v0, p0, Lcom/polites/android/GestureImageView;->colorFilter:Landroid/graphics/ColorFilter; if-eqz v0, :cond_18 .line 383 iget-object v1, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; invoke-virtual {v1, v0}, Landroid/graphics/drawable/Drawable;->setColorFilter(Landroid/graphics/ColorFilter;)V .line 387 :cond_18 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->layout:Z if-nez v0, :cond_22 .line 388 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->requestLayout()V .line 389 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->redraw()V :cond_22 return-void .end method .method public invalidateDrawable(Landroid/graphics/drawable/Drawable;)V .registers 3 .line 616 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->strict:Z if-nez v0, :cond_8 .line 619 invoke-super {p0, p1}, Landroid/widget/ImageView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V return-void .line 617 :cond_8 new-instance p1, Ljava/lang/UnsupportedOperationException; const-string v0, "Not supported" invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method .method public isLandscape()Z .registers 3 .line 682 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageWidth()I move-result v0 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageHeight()I move-result v1 if-lt v0, v1, :cond_c const/4 v0, 0x1 return v0 :cond_c const/4 v0, 0x0 return v0 .end method .method public isOrientationAligned()Z .registers 3 .line 712 iget v0, p0, Lcom/polites/android/GestureImageView;->deviceOrientation:I const/4 v1, 0x2 if-ne v0, v1, :cond_a .line 713 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->isLandscape()Z move-result v0 return v0 :cond_a const/4 v1, 0x1 if-ne v0, v1, :cond_12 .line 716 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->isPortrait()Z move-result v0 return v0 :cond_12 return v1 .end method .method public isPortrait()Z .registers 3 .line 686 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageWidth()I move-result v0 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageHeight()I move-result v1 if-gt v0, v1, :cond_c const/4 v0, 0x1 return v0 :cond_c const/4 v0, 0x0 return v0 .end method .method public isRecycle()Z .registers 2 .line 489 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->recycle:Z return v0 .end method .method protected isRecycled()Z .registers 3 .line 286 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_15 instance-of v1, v0, Landroid/graphics/drawable/BitmapDrawable; if-eqz v1, :cond_15 .line 287 check-cast v0, Landroid/graphics/drawable/BitmapDrawable; invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap; move-result-object v0 if-eqz v0, :cond_15 .line 289 invoke-virtual {v0}, Landroid/graphics/Bitmap;->isRecycled()Z move-result v0 return v0 :cond_15 const/4 v0, 0x0 return v0 .end method .method public isStrict()Z .registers 2 .line 481 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->strict:Z return v0 .end method .method public moveBy(FF)V .registers 4 .line 437 iget v0, p0, Lcom/polites/android/GestureImageView;->x:F add-float/2addr v0, p1 iput v0, p0, Lcom/polites/android/GestureImageView;->x:F .line 438 iget p1, p0, Lcom/polites/android/GestureImageView;->y:F add-float/2addr p1, p2 iput p1, p0, Lcom/polites/android/GestureImageView;->y:F return-void .end method .method protected onAttachedToWindow()V .registers 3 .line 344 new-instance v0, Lcom/polites/android/Animator; const-string v1, "GestureImageViewAnimator" invoke-direct {v0, p0, v1}, Lcom/polites/android/Animator;->(Lcom/polites/android/GestureImageView;Ljava/lang/String;)V iput-object v0, p0, Lcom/polites/android/GestureImageView;->animator:Lcom/polites/android/Animator; .line 345 invoke-virtual {v0}, Lcom/polites/android/Animator;->start()V .line 347 iget v0, p0, Lcom/polites/android/GestureImageView;->resId:I if-ltz v0, :cond_17 iget-object v1, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-nez v1, :cond_17 .line 348 invoke-virtual {p0, v0}, Lcom/polites/android/GestureImageView;->setImageResource(I)V .line 351 :cond_17 invoke-super {p0}, Landroid/widget/ImageView;->onAttachedToWindow()V return-void .end method .method public onCreateDrawableState(I)[I .registers 3 .line 624 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->strict:Z if-nez v0, :cond_9 .line 627 invoke-super {p0, p1}, Landroid/widget/ImageView;->onCreateDrawableState(I)[I move-result-object p1 return-object p1 .line 625 :cond_9 new-instance p1, Ljava/lang/UnsupportedOperationException; const-string v0, "Not supported" invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method .method protected onDetachedFromWindow()V .registers 2 .line 368 iget-object v0, p0, Lcom/polites/android/GestureImageView;->animator:Lcom/polites/android/Animator; if-eqz v0, :cond_7 .line 369 invoke-virtual {v0}, Lcom/polites/android/Animator;->finish()V .line 371 :cond_7 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->recycle:Z if-eqz v0, :cond_1b iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_1b invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->isRecycled()Z move-result v0 if-nez v0, :cond_1b .line 372 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->recycle()V const/4 v0, 0x0 .line 373 iput-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; .line 375 :cond_1b invoke-super {p0}, Landroid/widget/ImageView;->onDetachedFromWindow()V return-void .end method .method protected onDraw(Landroid/graphics/Canvas;)V .registers 5 .line 306 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->layout:Z if-eqz v0, :cond_45 .line 307 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_38 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->isRecycled()Z move-result v0 if-nez v0, :cond_38 .line 308 invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I .line 310 iget v0, p0, Lcom/polites/android/GestureImageView;->scale:F iget v1, p0, Lcom/polites/android/GestureImageView;->scaleAdjust:F mul-float/2addr v0, v1 .line 312 iget v1, p0, Lcom/polites/android/GestureImageView;->x:F iget v2, p0, Lcom/polites/android/GestureImageView;->y:F invoke-virtual {p1, v1, v2}, Landroid/graphics/Canvas;->translate(FF)V .line 314 iget v1, p0, Lcom/polites/android/GestureImageView;->rotation:F const/4 v2, 0x0 cmpl-float v2, v1, v2 if-eqz v2, :cond_27 .line 315 invoke-virtual {p1, v1}, Landroid/graphics/Canvas;->rotate(F)V :cond_27 const/high16 v1, 0x3f800000 # 1.0f cmpl-float v1, v0, v1 if-eqz v1, :cond_30 .line 319 invoke-virtual {p1, v0, v0}, Landroid/graphics/Canvas;->scale(FF)V .line 322 :cond_30 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V .line 324 invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V .line 327 :cond_38 iget-object p1, p0, Lcom/polites/android/GestureImageView;->drawLock:Ljava/util/concurrent/Semaphore; invoke-virtual {p1}, Ljava/util/concurrent/Semaphore;->availablePermits()I move-result p1 if-gtz p1, :cond_45 .line 328 iget-object p1, p0, Lcom/polites/android/GestureImageView;->drawLock:Ljava/util/concurrent/Semaphore; invoke-virtual {p1}, Ljava/util/concurrent/Semaphore;->release()V :cond_45 return-void .end method .method protected onLayout(ZIIII)V .registers 6 .line 167 invoke-super/range {p0 .. p5}, Landroid/widget/ImageView;->onLayout(ZIIII)V if-nez p1, :cond_9 .line 168 iget-boolean p1, p0, Lcom/polites/android/GestureImageView;->layout:Z if-nez p1, :cond_1a .line 169 :cond_9 iget p1, p0, Lcom/polites/android/GestureImageView;->displayWidth:I iget p2, p0, Lcom/polites/android/GestureImageView;->displayHeight:I invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getResources()Landroid/content/res/Resources; move-result-object p3 invoke-virtual {p3}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration; move-result-object p3 iget p3, p3, Landroid/content/res/Configuration;->orientation:I invoke-virtual {p0, p1, p2, p3}, Lcom/polites/android/GestureImageView;->setupCanvas(III)V :cond_1a return-void .end method .method protected onMeasure(II)V .registers 6 .line 133 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_68 .line 134 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getResources()Landroid/content/res/Resources; move-result-object v0 invoke-virtual {v0}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration; move-result-object v0 iget v0, v0, Landroid/content/res/Configuration;->orientation:I const/4 v1, 0x2 const/4 v2, -0x2 if-ne v0, v1, :cond_3d .line 136 invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p2 iput p2, p0, Lcom/polites/android/GestureImageView;->displayHeight:I .line 138 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; move-result-object p2 iget p2, p2, Landroid/view/ViewGroup$LayoutParams;->width:I if-ne p2, v2, :cond_36 .line 139 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageWidth()I move-result p1 int-to-float p1, p1 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageHeight()I move-result p2 int-to-float p2, p2 div-float/2addr p1, p2 .line 140 iget p2, p0, Lcom/polites/android/GestureImageView;->displayHeight:I int-to-float p2, p2 mul-float/2addr p2, p1 invoke-static {p2}, Ljava/lang/Math;->round(F)I move-result p1 iput p1, p0, Lcom/polites/android/GestureImageView;->displayWidth:I goto :goto_74 .line 143 :cond_36 invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p1 iput p1, p0, Lcom/polites/android/GestureImageView;->displayWidth:I goto :goto_74 .line 147 :cond_3d invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p1 iput p1, p0, Lcom/polites/android/GestureImageView;->displayWidth:I .line 148 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; move-result-object p1 iget p1, p1, Landroid/view/ViewGroup$LayoutParams;->height:I if-ne p1, v2, :cond_61 .line 149 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageHeight()I move-result p1 int-to-float p1, p1 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageWidth()I move-result p2 int-to-float p2, p2 div-float/2addr p1, p2 .line 150 iget p2, p0, Lcom/polites/android/GestureImageView;->displayWidth:I int-to-float p2, p2 mul-float/2addr p2, p1 invoke-static {p2}, Ljava/lang/Math;->round(F)I move-result p1 iput p1, p0, Lcom/polites/android/GestureImageView;->displayHeight:I goto :goto_74 .line 153 :cond_61 invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p1 iput p1, p0, Lcom/polites/android/GestureImageView;->displayHeight:I goto :goto_74 .line 158 :cond_68 invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p2 iput p2, p0, Lcom/polites/android/GestureImageView;->displayHeight:I .line 159 invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I move-result p1 iput p1, p0, Lcom/polites/android/GestureImageView;->displayWidth:I .line 162 :goto_74 iget p1, p0, Lcom/polites/android/GestureImageView;->displayWidth:I iget p2, p0, Lcom/polites/android/GestureImageView;->displayHeight:I invoke-virtual {p0, p1, p2}, Lcom/polites/android/GestureImageView;->setMeasuredDimension(II)V return-void .end method .method protected recycle()V .registers 3 .line 296 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->recycle:Z if-eqz v0, :cond_17 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_17 instance-of v1, v0, Landroid/graphics/drawable/BitmapDrawable; if-eqz v1, :cond_17 .line 297 check-cast v0, Landroid/graphics/drawable/BitmapDrawable; invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap; move-result-object v0 if-eqz v0, :cond_17 .line 299 invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V :cond_17 return-void .end method .method public redraw()V .registers 1 .line 447 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->postInvalidate()V return-void .end method .method public reset()V .registers 2 .line 497 iget v0, p0, Lcom/polites/android/GestureImageView;->centerX:F iput v0, p0, Lcom/polites/android/GestureImageView;->x:F .line 498 iget v0, p0, Lcom/polites/android/GestureImageView;->centerY:F iput v0, p0, Lcom/polites/android/GestureImageView;->y:F .line 499 iget v0, p0, Lcom/polites/android/GestureImageView;->startingScale:F iput v0, p0, Lcom/polites/android/GestureImageView;->scaleAdjust:F .line 500 iget-object v0, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; if-eqz v0, :cond_13 .line 501 invoke-virtual {v0}, Lcom/polites/android/GestureImageViewTouchListener;->reset()V .line 503 :cond_13 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->redraw()V return-void .end method .method public setAdjustViewBounds(Z)V .registers 3 .line 632 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->strict:Z if-nez v0, :cond_8 .line 635 invoke-super {p0, p1}, Landroid/widget/ImageView;->setAdjustViewBounds(Z)V return-void .line 633 :cond_8 new-instance p1, Ljava/lang/UnsupportedOperationException; const-string v0, "Not supported" invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method .method public setAlpha(I)V .registers 3 .line 525 iput p1, p0, Lcom/polites/android/GestureImageView;->alpha:I .line 526 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_9 .line 527 invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V :cond_9 return-void .end method .method public setColorFilter(Landroid/graphics/ColorFilter;)V .registers 3 .line 533 iput-object p1, p0, Lcom/polites/android/GestureImageView;->colorFilter:Landroid/graphics/ColorFilter; .line 534 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_9 .line 535 invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->setColorFilter(Landroid/graphics/ColorFilter;)V :cond_9 return-void .end method .method public setGestureImageViewListener(Lcom/polites/android/GestureImageViewListener;)V .registers 2 .line 511 iput-object p1, p0, Lcom/polites/android/GestureImageView;->gestureImageViewListener:Lcom/polites/android/GestureImageViewListener; return-void .end method .method public setImageBitmap(Landroid/graphics/Bitmap;)V .registers 4 .line 394 new-instance v0, Landroid/graphics/drawable/BitmapDrawable; invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getResources()Landroid/content/res/Resources; move-result-object v1 invoke-direct {v0, v1, p1}, Landroid/graphics/drawable/BitmapDrawable;->(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V iput-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; .line 395 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->initImage()V return-void .end method .method public setImageDrawable(Landroid/graphics/drawable/Drawable;)V .registers 2 .line 400 iput-object p1, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; .line 401 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->initImage()V return-void .end method .method public setImageLevel(I)V .registers 3 .line 640 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->strict:Z if-nez v0, :cond_8 .line 643 invoke-super {p0, p1}, Landroid/widget/ImageView;->setImageLevel(I)V return-void .line 641 :cond_8 new-instance p1, Ljava/lang/UnsupportedOperationException; const-string v0, "Not supported" invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method .method public setImageMatrix(Landroid/graphics/Matrix;)V .registers 3 .line 648 iget-boolean p1, p0, Lcom/polites/android/GestureImageView;->strict:Z if-nez p1, :cond_5 return-void .line 649 :cond_5 new-instance p1, Ljava/lang/UnsupportedOperationException; const-string v0, "Not supported" invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method .method public setImageResource(I)V .registers 3 .line 405 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz v0, :cond_7 .line 406 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->recycle()V :cond_7 if-ltz p1, :cond_1a .line 409 iput p1, p0, Lcom/polites/android/GestureImageView;->resId:I .line 410 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getContext()Landroid/content/Context; move-result-object v0 invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v0 invoke-virtual {v0, p1}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; move-result-object p1 invoke-virtual {p0, p1}, Lcom/polites/android/GestureImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V :cond_1a return-void .end method .method public setImageState([IZ)V .registers 3 .line 655 iget-boolean p1, p0, Lcom/polites/android/GestureImageView;->strict:Z if-nez p1, :cond_5 return-void .line 656 :cond_5 new-instance p1, Ljava/lang/UnsupportedOperationException; const-string p2, "Not supported" invoke-direct {p1, p2}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method .method public setImageURI(Landroid/net/Uri;)V .registers 13 .line 541 const-string v0, "content" invoke-virtual {p1}, Landroid/net/Uri;->getScheme()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 const-string v1, "GestureImageView" if-eqz v0, :cond_b2 const/4 v0, 0x1 .line 543 :try_start_f new-array v0, v0, [Ljava/lang/String; const-string v2, "orientation" const/4 v8, 0x0 aput-object v2, v0, v8 .line 545 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getContext()Landroid/content/Context; move-result-object v2 invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v2 const/4 v6, 0x0 const/4 v7, 0x0 const/4 v5, 0x0 move-object v3, p1 move-object v4, v0 invoke-virtual/range {v2 .. v7}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; move-result-object v2 if-eqz v2, :cond_3b .line 547 invoke-interface {v2}, Landroid/database/Cursor;->moveToFirst()Z move-result v3 if-eqz v3, :cond_3b .line 548 aget-object v0, v0, v8 invoke-interface {v2, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I move-result v0 invoke-interface {v2, v0}, Landroid/database/Cursor;->getInt(I)I move-result v0 iput v0, p0, Lcom/polites/android/GestureImageView;->imageOrientation:I :try_end_3b .catch Ljava/lang/Exception; {:try_start_f .. :try_end_3b} :catch_9e :cond_3b const/4 v0, 0x0 .line 554 :try_start_3c invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getContext()Landroid/content/Context; move-result-object v3 invoke-virtual {v3}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v3 invoke-virtual {v3, p1}, Landroid/content/ContentResolver;->openInputStream(Landroid/net/Uri;)Ljava/io/InputStream; move-result-object v0 .line 555 invoke-static {v0}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap; move-result-object v10 .line 557 iget v3, p0, Lcom/polites/android/GestureImageView;->imageOrientation:I if-eqz v3, :cond_7b .line 558 new-instance v8, Landroid/graphics/Matrix; invoke-direct {v8}, Landroid/graphics/Matrix;->()V .line 559 iget v3, p0, Lcom/polites/android/GestureImageView;->imageOrientation:I int-to-float v3, v3 invoke-virtual {v8, v3}, Landroid/graphics/Matrix;->postRotate(F)Z .line 560 invoke-virtual {v10}, Landroid/graphics/Bitmap;->getWidth()I move-result v6 invoke-virtual {v10}, Landroid/graphics/Bitmap;->getHeight()I move-result v7 const/4 v9, 0x1 const/4 v4, 0x0 const/4 v5, 0x0 move-object v3, v10 invoke-static/range {v3 .. v9}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap; move-result-object v3 .line 561 invoke-virtual {v10}, Landroid/graphics/Bitmap;->recycle()V .line 562 new-instance v4, Landroid/graphics/drawable/BitmapDrawable; invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getResources()Landroid/content/res/Resources; move-result-object v5 invoke-direct {v4, v5, v3}, Landroid/graphics/drawable/BitmapDrawable;->(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V invoke-virtual {p0, v4}, Lcom/polites/android/GestureImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V goto :goto_87 .line 565 :cond_7b new-instance v3, Landroid/graphics/drawable/BitmapDrawable; invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getResources()Landroid/content/res/Resources; move-result-object v4 invoke-direct {v3, v4, v10}, Landroid/graphics/drawable/BitmapDrawable;->(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V invoke-virtual {p0, v3}, Lcom/polites/android/GestureImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V :try_end_87 .catchall {:try_start_3c .. :try_end_87} :catchall_92 :goto_87 if-eqz v0, :cond_8c .line 570 :try_start_89 invoke-virtual {v0}, Ljava/io/InputStream;->close()V :cond_8c if-eqz v2, :cond_bd .line 574 invoke-interface {v2}, Landroid/database/Cursor;->close()V goto :goto_bd :catchall_92 move-exception v3 if-eqz v0, :cond_98 .line 570 invoke-virtual {v0}, Ljava/io/InputStream;->close()V :cond_98 if-eqz v2, :cond_9d .line 574 invoke-interface {v2}, Landroid/database/Cursor;->close()V .line 576 :cond_9d throw v3 :try_end_9e .catch Ljava/lang/Exception; {:try_start_89 .. :try_end_9e} :catch_9e :catch_9e move-exception v0 .line 579 new-instance v2, Ljava/lang/StringBuilder; const-string v3, "Unable to open content: " invoke-direct {v2, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-static {v1, v2, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I goto :goto_bd .line 583 :cond_b2 invoke-virtual {p1}, Landroid/net/Uri;->toString()Ljava/lang/String; move-result-object v0 invoke-static {v0}, Landroid/graphics/drawable/Drawable;->createFromPath(Ljava/lang/String;)Landroid/graphics/drawable/Drawable; move-result-object v0 invoke-virtual {p0, v0}, Lcom/polites/android/GestureImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V .line 586 :cond_bd :goto_bd iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-nez v0, :cond_d3 .line 587 new-instance v0, Ljava/lang/StringBuilder; const-string v2, "resolveUri failed on bad bitmap uri: " invoke-direct {v0, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v1, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I :cond_d3 return-void .end method .method public setMaxScale(F)V .registers 4 .line 458 iput p1, p0, Lcom/polites/android/GestureImageView;->maxScale:F .line 459 iget-object v0, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; if-eqz v0, :cond_c .line 460 iget v1, p0, Lcom/polites/android/GestureImageView;->startingScale:F mul-float/2addr p1, v1 invoke-virtual {v0, p1}, Lcom/polites/android/GestureImageViewTouchListener;->setMaxScale(F)V :cond_c return-void .end method .method public setMinScale(F)V .registers 4 .line 451 iput p1, p0, Lcom/polites/android/GestureImageView;->minScale:F .line 452 iget-object v0, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; if-eqz v0, :cond_c .line 453 iget v1, p0, Lcom/polites/android/GestureImageView;->fitScaleHorizontal:F mul-float/2addr p1, v1 invoke-virtual {v0, p1}, Lcom/polites/android/GestureImageViewTouchListener;->setMinScale(F)V :cond_c return-void .end method .method public setOnClickListener(Landroid/view/View$OnClickListener;)V .registers 3 .line 700 iput-object p1, p0, Lcom/polites/android/GestureImageView;->onClickListener:Landroid/view/View$OnClickListener; .line 702 iget-object v0, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; if-eqz v0, :cond_9 .line 703 invoke-virtual {v0, p1}, Lcom/polites/android/GestureImageViewTouchListener;->setOnClickListener(Landroid/view/View$OnClickListener;)V :cond_9 return-void .end method .method public setOnTouchListener(Landroid/view/View$OnTouchListener;)V .registers 2 .line 670 iput-object p1, p0, Lcom/polites/android/GestureImageView;->customOnTouchListener:Landroid/view/View$OnTouchListener; return-void .end method .method public setPosition(FF)V .registers 3 .line 442 iput p1, p0, Lcom/polites/android/GestureImageView;->x:F .line 443 iput p2, p0, Lcom/polites/android/GestureImageView;->y:F return-void .end method .method public setRecycle(Z)V .registers 2 .line 493 iput-boolean p1, p0, Lcom/polites/android/GestureImageView;->recycle:Z return-void .end method .method public setRotation(F)V .registers 2 .line 507 iput p1, p0, Lcom/polites/android/GestureImageView;->rotation:F return-void .end method .method public setScale(F)V .registers 2 .line 465 iput p1, p0, Lcom/polites/android/GestureImageView;->scaleAdjust:F return-void .end method .method public setScaleType(Landroid/widget/ImageView$ScaleType;)V .registers 3 .line 603 sget-object v0, Landroid/widget/ImageView$ScaleType;->CENTER:Landroid/widget/ImageView$ScaleType; if-eq p1, v0, :cond_1a .line 604 sget-object v0, Landroid/widget/ImageView$ScaleType;->CENTER_CROP:Landroid/widget/ImageView$ScaleType; if-eq p1, v0, :cond_1a .line 605 sget-object v0, Landroid/widget/ImageView$ScaleType;->CENTER_INSIDE:Landroid/widget/ImageView$ScaleType; if-ne p1, v0, :cond_d goto :goto_1a .line 609 :cond_d iget-boolean p1, p0, Lcom/polites/android/GestureImageView;->strict:Z if-nez p1, :cond_12 goto :goto_1d .line 610 :cond_12 new-instance p1, Ljava/lang/UnsupportedOperationException; const-string v0, "Not supported" invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .line 607 :cond_1a :goto_1a invoke-super {p0, p1}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V :goto_1d return-void .end method .method public setSelected(Z)V .registers 3 .line 662 iget-boolean v0, p0, Lcom/polites/android/GestureImageView;->strict:Z if-nez v0, :cond_8 .line 665 invoke-super {p0, p1}, Landroid/widget/ImageView;->setSelected(Z)V return-void .line 663 :cond_8 new-instance p1, Ljava/lang/UnsupportedOperationException; const-string v0, "Not supported" invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method .method public setStartingPosition(FF)V .registers 3 .line 694 invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object p1 iput-object p1, p0, Lcom/polites/android/GestureImageView;->startX:Ljava/lang/Float; .line 695 invoke-static {p2}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object p1 iput-object p1, p0, Lcom/polites/android/GestureImageView;->startY:Ljava/lang/Float; return-void .end method .method public setStartingScale(F)V .registers 2 .line 690 iput p1, p0, Lcom/polites/android/GestureImageView;->startingScale:F return-void .end method .method public setStrict(Z)V .registers 2 .line 485 iput-boolean p1, p0, Lcom/polites/android/GestureImageView;->strict:Z return-void .end method .method protected setupCanvas(III)V .registers 8 .line 175 iget v0, p0, Lcom/polites/android/GestureImageView;->deviceOrientation:I if-eq v0, p3, :cond_9 const/4 v0, 0x0 .line 176 iput-boolean v0, p0, Lcom/polites/android/GestureImageView;->layout:Z .line 177 iput p3, p0, Lcom/polites/android/GestureImageView;->deviceOrientation:I .line 180 :cond_9 iget-object p3, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; if-eqz p3, :cond_d5 iget-boolean p3, p0, Lcom/polites/android/GestureImageView;->layout:Z if-nez p3, :cond_d5 .line 181 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageWidth()I move-result p3 .line 182 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getImageHeight()I move-result v0 int-to-float v1, p3 const/high16 v2, 0x40000000 # 2.0f div-float/2addr v1, v2 .line 184 invoke-static {v1}, Ljava/lang/Math;->round(F)I move-result v1 iput v1, p0, Lcom/polites/android/GestureImageView;->hWidth:I int-to-float v1, v0 div-float/2addr v1, v2 .line 185 invoke-static {v1}, Ljava/lang/Math;->round(F)I move-result v1 iput v1, p0, Lcom/polites/android/GestureImageView;->hHeight:I .line 187 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getPaddingLeft()I move-result v1 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getPaddingRight()I move-result v3 add-int/2addr v1, v3 sub-int/2addr p1, v1 .line 188 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getPaddingTop()I move-result v1 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->getPaddingBottom()I move-result v3 add-int/2addr v1, v3 sub-int/2addr p2, v1 .line 190 invoke-virtual {p0, p3, v0, p1, p2}, Lcom/polites/android/GestureImageView;->computeCropScale(IIII)V .line 192 iget v1, p0, Lcom/polites/android/GestureImageView;->startingScale:F const/4 v3, 0x0 cmpg-float v1, v1, v3 if-gtz v1, :cond_4c .line 193 invoke-virtual {p0, p3, v0, p1, p2}, Lcom/polites/android/GestureImageView;->computeStartingScale(IIII)V .line 196 :cond_4c iget p3, p0, Lcom/polites/android/GestureImageView;->startingScale:F iput p3, p0, Lcom/polites/android/GestureImageView;->scaleAdjust:F int-to-float p3, p1 div-float/2addr p3, v2 .line 198 iput p3, p0, Lcom/polites/android/GestureImageView;->centerX:F int-to-float v0, p2 div-float/2addr v0, v2 .line 199 iput v0, p0, Lcom/polites/android/GestureImageView;->centerY:F .line 201 iget-object v0, p0, Lcom/polites/android/GestureImageView;->startX:Ljava/lang/Float; if-nez v0, :cond_5f .line 202 iput p3, p0, Lcom/polites/android/GestureImageView;->x:F goto :goto_65 .line 205 :cond_5f invoke-virtual {v0}, Ljava/lang/Float;->floatValue()F move-result p3 iput p3, p0, Lcom/polites/android/GestureImageView;->x:F .line 208 :goto_65 iget-object p3, p0, Lcom/polites/android/GestureImageView;->startY:Ljava/lang/Float; if-nez p3, :cond_6e .line 209 iget p3, p0, Lcom/polites/android/GestureImageView;->centerY:F iput p3, p0, Lcom/polites/android/GestureImageView;->y:F goto :goto_74 .line 212 :cond_6e invoke-virtual {p3}, Ljava/lang/Float;->floatValue()F move-result p3 iput p3, p0, Lcom/polites/android/GestureImageView;->y:F .line 215 :goto_74 new-instance p3, Lcom/polites/android/GestureImageViewTouchListener; invoke-direct {p3, p0, p1, p2}, Lcom/polites/android/GestureImageViewTouchListener;->(Lcom/polites/android/GestureImageView;II)V iput-object p3, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; .line 217 invoke-virtual {p0}, Lcom/polites/android/GestureImageView;->isLandscape()Z move-result p3 if-eqz p3, :cond_8c .line 218 iget-object p3, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; iget v0, p0, Lcom/polites/android/GestureImageView;->minScale:F iget v1, p0, Lcom/polites/android/GestureImageView;->fitScaleHorizontal:F mul-float/2addr v0, v1 invoke-virtual {p3, v0}, Lcom/polites/android/GestureImageViewTouchListener;->setMinScale(F)V goto :goto_96 .line 221 :cond_8c iget-object p3, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; iget v0, p0, Lcom/polites/android/GestureImageView;->minScale:F iget v1, p0, Lcom/polites/android/GestureImageView;->fitScaleVertical:F mul-float/2addr v0, v1 invoke-virtual {p3, v0}, Lcom/polites/android/GestureImageViewTouchListener;->setMinScale(F)V .line 225 :goto_96 iget-object p3, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; iget v0, p0, Lcom/polites/android/GestureImageView;->maxScale:F iget v1, p0, Lcom/polites/android/GestureImageView;->startingScale:F mul-float/2addr v0, v1 invoke-virtual {p3, v0}, Lcom/polites/android/GestureImageViewTouchListener;->setMaxScale(F)V .line 227 iget-object p3, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; iget v0, p0, Lcom/polites/android/GestureImageView;->fitScaleHorizontal:F invoke-virtual {p3, v0}, Lcom/polites/android/GestureImageViewTouchListener;->setFitScaleHorizontal(F)V .line 228 iget-object p3, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; iget v0, p0, Lcom/polites/android/GestureImageView;->fitScaleVertical:F invoke-virtual {p3, v0}, Lcom/polites/android/GestureImageViewTouchListener;->setFitScaleVertical(F)V .line 229 iget-object p3, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; invoke-virtual {p3, p1}, Lcom/polites/android/GestureImageViewTouchListener;->setCanvasWidth(I)V .line 230 iget-object p1, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; invoke-virtual {p1, p2}, Lcom/polites/android/GestureImageViewTouchListener;->setCanvasHeight(I)V .line 231 iget-object p1, p0, Lcom/polites/android/GestureImageView;->gestureImageViewTouchListener:Lcom/polites/android/GestureImageViewTouchListener; iget-object p2, p0, Lcom/polites/android/GestureImageView;->onClickListener:Landroid/view/View$OnClickListener; invoke-virtual {p1, p2}, Lcom/polites/android/GestureImageViewTouchListener;->setOnClickListener(Landroid/view/View$OnClickListener;)V .line 233 iget-object p1, p0, Lcom/polites/android/GestureImageView;->drawable:Landroid/graphics/drawable/Drawable; iget p2, p0, Lcom/polites/android/GestureImageView;->hWidth:I neg-int p3, p2 iget v0, p0, Lcom/polites/android/GestureImageView;->hHeight:I neg-int v1, v0 invoke-virtual {p1, p3, v1, p2, v0}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V .line 235 new-instance p1, Lcom/polites/android/GestureImageView$1; invoke-direct {p1, p0}, Lcom/polites/android/GestureImageView$1;->(Lcom/polites/android/GestureImageView;)V invoke-super {p0, p1}, Landroid/widget/ImageView;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V const/4 p1, 0x1 .line 245 iput-boolean p1, p0, Lcom/polites/android/GestureImageView;->layout:Z :cond_d5 return-void .end method .method public waitForDraw(J)Z .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/InterruptedException; } .end annotation .line 339 iget-object v0, p0, Lcom/polites/android/GestureImageView;->drawLock:Ljava/util/concurrent/Semaphore; sget-object v1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; invoke-virtual {v0, p1, p2, v1}, Ljava/util/concurrent/Semaphore;->tryAcquire(JLjava/util/concurrent/TimeUnit;)Z move-result p1 return p1 .end method