BitmapEncoder.smali
.class public Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;
.super Ljava/lang/Object;
.source "BitmapEncoder.java"
# interfaces
.implements Lcom/bumptech/glide/load/ResourceEncoder;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Lcom/bumptech/glide/load/ResourceEncoder<",
"Landroid/graphics/Bitmap;",
">;"
}
.end annotation
# static fields
.field public static final COMPRESSION_FORMAT:Lcom/bumptech/glide/load/Option;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/bumptech/glide/load/Option<",
"Landroid/graphics/Bitmap$CompressFormat;",
">;"
}
.end annotation
.end field
.field public static final COMPRESSION_QUALITY:Lcom/bumptech/glide/load/Option;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/bumptech/glide/load/Option<",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field private static final TAG:Ljava/lang/String; = "BitmapEncoder"
# instance fields
.field private final arrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 39
nop
.line 40
const/16 v0, 0x5a
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const-string v1, "com.bumptech.glide.load.resource.bitmap.BitmapEncoder.CompressionQuality"
invoke-static {v1, v0}, Lcom/bumptech/glide/load/Option;->memory(Ljava/lang/String;Ljava/lang/Object;)Lcom/bumptech/glide/load/Option;
move-result-object v0
sput-object v0, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->COMPRESSION_QUALITY:Lcom/bumptech/glide/load/Option;
.line 49
nop
.line 50
const-string v0, "com.bumptech.glide.load.resource.bitmap.BitmapEncoder.CompressionFormat"
invoke-static {v0}, Lcom/bumptech/glide/load/Option;->memory(Ljava/lang/String;)Lcom/bumptech/glide/load/Option;
move-result-object v0
sput-object v0, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->COMPRESSION_FORMAT:Lcom/bumptech/glide/load/Option;
.line 49
return-void
.end method
.method public constructor <init>()V
.registers 2
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 61
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 62
const/4 v0, 0x0
iput-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->arrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
.line 63
return-void
.end method
.method public constructor <init>(Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;)V
.registers 2
.param p1, "arrayPool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
.line 55
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 56
iput-object p1, p0, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->arrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
.line 57
return-void
.end method
.method private getFormat(Landroid/graphics/Bitmap;Lcom/bumptech/glide/load/Options;)Landroid/graphics/Bitmap$CompressFormat;
.registers 5
.param p1, "bitmap" # Landroid/graphics/Bitmap;
.param p2, "options" # Lcom/bumptech/glide/load/Options;
.line 121
sget-object v0, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->COMPRESSION_FORMAT:Lcom/bumptech/glide/load/Option;
invoke-virtual {p2, v0}, Lcom/bumptech/glide/load/Options;->get(Lcom/bumptech/glide/load/Option;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/graphics/Bitmap$CompressFormat;
.line 122
.local v0, "format":Landroid/graphics/Bitmap$CompressFormat;
if-eqz v0, :cond_b
.line 123
return-object v0
.line 124
:cond_b
invoke-virtual {p1}, Landroid/graphics/Bitmap;->hasAlpha()Z
move-result v1
if-eqz v1, :cond_14
.line 125
sget-object v1, Landroid/graphics/Bitmap$CompressFormat;->PNG:Landroid/graphics/Bitmap$CompressFormat;
return-object v1
.line 127
:cond_14
sget-object v1, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
return-object v1
.end method
# virtual methods
.method public encode(Lcom/bumptech/glide/load/engine/Resource;Ljava/io/File;Lcom/bumptech/glide/load/Options;)Z
.registers 15
.param p2, "file" # Ljava/io/File;
.param p3, "options" # Lcom/bumptech/glide/load/Options;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/bumptech/glide/load/engine/Resource<",
"Landroid/graphics/Bitmap;",
">;",
"Ljava/io/File;",
"Lcom/bumptech/glide/load/Options;",
")Z"
}
.end annotation
.line 68
.local p1, "resource":Lcom/bumptech/glide/load/engine/Resource;, "Lcom/bumptech/glide/load/engine/Resource<Landroid/graphics/Bitmap;>;"
const-string v0, "BitmapEncoder"
invoke-interface {p1}, Lcom/bumptech/glide/load/engine/Resource;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/graphics/Bitmap;
.line 69
.local v1, "bitmap":Landroid/graphics/Bitmap;
invoke-direct {p0, v1, p3}, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->getFormat(Landroid/graphics/Bitmap;Lcom/bumptech/glide/load/Options;)Landroid/graphics/Bitmap$CompressFormat;
move-result-object v2
.line 70
.local v2, "format":Landroid/graphics/Bitmap$CompressFormat;
nop
.line 71
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
.line 70
const-string v5, "encode: [%dx%d] %s"
invoke-static {v5, v3, v4, v2}, Lcom/bumptech/glide/util/pool/GlideTrace;->beginSectionFormat(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
.line 73
:try_start_22
invoke-static {}, Lcom/bumptech/glide/util/LogTime;->getLogTime()J
move-result-wide v3
.line 74
.local v3, "start":J
sget-object v5, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->COMPRESSION_QUALITY:Lcom/bumptech/glide/load/Option;
invoke-virtual {p3, v5}, Lcom/bumptech/glide/load/Options;->get(Lcom/bumptech/glide/load/Option;)Ljava/lang/Object;
move-result-object v5
check-cast v5, Ljava/lang/Integer;
invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
move-result v5
:try_end_32
.catchall {:try_start_22 .. :try_end_32} :catchall_c4
.line 76
.local v5, "quality":I
const/4 v6, 0x0
.line 77
.local v6, "success":Z
const/4 v7, 0x0
.line 79
.local v7, "os":Ljava/io/OutputStream;
:try_start_34
new-instance v8, Ljava/io/FileOutputStream;
invoke-direct {v8, p2}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
move-object v7, v8
.line 80
iget-object v8, p0, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->arrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
if-eqz v8, :cond_46
.line 81
new-instance v8, Lcom/bumptech/glide/load/data/BufferedOutputStream;
iget-object v9, p0, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->arrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
invoke-direct {v8, v7, v9}, Lcom/bumptech/glide/load/data/BufferedOutputStream;-><init>(Ljava/io/OutputStream;Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;)V
move-object v7, v8
.line 83
:cond_46
invoke-virtual {v1, v2, v5, v7}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 84
invoke-virtual {v7}, Ljava/io/OutputStream;->close()V
:try_end_4c
.catch Ljava/io/IOException; {:try_start_34 .. :try_end_4c} :catch_56
.catchall {:try_start_34 .. :try_end_4c} :catchall_54
.line 85
const/4 v6, 0x1
.line 91
nop
.line 93
:try_start_4e
invoke-virtual {v7}, Ljava/io/OutputStream;->close()V
:try_end_51
.catch Ljava/io/IOException; {:try_start_4e .. :try_end_51} :catch_52
.catchall {:try_start_4e .. :try_end_51} :catchall_c4
.line 96
:goto_51
goto :goto_69
.line 94
:catch_52
move-exception v8
goto :goto_51
.line 91
:catchall_54
move-exception v0
goto :goto_bb
.line 86
:catch_56
move-exception v8
.line 87
.local v8, "e":Ljava/io/IOException;
const/4 v9, 0x3
:try_start_58
invoke-static {v0, v9}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v9
if-eqz v9, :cond_63
.line 88
const-string v9, "Failed to encode Bitmap"
invoke-static {v0, v9, v8}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:try_end_63
.catchall {:try_start_58 .. :try_end_63} :catchall_54
.line 91
.end local v8 # "e":Ljava/io/IOException;
:cond_63
if-eqz v7, :cond_69
.line 93
:try_start_65
invoke-virtual {v7}, Ljava/io/OutputStream;->close()V
:try_end_68
.catch Ljava/io/IOException; {:try_start_65 .. :try_end_68} :catch_52
.catchall {:try_start_65 .. :try_end_68} :catchall_c4
goto :goto_51
.line 100
:cond_69
:goto_69
const/4 v8, 0x2
:try_start_6a
invoke-static {v0, v8}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v8
if-eqz v8, :cond_b6
.line 101
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, "Compressed with type: "
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v9, " of size "
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 106
invoke-static {v1}, Lcom/bumptech/glide/util/Util;->getBitmapByteSize(Landroid/graphics/Bitmap;)I
move-result v9
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v9, " in "
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 108
invoke-static {v3, v4}, Lcom/bumptech/glide/util/LogTime;->getElapsedMillis(J)D
move-result-wide v9
invoke-virtual {v8, v9, v10}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
const-string v9, ", options format: "
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v9, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->COMPRESSION_FORMAT:Lcom/bumptech/glide/load/Option;
.line 110
invoke-virtual {p3, v9}, Lcom/bumptech/glide/load/Options;->get(Lcom/bumptech/glide/load/Option;)Ljava/lang/Object;
move-result-object v9
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v9, ", hasAlpha: "
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 112
invoke-virtual {v1}, Landroid/graphics/Bitmap;->hasAlpha()Z
move-result v9
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
.line 101
invoke-static {v0, v8}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
:try_end_b6
.catchall {:try_start_6a .. :try_end_b6} :catchall_c4
.line 114
:cond_b6
nop
.line 116
invoke-static {}, Lcom/bumptech/glide/util/pool/GlideTrace;->endSection()V
.line 114
return v6
.line 91
:goto_bb
if-eqz v7, :cond_c2
.line 93
:try_start_bd
invoke-virtual {v7}, Ljava/io/OutputStream;->close()V
:try_end_c0
.catch Ljava/io/IOException; {:try_start_bd .. :try_end_c0} :catch_c1
.catchall {:try_start_bd .. :try_end_c0} :catchall_c4
.line 96
goto :goto_c2
.line 94
:catch_c1
move-exception v8
.line 96
:cond_c2
:goto_c2
nop
.end local v1 # "bitmap":Landroid/graphics/Bitmap;
.end local v2 # "format":Landroid/graphics/Bitmap$CompressFormat;
.end local p1 # "resource":Lcom/bumptech/glide/load/engine/Resource;, "Lcom/bumptech/glide/load/engine/Resource<Landroid/graphics/Bitmap;>;"
.end local p2 # "file":Ljava/io/File;
.end local p3 # "options":Lcom/bumptech/glide/load/Options;
:try_start_c3
throw v0
:try_end_c4
.catchall {:try_start_c3 .. :try_end_c4} :catchall_c4
.line 116
.end local v3 # "start":J
.end local v5 # "quality":I
.end local v6 # "success":Z
.end local v7 # "os":Ljava/io/OutputStream;
.restart local v1 # "bitmap":Landroid/graphics/Bitmap;
.restart local v2 # "format":Landroid/graphics/Bitmap$CompressFormat;
.restart local p1 # "resource":Lcom/bumptech/glide/load/engine/Resource;, "Lcom/bumptech/glide/load/engine/Resource<Landroid/graphics/Bitmap;>;"
.restart local p2 # "file":Ljava/io/File;
.restart local p3 # "options":Lcom/bumptech/glide/load/Options;
:catchall_c4
move-exception v0
invoke-static {}, Lcom/bumptech/glide/util/pool/GlideTrace;->endSection()V
goto :goto_ca
:goto_c9
throw v0
:goto_ca
goto :goto_c9
.end method
.method public bridge synthetic encode(Ljava/lang/Object;Ljava/io/File;Lcom/bumptech/glide/load/Options;)Z
.registers 4
.line 33
check-cast p1, Lcom/bumptech/glide/load/engine/Resource;
invoke-virtual {p0, p1, p2, p3}, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->encode(Lcom/bumptech/glide/load/engine/Resource;Ljava/io/File;Lcom/bumptech/glide/load/Options;)Z
move-result p1
return p1
.end method
.method public getEncodeStrategy(Lcom/bumptech/glide/load/Options;)Lcom/bumptech/glide/load/EncodeStrategy;
.registers 3
.param p1, "options" # Lcom/bumptech/glide/load/Options;
.line 134
sget-object v0, Lcom/bumptech/glide/load/EncodeStrategy;->TRANSFORMED:Lcom/bumptech/glide/load/EncodeStrategy;
return-object v0
.end method