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"
# direct methods
.method static constructor <clinit>()V
.registers 2
const/16 v0, 0x5a
.line 38
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"
.line 37
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;
const-string v0, "com.bumptech.glide.load.resource.bitmap.BitmapEncoder.CompressionFormat"
.line 47
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;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 31
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private getFormat(Landroid/graphics/Bitmap;Lcom/bumptech/glide/load/Options;)Landroid/graphics/Bitmap$CompressFormat;
.registers 4
.line 96
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 p2
check-cast p2, Landroid/graphics/Bitmap$CompressFormat;
if-eqz p2, :cond_b
return-object p2
.line 99
:cond_b
invoke-virtual {p1}, Landroid/graphics/Bitmap;->hasAlpha()Z
move-result p1
if-eqz p1, :cond_14
.line 100
sget-object p1, Landroid/graphics/Bitmap$CompressFormat;->PNG:Landroid/graphics/Bitmap$CompressFormat;
return-object p1
.line 102
:cond_14
sget-object p1, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
return-object p1
.end method
# virtual methods
.method public encode(Lcom/bumptech/glide/load/engine/Resource;Ljava/io/File;Lcom/bumptech/glide/load/Options;)Z
.registers 12
.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
const-string v0, "BitmapEncoder"
.line 54
invoke-interface {p1}, Lcom/bumptech/glide/load/engine/Resource;->get()Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/graphics/Bitmap;
.line 55
invoke-direct {p0, p1, p3}, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->getFormat(Landroid/graphics/Bitmap;Lcom/bumptech/glide/load/Options;)Landroid/graphics/Bitmap$CompressFormat;
move-result-object v1
.line 56
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "encode: ["
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 57
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string/jumbo v3, "x"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, "] "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 56
invoke-static {v2}, Landroidx/core/os/TraceCompat;->beginSection(Ljava/lang/String;)V
.line 59
:try_start_39
invoke-static {}, Lcom/bumptech/glide/util/LogTime;->getLogTime()J
move-result-wide v2
.line 60
sget-object v4, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->COMPRESSION_QUALITY:Lcom/bumptech/glide/load/Option;
invoke-virtual {p3, v4}, Lcom/bumptech/glide/load/Options;->get(Lcom/bumptech/glide/load/Option;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Integer;
invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
move-result v4
:try_end_49
.catchall {:try_start_39 .. :try_end_49} :catchall_cc
const/4 v5, 0x0
const/4 v6, 0x0
.line 65
:try_start_4b
new-instance v7, Ljava/io/FileOutputStream;
invoke-direct {v7, p2}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_50
.catch Ljava/io/IOException; {:try_start_4b .. :try_end_50} :catch_63
.catchall {:try_start_4b .. :try_end_50} :catchall_61
.line 66
:try_start_50
invoke-virtual {p1, v1, v4, v7}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 67
invoke-virtual {v7}, Ljava/io/OutputStream;->close()V
:try_end_56
.catch Ljava/io/IOException; {:try_start_50 .. :try_end_56} :catch_5e
.catchall {:try_start_50 .. :try_end_56} :catchall_5b
const/4 v5, 0x1
.line 76
:try_start_57
invoke-virtual {v7}, Ljava/io/OutputStream;->close()V
:try_end_5a
.catch Ljava/io/IOException; {:try_start_57 .. :try_end_5a} :catch_75
.catchall {:try_start_57 .. :try_end_5a} :catchall_cc
goto :goto_75
:catchall_5b
move-exception p1
move-object v6, v7
goto :goto_c6
:catch_5e
move-exception p2
move-object v6, v7
goto :goto_64
:catchall_61
move-exception p1
goto :goto_c6
:catch_63
move-exception p2
:goto_64
const/4 v4, 0x3
.line 70
:try_start_65
invoke-static {v0, v4}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v4
if-eqz v4, :cond_70
const-string v4, "Failed to encode Bitmap"
.line 71
invoke-static {v0, v4, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:try_end_70
.catchall {:try_start_65 .. :try_end_70} :catchall_61
:cond_70
if-eqz v6, :cond_75
.line 76
:try_start_72
invoke-virtual {v6}, Ljava/io/OutputStream;->close()V
:try_end_75
.catch Ljava/io/IOException; {:try_start_72 .. :try_end_75} :catch_75
.catchall {:try_start_72 .. :try_end_75} :catchall_cc
:catch_75
:cond_75
:goto_75
const/4 p2, 0x2
.line 83
:try_start_76
invoke-static {v0, p2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result p2
if-eqz p2, :cond_c2
.line 84
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Compressed with type: "
invoke-virtual {p2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, " of size "
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1}, Lcom/bumptech/glide/util/Util;->getBitmapByteSize(Landroid/graphics/Bitmap;)I
move-result v1
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " in "
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 85
invoke-static {v2, v3}, Lcom/bumptech/glide/util/LogTime;->getElapsedMillis(J)D
move-result-wide v1
invoke-virtual {p2, v1, v2}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
const-string v1, ", options format: "
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v1, Lcom/bumptech/glide/load/resource/bitmap/BitmapEncoder;->COMPRESSION_FORMAT:Lcom/bumptech/glide/load/Option;
.line 86
invoke-virtual {p3, v1}, Lcom/bumptech/glide/load/Options;->get(Lcom/bumptech/glide/load/Option;)Ljava/lang/Object;
move-result-object p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string p3, ", hasAlpha: "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 87
invoke-virtual {p1}, Landroid/graphics/Bitmap;->hasAlpha()Z
move-result p1
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
.line 84
invoke-static {v0, p1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
:try_end_c2
.catchall {:try_start_76 .. :try_end_c2} :catchall_cc
.line 91
:cond_c2
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
return v5
:goto_c6
if-eqz v6, :cond_cb
.line 76
:try_start_c8
invoke-virtual {v6}, Ljava/io/OutputStream;->close()V
:try_end_cb
.catch Ljava/io/IOException; {:try_start_c8 .. :try_end_cb} :catch_cb
.catchall {:try_start_c8 .. :try_end_cb} :catchall_cc
.line 79
:catch_cb
:cond_cb
:try_start_cb
throw p1
:try_end_cc
.catchall {:try_start_cb .. :try_end_cc} :catchall_cc
:catchall_cc
move-exception p1
.line 91
invoke-static {}, Landroidx/core/os/TraceCompat;->endSection()V
throw p1
.end method
.method public bridge synthetic encode(Ljava/lang/Object;Ljava/io/File;Lcom/bumptech/glide/load/Options;)Z
.registers 4
.line 31
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 2
.line 108
sget-object p1, Lcom/bumptech/glide/load/EncodeStrategy;->TRANSFORMED:Lcom/bumptech/glide/load/EncodeStrategy;
return-object p1
.end method