MaskedImage.smali
.class public abstract Lcom/fulishe/fs/view/MaskedImage;
.super Landroid/widget/ImageView;
.source ""
# static fields
.field public static final a:Landroid/graphics/Xfermode;
# instance fields
.field public b:Landroid/graphics/Bitmap;
.field public c:Landroid/graphics/Paint;
# direct methods
.method public static constructor <clinit>()V
.registers 2
sget-object v0, Landroid/graphics/PorterDuff$Mode;->DST_IN:Landroid/graphics/PorterDuff$Mode;
new-instance v1, Landroid/graphics/PorterDuffXfermode;
invoke-direct {v1, v0}, Landroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V
sput-object v1, Lcom/fulishe/fs/view/MaskedImage;->a:Landroid/graphics/Xfermode;
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 2
invoke-direct {p0, p1}, Landroid/widget/ImageView;-><init>(Landroid/content/Context;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 3
invoke-direct {p0, p1, p2}, Landroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.registers 4
invoke-direct {p0, p1, p2, p3}, Landroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
return-void
.end method
# virtual methods
.method public abstract a()Landroid/graphics/Bitmap;
.end method
.method public onDraw(Landroid/graphics/Canvas;)V
.registers 10
invoke-virtual {p0}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v7
if-nez v7, :cond_7
:goto_6
return-void
:cond_7
:try_start_7
iget-object v0, p0, Lcom/fulishe/fs/view/MaskedImage;->c:Landroid/graphics/Paint;
if-nez v0, :cond_1d
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
iput-object v0, p0, Lcom/fulishe/fs/view/MaskedImage;->c:Landroid/graphics/Paint;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setFilterBitmap(Z)V
iget-object v0, p0, Lcom/fulishe/fs/view/MaskedImage;->c:Landroid/graphics/Paint;
sget-object v1, Lcom/fulishe/fs/view/MaskedImage;->a:Landroid/graphics/Xfermode;
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
:cond_1d
invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I
move-result v0
int-to-float v3, v0
invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I
move-result v0
int-to-float v4, v0
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v5, 0x0
const/16 v6, 0x1f
move-object v0, p1
invoke-virtual/range {v0 .. v6}, Landroid/graphics/Canvas;->saveLayer(FFFFLandroid/graphics/Paint;I)I
move-result v0
invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I
move-result v1
invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I
move-result v2
const/4 v3, 0x0
const/4 v4, 0x0
invoke-virtual {v7, v3, v4, v1, v2}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
invoke-virtual {v7, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V
iget-object v1, p0, Lcom/fulishe/fs/view/MaskedImage;->b:Landroid/graphics/Bitmap;
if-eqz v1, :cond_4d
iget-object v1, p0, Lcom/fulishe/fs/view/MaskedImage;->b:Landroid/graphics/Bitmap;
invoke-virtual {v1}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v1
if-eqz v1, :cond_53
:cond_4d
invoke-virtual {p0}, Lcom/fulishe/fs/view/MaskedImage;->a()Landroid/graphics/Bitmap;
move-result-object v1
iput-object v1, p0, Lcom/fulishe/fs/view/MaskedImage;->b:Landroid/graphics/Bitmap;
:cond_53
iget-object v1, p0, Lcom/fulishe/fs/view/MaskedImage;->b:Landroid/graphics/Bitmap;
iget-object v2, p0, Lcom/fulishe/fs/view/MaskedImage;->c:Landroid/graphics/Paint;
const/4 v3, 0x0
const/4 v4, 0x0
invoke-virtual {p1, v1, v3, v4, v2}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
invoke-virtual {p1, v0}, Landroid/graphics/Canvas;->restoreToCount(I)V
:try_end_5f
.catch Ljava/lang/Exception; {:try_start_7 .. :try_end_5f} :catch_60
goto :goto_6
:catch_60
move-exception v0
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Attempting to draw with recycled bitmap. View ID = "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "localStringBuilder=="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
goto :goto_6
.end method