TransformationUtils.smali
.class public final Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;
.super Ljava/lang/Object;
.source "TransformationUtils.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$NoLock;,
Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$DrawRoundedCornerFn;
}
.end annotation
# static fields
.field private static final BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
.field private static final CIRCLE_CROP_BITMAP_PAINT:Landroid/graphics/Paint;
.field private static final CIRCLE_CROP_PAINT_FLAGS:I = 0x7
.field private static final CIRCLE_CROP_SHAPE_PAINT:Landroid/graphics/Paint;
.field private static final DEFAULT_PAINT:Landroid/graphics/Paint;
.field private static final MODELS_REQUIRING_BITMAP_LOCK:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field public static final PAINT_FLAGS:I = 0x6
.field private static final TAG:Ljava/lang/String; = "TransformationUtils"
# direct methods
.method static constructor <clinit>()V
.registers 31
.line 38
new-instance v0, Landroid/graphics/Paint;
const/4 v1, 0x6
invoke-direct {v0, v1}, Landroid/graphics/Paint;-><init>(I)V
sput-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->DEFAULT_PAINT:Landroid/graphics/Paint;
.line 40
new-instance v0, Landroid/graphics/Paint;
const/4 v1, 0x7
invoke-direct {v0, v1}, Landroid/graphics/Paint;-><init>(I)V
sput-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->CIRCLE_CROP_SHAPE_PAINT:Landroid/graphics/Paint;
.line 44
new-instance v0, Ljava/util/HashSet;
const-string v2, "XT1085"
const-string v3, "XT1092"
const-string v4, "XT1093"
const-string v5, "XT1094"
const-string v6, "XT1095"
const-string v7, "XT1096"
const-string v8, "XT1097"
const-string v9, "XT1098"
const-string v10, "XT1031"
const-string v11, "XT1028"
const-string v12, "XT937C"
const-string v13, "XT1032"
const-string v14, "XT1008"
const-string v15, "XT1033"
const-string v16, "XT1035"
const-string v17, "XT1034"
const-string v18, "XT939G"
const-string v19, "XT1039"
const-string v20, "XT1040"
const-string v21, "XT1042"
const-string v22, "XT1045"
const-string v23, "XT1063"
const-string v24, "XT1064"
const-string v25, "XT1068"
const-string v26, "XT1069"
const-string v27, "XT1072"
const-string v28, "XT1077"
const-string v29, "XT1078"
const-string v30, "XT1079"
filled-new-array/range {v2 .. v30}, [Ljava/lang/String;
move-result-object v2
.line 46
invoke-static {v2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v2
invoke-direct {v0, v2}, Ljava/util/HashSet;-><init>(Ljava/util/Collection;)V
sput-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->MODELS_REQUIRING_BITMAP_LOCK:Ljava/util/Set;
.line 86
sget-object v2, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-interface {v0, v2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_67
new-instance v0, Ljava/util/concurrent/locks/ReentrantLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;-><init>()V
goto :goto_6c
:cond_67
new-instance v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$NoLock;
invoke-direct {v0}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$NoLock;-><init>()V
:goto_6c
sput-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
.line 89
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0, v1}, Landroid/graphics/Paint;-><init>(I)V
sput-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->CIRCLE_CROP_BITMAP_PAINT:Landroid/graphics/Paint;
.line 90
new-instance v1, Landroid/graphics/PorterDuffXfermode;
sget-object v2, Landroid/graphics/PorterDuff$Mode;->SRC_IN:Landroid/graphics/PorterDuff$Mode;
invoke-direct {v1, v2}, Landroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
.line 91
return-void
.end method
.method private constructor <init>()V
.registers 1
.line 93
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 95
return-void
.end method
.method private static applyMatrix(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Matrix;)V
.registers 5
.param p0, "inBitmap" # Landroid/graphics/Bitmap;
.param p1, "targetBitmap" # Landroid/graphics/Bitmap;
.param p2, "matrix" # Landroid/graphics/Matrix;
.line 583
sget-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 585
:try_start_5
new-instance v0, Landroid/graphics/Canvas;
invoke-direct {v0, p1}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 586
.local v0, "canvas":Landroid/graphics/Canvas;
sget-object v1, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->DEFAULT_PAINT:Landroid/graphics/Paint;
invoke-virtual {v0, p0, p2, v1}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V
.line 587
invoke-static {v0}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->clear(Landroid/graphics/Canvas;)V
:try_end_12
.catchall {:try_start_5 .. :try_end_12} :catchall_19
.line 589
.end local v0 # "canvas":Landroid/graphics/Canvas;
sget-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 590
nop
.line 591
return-void
.line 589
:catchall_19
move-exception v0
sget-object v1, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method public static centerCrop(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.registers 10
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "inBitmap" # Landroid/graphics/Bitmap;
.param p2, "width" # I
.param p3, "height" # I
.line 114
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
if-ne v0, p2, :cond_d
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v0
if-ne v0, p3, :cond_d
.line 115
return-object p1
.line 121
:cond_d
new-instance v0, Landroid/graphics/Matrix;
invoke-direct {v0}, Landroid/graphics/Matrix;-><init>()V
.line 122
.local v0, "m":Landroid/graphics/Matrix;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v1
mul-int v1, v1, p3
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v2
mul-int v2, v2, p2
const/high16 v3, 0x3f000000 # 0.5f
if-le v1, v2, :cond_36
.line 123
int-to-float v1, p3
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v2
int-to-float v2, v2
div-float/2addr v1, v2
.line 124
.local v1, "scale":F
int-to-float v2, p2
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v4
int-to-float v4, v4
mul-float v4, v4, v1
sub-float/2addr v2, v4
mul-float v2, v2, v3
.line 125
.local v2, "dx":F
const/4 v4, 0x0
.local v4, "dy":F
goto :goto_49
.line 127
.end local v1 # "scale":F
.end local v2 # "dx":F
.end local v4 # "dy":F
:cond_36
int-to-float v1, p2
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
int-to-float v2, v2
div-float/2addr v1, v2
.line 128
.restart local v1 # "scale":F
const/4 v2, 0x0
.line 129
.restart local v2 # "dx":F
int-to-float v4, p3
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v5
int-to-float v5, v5
mul-float v5, v5, v1
sub-float/2addr v4, v5
mul-float v4, v4, v3
.line 132
.restart local v4 # "dy":F
:goto_49
invoke-virtual {v0, v1, v1}, Landroid/graphics/Matrix;->setScale(FF)V
.line 133
add-float v5, v2, v3
float-to-int v5, v5
int-to-float v5, v5
add-float/2addr v3, v4
float-to-int v3, v3
int-to-float v3, v3
invoke-virtual {v0, v5, v3}, Landroid/graphics/Matrix;->postTranslate(FF)Z
.line 135
invoke-static {p1}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->getNonNullConfig(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap$Config;
move-result-object v3
invoke-interface {p0, p2, p3, v3}, Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;->get(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v3
.line 137
.local v3, "result":Landroid/graphics/Bitmap;
invoke-static {p1, v3}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->setAlpha(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)V
.line 139
invoke-static {p1, v3, v0}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->applyMatrix(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Matrix;)V
.line 140
return-object v3
.end method
.method public static centerInside(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.registers 7
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "inBitmap" # Landroid/graphics/Bitmap;
.param p2, "width" # I
.param p3, "height" # I
.line 217
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
const/4 v1, 0x2
const-string v2, "TransformationUtils"
if-gt v0, p2, :cond_1b
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v0
if-gt v0, p3, :cond_1b
.line 218
invoke-static {v2, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_1a
.line 219
const-string v0, "requested target size larger or equal to input, returning input"
invoke-static {v2, v0}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 221
:cond_1a
return-object p1
.line 223
:cond_1b
invoke-static {v2, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_26
.line 224
const-string v0, "requested target size too big for input, fit centering instead"
invoke-static {v2, v0}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 226
:cond_26
invoke-static {p0, p1, p2, p3}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->fitCenter(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static circleCrop(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.registers 23
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "inBitmap" # Landroid/graphics/Bitmap;
.param p2, "destWidth" # I
.param p3, "destHeight" # I
.line 370
move-object/from16 v1, p0
invoke-static/range {p2 .. p3}, Ljava/lang/Math;->min(II)I
move-result v2
.line 371
.local v2, "destMinEdge":I
int-to-float v0, v2
const/high16 v3, 0x40000000 # 2.0f
div-float v4, v0, v3
.line 373
.local v4, "radius":F
invoke-virtual/range {p1 .. p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v5
.line 374
.local v5, "srcWidth":I
invoke-virtual/range {p1 .. p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v6
.line 376
.local v6, "srcHeight":I
int-to-float v0, v2
int-to-float v7, v5
div-float v7, v0, v7
.line 377
.local v7, "scaleX":F
int-to-float v0, v2
int-to-float v8, v6
div-float v8, v0, v8
.line 378
.local v8, "scaleY":F
invoke-static {v7, v8}, Ljava/lang/Math;->max(FF)F
move-result v9
.line 380
.local v9, "maxScale":F
int-to-float v0, v5
mul-float v10, v9, v0
.line 381
.local v10, "scaledWidth":F
int-to-float v0, v6
mul-float v11, v9, v0
.line 382
.local v11, "scaledHeight":F
int-to-float v0, v2
sub-float/2addr v0, v10
div-float v12, v0, v3
.line 383
.local v12, "left":F
int-to-float v0, v2
sub-float/2addr v0, v11
div-float v3, v0, v3
.line 385
.local v3, "top":F
new-instance v0, Landroid/graphics/RectF;
add-float v13, v12, v10
add-float v14, v3, v11
invoke-direct {v0, v12, v3, v13, v14}, Landroid/graphics/RectF;-><init>(FFFF)V
move-object v13, v0
.line 388
.local v13, "destRect":Landroid/graphics/RectF;
invoke-static/range {p0 .. p1}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->getAlphaSafeBitmap(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
move-result-object v14
.line 390
.local v14, "toTransform":Landroid/graphics/Bitmap;
invoke-static/range {p1 .. p1}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->getAlphaSafeConfig(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap$Config;
move-result-object v15
.line 391
.local v15, "outConfig":Landroid/graphics/Bitmap$Config;
move/from16 v16, v3
.end local v3 # "top":F
.local v16, "top":F
invoke-interface {v1, v2, v2, v15}, Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;->get(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v3
.line 392
.local v3, "result":Landroid/graphics/Bitmap;
const/4 v0, 0x1
invoke-virtual {v3, v0}, Landroid/graphics/Bitmap;->setHasAlpha(Z)V
.line 394
sget-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 396
:try_start_4e
new-instance v0, Landroid/graphics/Canvas;
invoke-direct {v0, v3}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
:try_end_53
.catchall {:try_start_4e .. :try_end_53} :catchall_81
.line 398
.local v0, "canvas":Landroid/graphics/Canvas;
move/from16 v17, v2
.end local v2 # "destMinEdge":I
.local v17, "destMinEdge":I
:try_start_55
sget-object v2, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->CIRCLE_CROP_SHAPE_PAINT:Landroid/graphics/Paint;
invoke-virtual {v0, v4, v4, v4, v2}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
.line 400
sget-object v2, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->CIRCLE_CROP_BITMAP_PAINT:Landroid/graphics/Paint;
:try_end_5c
.catchall {:try_start_55 .. :try_end_5c} :catchall_7b
move/from16 v18, v4
const/4 v4, 0x0
.end local v4 # "radius":F
.local v18, "radius":F
:try_start_5f
invoke-virtual {v0, v14, v4, v13, v2}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
.line 401
invoke-static {v0}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->clear(Landroid/graphics/Canvas;)V
:try_end_65
.catchall {:try_start_5f .. :try_end_65} :catchall_77
.line 403
.end local v0 # "canvas":Landroid/graphics/Canvas;
sget-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 404
nop
.line 406
move-object/from16 v2, p1
invoke-virtual {v14, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_76
.line 407
invoke-interface {v1, v14}, Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;->put(Landroid/graphics/Bitmap;)V
.line 410
:cond_76
return-object v3
.line 403
:catchall_77
move-exception v0
move-object/from16 v2, p1
goto :goto_88
.end local v18 # "radius":F
.restart local v4 # "radius":F
:catchall_7b
move-exception v0
move-object/from16 v2, p1
move/from16 v18, v4
.end local v4 # "radius":F
.restart local v18 # "radius":F
goto :goto_88
.end local v17 # "destMinEdge":I
.end local v18 # "radius":F
.restart local v2 # "destMinEdge":I
.restart local v4 # "radius":F
:catchall_81
move-exception v0
move/from16 v17, v2
move/from16 v18, v4
move-object/from16 v2, p1
.end local v2 # "destMinEdge":I
.end local v4 # "radius":F
.restart local v17 # "destMinEdge":I
.restart local v18 # "radius":F
:goto_88
sget-object v4, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method private static clear(Landroid/graphics/Canvas;)V
.registers 2
.param p0, "canvas" # Landroid/graphics/Canvas;
.line 573
const/4 v0, 0x0
invoke-virtual {p0, v0}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
.line 574
return-void
.end method
.method public static fitCenter(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
.registers 15
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "inBitmap" # Landroid/graphics/Bitmap;
.param p2, "width" # I
.param p3, "height" # I
.line 156
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v0
const/4 v1, 0x2
const-string v2, "TransformationUtils"
if-ne v0, p2, :cond_1b
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v0
if-ne v0, p3, :cond_1b
.line 157
invoke-static {v2, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_1a
.line 158
const-string v0, "requested target size matches input, returning input"
invoke-static {v2, v0}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 160
:cond_1a
return-object p1
.line 162
:cond_1b
int-to-float v0, p2
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v3
int-to-float v3, v3
div-float/2addr v0, v3
.line 163
.local v0, "widthPercentage":F
int-to-float v3, p3
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
int-to-float v4, v4
div-float/2addr v3, v4
.line 164
.local v3, "heightPercentage":F
invoke-static {v0, v3}, Ljava/lang/Math;->min(FF)F
move-result v4
.line 168
.local v4, "minPercentage":F
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v5
int-to-float v5, v5
mul-float v5, v5, v4
invoke-static {v5}, Ljava/lang/Math;->round(F)I
move-result v5
.line 169
.local v5, "targetWidth":I
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v6
int-to-float v6, v6
mul-float v6, v6, v4
invoke-static {v6}, Ljava/lang/Math;->round(F)I
move-result v6
.line 171
.local v6, "targetHeight":I
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v7
if-ne v7, v5, :cond_5b
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v7
if-ne v7, v6, :cond_5b
.line 172
invoke-static {v2, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v1
if-eqz v1, :cond_5a
.line 173
const-string v1, "adjusted target size matches input, returning input"
invoke-static {v2, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 175
:cond_5a
return-object p1
.line 181
:cond_5b
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v7
int-to-float v7, v7
mul-float v7, v7, v4
float-to-int v5, v7
.line 182
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v7
int-to-float v7, v7
mul-float v7, v7, v4
float-to-int v6, v7
.line 184
invoke-static {p1}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->getNonNullConfig(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap$Config;
move-result-object v7
.line 185
.local v7, "config":Landroid/graphics/Bitmap$Config;
invoke-interface {p0, v5, v6, v7}, Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;->get(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v8
.line 188
.local v8, "toReuse":Landroid/graphics/Bitmap;
invoke-static {p1, v8}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->setAlpha(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)V
.line 190
invoke-static {v2, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v1
if-eqz v1, :cond_f3
.line 191
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, "request: "
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string/jumbo v9, "x"
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 192
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v10, "toFit: "
invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v10
invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v10
invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 193
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v10, "toReuse: "
invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Landroid/graphics/Bitmap;->getWidth()I
move-result v10
invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Landroid/graphics/Bitmap;->getHeight()I
move-result v9
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 194
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, "minPct: "
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
.line 197
:cond_f3
new-instance v1, Landroid/graphics/Matrix;
invoke-direct {v1}, Landroid/graphics/Matrix;-><init>()V
.line 198
.local v1, "matrix":Landroid/graphics/Matrix;
invoke-virtual {v1, v4, v4}, Landroid/graphics/Matrix;->setScale(FF)V
.line 199
invoke-static {p1, v8, v1}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->applyMatrix(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Matrix;)V
.line 201
return-object v8
.end method
.method private static getAlphaSafeBitmap(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
.registers 7
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "maybeAlphaSafe" # Landroid/graphics/Bitmap;
.line 415
invoke-static {p1}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->getAlphaSafeConfig(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap$Config;
move-result-object v0
.line 416
.local v0, "safeConfig":Landroid/graphics/Bitmap$Config;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/graphics/Bitmap$Config;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_f
.line 417
return-object p1
.line 420
:cond_f
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v1
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v2
invoke-interface {p0, v1, v2, v0}, Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;->get(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v1
.line 421
.local v1, "argbBitmap":Landroid/graphics/Bitmap;
new-instance v2, Landroid/graphics/Canvas;
invoke-direct {v2, v1}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
const/4 v3, 0x0
const/4 v4, 0x0
invoke-virtual {v2, p1, v4, v4, v3}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
.line 425
return-object v1
.end method
.method private static getAlphaSafeConfig(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap$Config;
.registers 3
.param p0, "inBitmap" # Landroid/graphics/Bitmap;
.line 430
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1a
if-lt v0, v1, :cond_15
.line 432
sget-object v0, Landroid/graphics/Bitmap$Config;->RGBA_F16:Landroid/graphics/Bitmap$Config;
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/graphics/Bitmap$Config;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_15
.line 433
sget-object v0, Landroid/graphics/Bitmap$Config;->RGBA_F16:Landroid/graphics/Bitmap$Config;
return-object v0
.line 437
:cond_15
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
return-object v0
.end method
.method public static getBitmapDrawableLock()Ljava/util/concurrent/locks/Lock;
.registers 1
.line 98
sget-object v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
return-object v0
.end method
.method public static getExifOrientationDegrees(I)I
.registers 2
.param p0, "exifOrientation" # I
.line 284
packed-switch p0, :pswitch_data_10
.line 298
const/4 v0, 0x0
.local v0, "degreesToRotate":I
goto :goto_e
.line 295
.end local v0 # "degreesToRotate":I
:pswitch_5
const/16 v0, 0x10e
.line 296
.restart local v0 # "degreesToRotate":I
goto :goto_e
.line 287
.end local v0 # "degreesToRotate":I
:pswitch_8
const/16 v0, 0x5a
.line 288
.restart local v0 # "degreesToRotate":I
goto :goto_e
.line 291
.end local v0 # "degreesToRotate":I
:pswitch_b
const/16 v0, 0xb4
.line 292
.restart local v0 # "degreesToRotate":I
nop
.line 301
:goto_e
return v0
nop
:pswitch_data_10
.packed-switch 0x3
:pswitch_b
:pswitch_b
:pswitch_8
:pswitch_8
:pswitch_5
:pswitch_5
.end packed-switch
.end method
.method private static getNonNullConfig(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap$Config;
.registers 2
.param p0, "bitmap" # Landroid/graphics/Bitmap;
.line 578
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v0
if-eqz v0, :cond_b
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v0
goto :goto_d
:cond_b
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
:goto_d
return-object v0
.end method
.method static initializeMatrixForRotation(ILandroid/graphics/Matrix;)V
.registers 7
.param p0, "exifOrientation" # I
.param p1, "matrix" # Landroid/graphics/Matrix;
.line 595
const/high16 v0, -0x3d4c0000 # -90.0f
const/high16 v1, 0x42b40000 # 90.0f
const/high16 v2, 0x43340000 # 180.0f
const/high16 v3, 0x3f800000 # 1.0f
const/high16 v4, -0x40800000 # -1.0f
packed-switch p0, :pswitch_data_34
goto :goto_33
.line 618
:pswitch_e
invoke-virtual {p1, v0}, Landroid/graphics/Matrix;->setRotate(F)V
.line 619
goto :goto_33
.line 614
:pswitch_12
invoke-virtual {p1, v0}, Landroid/graphics/Matrix;->setRotate(F)V
.line 615
invoke-virtual {p1, v4, v3}, Landroid/graphics/Matrix;->postScale(FF)Z
.line 616
goto :goto_33
.line 611
:pswitch_19
invoke-virtual {p1, v1}, Landroid/graphics/Matrix;->setRotate(F)V
.line 612
goto :goto_33
.line 607
:pswitch_1d
invoke-virtual {p1, v1}, Landroid/graphics/Matrix;->setRotate(F)V
.line 608
invoke-virtual {p1, v4, v3}, Landroid/graphics/Matrix;->postScale(FF)Z
.line 609
goto :goto_33
.line 603
:pswitch_24
invoke-virtual {p1, v2}, Landroid/graphics/Matrix;->setRotate(F)V
.line 604
invoke-virtual {p1, v4, v3}, Landroid/graphics/Matrix;->postScale(FF)Z
.line 605
goto :goto_33
.line 600
:pswitch_2b
invoke-virtual {p1, v2}, Landroid/graphics/Matrix;->setRotate(F)V
.line 601
goto :goto_33
.line 597
:pswitch_2f
invoke-virtual {p1, v4, v3}, Landroid/graphics/Matrix;->setScale(FF)V
.line 598
nop
.line 623
:goto_33
return-void
:pswitch_data_34
.packed-switch 0x2
:pswitch_2f
:pswitch_2b
:pswitch_24
:pswitch_1d
:pswitch_19
:pswitch_12
:pswitch_e
.end packed-switch
.end method
.method public static isExifOrientationRequired(I)Z
.registers 2
.param p0, "exifOrientation" # I
.line 344
packed-switch p0, :pswitch_data_8
.line 354
const/4 v0, 0x0
return v0
.line 352
:pswitch_5
const/4 v0, 0x1
return v0
nop
:pswitch_data_8
.packed-switch 0x2
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
.end packed-switch
.end method
.method public static rotateImage(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.registers 11
.param p0, "imageToOrient" # Landroid/graphics/Bitmap;
.param p1, "degreesToRotate" # I
.line 253
move-object v0, p0
.line 255
.local v0, "result":Landroid/graphics/Bitmap;
if-eqz p1, :cond_2f
.line 256
:try_start_3
new-instance v1, Landroid/graphics/Matrix;
invoke-direct {v1}, Landroid/graphics/Matrix;-><init>()V
.line 257
.local v1, "matrix":Landroid/graphics/Matrix;
int-to-float v2, p1
invoke-virtual {v1, v2}, Landroid/graphics/Matrix;->setRotate(F)V
.line 258
const/4 v3, 0x0
const/4 v4, 0x0
.line 263
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
move-result v5
.line 264
invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
move-result v6
const/4 v8, 0x1
.line 259
move-object v2, p0
move-object v7, v1
invoke-static/range {v2 .. v8}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
move-result-object v2
:try_end_1d
.catch Ljava/lang/Exception; {:try_start_3 .. :try_end_1d} :catch_1f
move-object v0, v2
goto :goto_2f
.line 268
.end local v1 # "matrix":Landroid/graphics/Matrix;
:catch_1f
move-exception v1
.line 269
.local v1, "e":Ljava/lang/Exception;
const/4 v2, 0x6
const-string v3, "TransformationUtils"
invoke-static {v3, v2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v2
if-eqz v2, :cond_30
.line 270
const-string v2, "Exception when trying to orient image"
invoke-static {v3, v2, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_30
.line 272
.end local v1 # "e":Ljava/lang/Exception;
:cond_2f
:goto_2f
nop
.line 273
:cond_30
:goto_30
return-object v0
.end method
.method public static rotateImageExif(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.registers 11
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "inBitmap" # Landroid/graphics/Bitmap;
.param p2, "exifOrientation" # I
.line 314
invoke-static {p2}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->isExifOrientationRequired(I)Z
move-result v0
if-nez v0, :cond_7
.line 315
return-object p1
.line 318
:cond_7
new-instance v0, Landroid/graphics/Matrix;
invoke-direct {v0}, Landroid/graphics/Matrix;-><init>()V
.line 319
.local v0, "matrix":Landroid/graphics/Matrix;
invoke-static {p2, v0}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->initializeMatrixForRotation(ILandroid/graphics/Matrix;)V
.line 322
new-instance v1, Landroid/graphics/RectF;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
int-to-float v2, v2
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
int-to-float v3, v3
const/4 v4, 0x0
invoke-direct {v1, v4, v4, v2, v3}, Landroid/graphics/RectF;-><init>(FFFF)V
.line 323
.local v1, "newRect":Landroid/graphics/RectF;
invoke-virtual {v0, v1}, Landroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;)Z
.line 325
invoke-virtual {v1}, Landroid/graphics/RectF;->width()F
move-result v2
invoke-static {v2}, Ljava/lang/Math;->round(F)I
move-result v2
.line 326
.local v2, "newWidth":I
invoke-virtual {v1}, Landroid/graphics/RectF;->height()F
move-result v3
invoke-static {v3}, Ljava/lang/Math;->round(F)I
move-result v3
.line 328
.local v3, "newHeight":I
invoke-static {p1}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->getNonNullConfig(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap$Config;
move-result-object v4
.line 329
.local v4, "config":Landroid/graphics/Bitmap$Config;
invoke-interface {p0, v2, v3, v4}, Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;->get(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v5
.line 331
.local v5, "result":Landroid/graphics/Bitmap;
iget v6, v1, Landroid/graphics/RectF;->left:F
neg-float v6, v6
iget v7, v1, Landroid/graphics/RectF;->top:F
neg-float v7, v7
invoke-virtual {v0, v6, v7}, Landroid/graphics/Matrix;->postTranslate(FF)Z
.line 333
invoke-virtual {p1}, Landroid/graphics/Bitmap;->hasAlpha()Z
move-result v6
invoke-virtual {v5, v6}, Landroid/graphics/Bitmap;->setHasAlpha(Z)V
.line 335
invoke-static {p1, v5, v0}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->applyMatrix(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Matrix;)V
.line 336
return-object v5
.end method
.method public static roundedCorners(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;FFFF)Landroid/graphics/Bitmap;
.registers 7
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "inBitmap" # Landroid/graphics/Bitmap;
.param p2, "topLeft" # F
.param p3, "topRight" # F
.param p4, "bottomRight" # F
.param p5, "bottomLeft" # F
.line 513
new-instance v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$2;
invoke-direct {v0, p2, p3, p4, p5}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$2;-><init>(FFFF)V
invoke-static {p0, p1, v0}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->roundedCorners(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$DrawRoundedCornerFn;)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static roundedCorners(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
.registers 5
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "inBitmap" # Landroid/graphics/Bitmap;
.param p2, "roundingRadius" # I
.line 477
if-lez p2, :cond_4
const/4 v0, 0x1
goto :goto_5
:cond_4
const/4 v0, 0x0
:goto_5
const-string v1, "roundingRadius must be greater than 0."
invoke-static {v0, v1}, Lcom/bumptech/glide/util/Preconditions;->checkArgument(ZLjava/lang/String;)V
.line 479
new-instance v0, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$1;
invoke-direct {v0, p2}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$1;-><init>(I)V
invoke-static {p0, p1, v0}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->roundedCorners(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$DrawRoundedCornerFn;)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method public static roundedCorners(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;
.registers 6
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "inBitmap" # Landroid/graphics/Bitmap;
.param p2, "width" # I
.param p3, "height" # I
.param p4, "roundingRadius" # I
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 459
invoke-static {p0, p1, p4}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->roundedCorners(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
move-result-object v0
return-object v0
.end method
.method private static roundedCorners(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$DrawRoundedCornerFn;)Landroid/graphics/Bitmap;
.registers 12
.param p0, "pool" # Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;
.param p1, "inBitmap" # Landroid/graphics/Bitmap;
.param p2, "drawRoundedCornerFn" # Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$DrawRoundedCornerFn;
.line 542
invoke-static {p1}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->getAlphaSafeConfig(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap$Config;
move-result-object v0
.line 543
.local v0, "safeConfig":Landroid/graphics/Bitmap$Config;
invoke-static {p0, p1}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->getAlphaSafeBitmap(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
move-result-object v1
.line 544
.local v1, "toTransform":Landroid/graphics/Bitmap;
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I
move-result v3
invoke-interface {p0, v2, v3, v0}, Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;->get(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v2
.line 546
.local v2, "result":Landroid/graphics/Bitmap;
const/4 v3, 0x1
invoke-virtual {v2, v3}, Landroid/graphics/Bitmap;->setHasAlpha(Z)V
.line 548
new-instance v4, Landroid/graphics/BitmapShader;
sget-object v5, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
sget-object v6, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
invoke-direct {v4, v1, v5, v6}, Landroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V
.line 550
.local v4, "shader":Landroid/graphics/BitmapShader;
new-instance v5, Landroid/graphics/Paint;
invoke-direct {v5}, Landroid/graphics/Paint;-><init>()V
.line 551
.local v5, "paint":Landroid/graphics/Paint;
invoke-virtual {v5, v3}, Landroid/graphics/Paint;->setAntiAlias(Z)V
.line 552
invoke-virtual {v5, v4}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
.line 553
new-instance v3, Landroid/graphics/RectF;
invoke-virtual {v2}, Landroid/graphics/Bitmap;->getWidth()I
move-result v6
int-to-float v6, v6
invoke-virtual {v2}, Landroid/graphics/Bitmap;->getHeight()I
move-result v7
int-to-float v7, v7
const/4 v8, 0x0
invoke-direct {v3, v8, v8, v6, v7}, Landroid/graphics/RectF;-><init>(FFFF)V
.line 554
.local v3, "rect":Landroid/graphics/RectF;
sget-object v6, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
invoke-interface {v6}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 556
:try_start_41
new-instance v6, Landroid/graphics/Canvas;
invoke-direct {v6, v2}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
.line 557
.local v6, "canvas":Landroid/graphics/Canvas;
const/4 v7, 0x0
sget-object v8, Landroid/graphics/PorterDuff$Mode;->CLEAR:Landroid/graphics/PorterDuff$Mode;
invoke-virtual {v6, v7, v8}, Landroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
.line 558
invoke-interface {p2, v6, v5, v3}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils$DrawRoundedCornerFn;->drawRoundedCorners(Landroid/graphics/Canvas;Landroid/graphics/Paint;Landroid/graphics/RectF;)V
.line 559
invoke-static {v6}, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->clear(Landroid/graphics/Canvas;)V
:try_end_52
.catchall {:try_start_41 .. :try_end_52} :catchall_62
.line 561
.end local v6 # "canvas":Landroid/graphics/Canvas;
sget-object v6, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
invoke-interface {v6}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 562
nop
.line 564
invoke-virtual {v1, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v6
if-nez v6, :cond_61
.line 565
invoke-interface {p0, v1}, Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;->put(Landroid/graphics/Bitmap;)V
.line 568
:cond_61
return-object v2
.line 561
:catchall_62
move-exception v6
sget-object v7, Lcom/bumptech/glide/load/resource/bitmap/TransformationUtils;->BITMAP_DRAWABLE_LOCK:Ljava/util/concurrent/locks/Lock;
invoke-interface {v7}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v6
.end method
.method public static setAlpha(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)V
.registers 3
.param p0, "inBitmap" # Landroid/graphics/Bitmap;
.param p1, "outBitmap" # Landroid/graphics/Bitmap;
.line 240
invoke-virtual {p0}, Landroid/graphics/Bitmap;->hasAlpha()Z
move-result v0
invoke-virtual {p1, v0}, Landroid/graphics/Bitmap;->setHasAlpha(Z)V
.line 241
return-void
.end method