ImageUtil$AsyncImageLoader.smali
.class Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;
.super Landroid/os/AsyncTask;
.source "ImageUtil.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/baidu/sapi2/utils/ImageUtil;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = "AsyncImageLoader"
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/os/AsyncTask",
"<",
"Landroid/net/Uri;",
"Ljava/lang/Integer;",
"Landroid/graphics/Bitmap;",
">;"
}
.end annotation
# instance fields
.field private mListener:Lcom/baidu/sapi2/utils/ImageUtil$ImageLoaderListener;
.field private mMaxNumOfPixels:I
# direct methods
.method public constructor <init>(ILcom/baidu/sapi2/utils/ImageUtil$ImageLoaderListener;)V
.registers 4
.prologue
.line 75
invoke-direct {p0}, Landroid/os/AsyncTask;-><init>()V
.line 72
const/16 v0, 0x4cc8
iput v0, p0, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->mMaxNumOfPixels:I
.line 76
iput-object p2, p0, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->mListener:Lcom/baidu/sapi2/utils/ImageUtil$ImageLoaderListener;
.line 77
iput p1, p0, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->mMaxNumOfPixels:I
.line 78
return-void
.end method
.method private static computeInitialSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
.registers 14
.prologue
const/4 v1, 0x1
const/4 v10, -0x1
.line 150
iget v0, p0, Landroid/graphics/BitmapFactory$Options;->outWidth:I
int-to-double v2, v0
.line 151
iget v0, p0, Landroid/graphics/BitmapFactory$Options;->outHeight:I
int-to-double v4, v0
.line 152
if-ne p2, v10, :cond_12
move v0, v1
.line 154
:goto_b
if-ne p1, v10, :cond_20
const/16 v2, 0x80
.line 157
:goto_f
if-ge v2, v0, :cond_32
.line 166
:cond_11
:goto_11
return v0
.line 152
:cond_12
mul-double v6, v2, v4
int-to-double v8, p2
div-double/2addr v6, v8
invoke-static {v6, v7}, Ljava/lang/Math;->sqrt(D)D
move-result-wide v6
invoke-static {v6, v7}, Ljava/lang/Math;->ceil(D)D
move-result-wide v6
double-to-int v0, v6
goto :goto_b
.line 154
:cond_20
int-to-double v6, p1
div-double/2addr v2, v6
.line 155
invoke-static {v2, v3}, Ljava/lang/Math;->floor(D)D
move-result-wide v2
int-to-double v6, p1
div-double/2addr v4, v6
invoke-static {v4, v5}, Ljava/lang/Math;->floor(D)D
move-result-wide v4
.line 154
invoke-static {v2, v3, v4, v5}, Ljava/lang/Math;->min(DD)D
move-result-wide v2
double-to-int v2, v2
goto :goto_f
.line 161
:cond_32
if-ne p2, v10, :cond_38
if-ne p1, v10, :cond_38
move v0, v1
.line 162
goto :goto_11
.line 163
:cond_38
if-eq p1, v10, :cond_11
move v0, v2
.line 166
goto :goto_11
.end method
.method public static computeSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
.registers 5
.prologue
.line 135
invoke-static {p0, p1, p2}, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->computeInitialSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result v1
.line 137
const/16 v0, 0x8
if-gt v1, v0, :cond_e
.line 138
const/4 v0, 0x1
.line 139
:goto_9
if-ge v0, v1, :cond_14
.line 140
shl-int/lit8 v0, v0, 0x1
goto :goto_9
.line 143
:cond_e
add-int/lit8 v0, v1, 0x7
div-int/lit8 v0, v0, 0x8
mul-int/lit8 v0, v0, 0x8
.line 145
:cond_14
return v0
.end method
.method private getInputStreamFromUri(Landroid/net/Uri;)Ljava/io/InputStream;
.registers 5
.prologue
.line 123
const/4 v0, 0x0
.line 125
:try_start_1
new-instance v1, Ljava/net/URL;
invoke-virtual {p1}, Landroid/net/Uri;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
.line 126
invoke-virtual {v1}, Ljava/net/URL;->openStream()Ljava/io/InputStream;
:try_end_d
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_d} :catch_f
move-result-object v0
.line 130
:goto_e
return-object v0
.line 127
:catch_f
move-exception v1
.line 128
invoke-static {v1}, Lcom/baidu/sapi2/base/debug/Log;->e(Ljava/lang/Throwable;)V
goto :goto_e
.end method
# virtual methods
.method protected varargs doInBackground([Landroid/net/Uri;)Landroid/graphics/Bitmap;
.registers 8
.prologue
const/4 v4, 0x1
const/4 v5, 0x0
const/4 v0, 0x0
.line 82
if-eqz p1, :cond_8
array-length v1, p1
if-ge v1, v4, :cond_9
.line 118
:cond_8
:goto_8
return-object v0
.line 86
:cond_9
aget-object v1, p1, v5
.line 87
if-eqz v1, :cond_8
.line 91
invoke-direct {p0, v1}, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->getInputStreamFromUri(Landroid/net/Uri;)Ljava/io/InputStream;
move-result-object v2
.line 93
if-eqz v2, :cond_8
.line 95
new-instance v3, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v3}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 96
iput-boolean v4, v3, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 97
invoke-static {v2, v0, v3}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
.line 98
const/4 v2, -0x1
iget v4, p0, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->mMaxNumOfPixels:I
invoke-static {v3, v2, v4}, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->computeSampleSize(Landroid/graphics/BitmapFactory$Options;II)I
move-result v2
iput v2, v3, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 99
iput-boolean v5, v3, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 100
invoke-direct {p0, v1}, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->getInputStreamFromUri(Landroid/net/Uri;)Ljava/io/InputStream;
move-result-object v2
.line 101
if-eqz v2, :cond_8
.line 103
:try_start_2e
new-instance v1, Lcom/baidu/sapi2/utils/ImageUtil$FlushedInputStream;
invoke-direct {v1, v2}, Lcom/baidu/sapi2/utils/ImageUtil$FlushedInputStream;-><init>(Ljava/io/InputStream;)V
const/4 v4, 0x0
invoke-static {v1, v4, v3}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
:try_end_37
.catch Ljava/lang/OutOfMemoryError; {:try_start_2e .. :try_end_37} :catch_42
move-result-object v1
.line 106
:try_start_38
invoke-virtual {v2}, Ljava/io/InputStream;->close()V
:try_end_3b
.catch Ljava/io/IOException; {:try_start_38 .. :try_end_3b} :catch_3d
.catch Ljava/lang/OutOfMemoryError; {:try_start_38 .. :try_end_3b} :catch_42
:goto_3b
move-object v0, v1
.line 111
goto :goto_8
.line 107
:catch_3d
move-exception v2
.line 108
:try_start_3e
invoke-static {v2}, Lcom/baidu/sapi2/base/debug/Log;->e(Ljava/lang/Throwable;)V
:try_end_41
.catch Ljava/lang/OutOfMemoryError; {:try_start_3e .. :try_end_41} :catch_42
goto :goto_3b
.line 112
:catch_42
move-exception v1
.line 113
invoke-static {v1}, Lcom/baidu/sapi2/base/debug/Log;->e(Ljava/lang/Throwable;)V
goto :goto_8
.end method
.method protected bridge synthetic doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
.registers 3
.prologue
.line 69
check-cast p1, [Landroid/net/Uri;
invoke-virtual {p0, p1}, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->doInBackground([Landroid/net/Uri;)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method protected onPostExecute(Landroid/graphics/Bitmap;)V
.registers 3
.prologue
.line 173
iget-object v0, p0, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->mListener:Lcom/baidu/sapi2/utils/ImageUtil$ImageLoaderListener;
if-eqz v0, :cond_9
.line 174
iget-object v0, p0, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->mListener:Lcom/baidu/sapi2/utils/ImageUtil$ImageLoaderListener;
invoke-interface {v0, p1}, Lcom/baidu/sapi2/utils/ImageUtil$ImageLoaderListener;->onSuccess(Landroid/graphics/Bitmap;)V
.line 176
:cond_9
return-void
.end method
.method protected bridge synthetic onPostExecute(Ljava/lang/Object;)V
.registers 2
.prologue
.line 69
check-cast p1, Landroid/graphics/Bitmap;
invoke-virtual {p0, p1}, Lcom/baidu/sapi2/utils/ImageUtil$AsyncImageLoader;->onPostExecute(Landroid/graphics/Bitmap;)V
return-void
.end method