.class public Lcom/yalantis/ucrop/util/BitmapLoadUtils; .super Ljava/lang/Object; .source "BitmapLoadUtils.java" # static fields .field private static final TAG:Ljava/lang/String; = "BitmapLoadUtils" # direct methods .method public constructor ()V .registers 1 .line 29 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static calculateInSampleSize(Landroid/graphics/BitmapFactory$Options;II)I .registers 6 .line 55 iget v0, p0, Landroid/graphics/BitmapFactory$Options;->outHeight:I .line 56 iget p0, p0, Landroid/graphics/BitmapFactory$Options;->outWidth:I const/4 v1, 0x1 if-gt v0, p2, :cond_9 if-le p0, p1, :cond_12 .line 62 :cond_9 :goto_9 div-int v2, v0, v1 if-gt v2, p2, :cond_13 div-int v2, p0, v1 if-le v2, p1, :cond_12 goto :goto_13 :cond_12 return v1 :cond_13 :goto_13 mul-int/lit8 v1, v1, 0x2 goto :goto_9 .end method .method public static calculateMaxBitmapSize(Landroid/content/Context;)I .registers 8 .line 129 const-string v0, "window" invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object p0 check-cast p0, Landroid/view/WindowManager; .line 130 invoke-interface {p0}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display; move-result-object p0 .line 132 new-instance v0, Landroid/graphics/Point; invoke-direct {v0}, Landroid/graphics/Point;->()V .line 135 invoke-virtual {p0, v0}, Landroid/view/Display;->getSize(Landroid/graphics/Point;)V .line 136 iget p0, v0, Landroid/graphics/Point;->x:I .line 137 iget v0, v0, Landroid/graphics/Point;->y:I int-to-double v1, p0 const-wide/high16 v3, 0x4000000000000000L # 2.0 .line 144 invoke-static {v1, v2, v3, v4}, Ljava/lang/Math;->pow(DD)D move-result-wide v1 int-to-double v5, v0 invoke-static {v5, v6, v3, v4}, Ljava/lang/Math;->pow(DD)D move-result-wide v3 add-double/2addr v1, v3 invoke-static {v1, v2}, Ljava/lang/Math;->sqrt(D)D move-result-wide v0 double-to-int p0, v0 .line 147 new-instance v0, Landroid/graphics/Canvas; invoke-direct {v0}, Landroid/graphics/Canvas;->()V .line 148 invoke-virtual {v0}, Landroid/graphics/Canvas;->getMaximumBitmapWidth()I move-result v1 invoke-virtual {v0}, Landroid/graphics/Canvas;->getMaximumBitmapHeight()I move-result v0 invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I move-result v0 if-lez v0, :cond_41 .line 150 invoke-static {p0, v0}, Ljava/lang/Math;->min(II)I move-result p0 .line 154 :cond_41 invoke-static {}, Lcom/yalantis/ucrop/util/EglUtils;->getMaxTextureSize()I move-result v0 if-lez v0, :cond_4b .line 156 invoke-static {p0, v0}, Ljava/lang/Math;->min(II)I move-result p0 .line 159 :cond_4b new-instance v0, Ljava/lang/StringBuilder; const-string v1, "maxBitmapSize: " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 const-string v1, "BitmapLoadUtils" invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I return p0 .end method .method public static close(Ljava/io/Closeable;)V .registers 2 if-eqz p0, :cond_9 .line 165 instance-of v0, p0, Ljava/io/Closeable; if-eqz v0, :cond_9 .line 167 :try_start_6 invoke-interface {p0}, Ljava/io/Closeable;->close()V :try_end_9 .catch Ljava/io/IOException; {:try_start_6 .. :try_end_9} :catch_9 :catch_9 :cond_9 return-void .end method .method public static decodeBitmapInBackground(Landroid/content/Context;Landroid/net/Uri;Landroid/net/Uri;IILcom/yalantis/ucrop/callback/BitmapLoadCallback;)V .registers 14 .line 38 new-instance v7, Lcom/yalantis/ucrop/task/BitmapLoadTask; move-object v0, v7 move-object v1, p0 move-object v2, p1 move-object v3, p2 move v4, p3 move v5, p4 move-object v6, p5 invoke-direct/range {v0 .. v6}, Lcom/yalantis/ucrop/task/BitmapLoadTask;->(Landroid/content/Context;Landroid/net/Uri;Landroid/net/Uri;IILcom/yalantis/ucrop/callback/BitmapLoadCallback;)V const/4 p0, 0x0 new-array p0, p0, [Ljava/lang/Void; invoke-virtual {v7, p0}, Lcom/yalantis/ucrop/task/BitmapLoadTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; return-void .end method .method public static exifToDegrees(I)I .registers 1 packed-switch p0, :pswitch_data_e const/4 p0, 0x0 goto :goto_d :pswitch_5 const/16 p0, 0x10e goto :goto_d :pswitch_8 const/16 p0, 0x5a goto :goto_d :pswitch_b const/16 p0, 0xb4 :goto_d return p0 :pswitch_data_e .packed-switch 0x3 :pswitch_b :pswitch_b :pswitch_8 :pswitch_8 :pswitch_5 :pswitch_5 .end packed-switch .end method .method public static exifToTranslation(I)I .registers 2 const/4 v0, 0x2 if-eq p0, v0, :cond_e const/4 v0, 0x7 if-eq p0, v0, :cond_e const/4 v0, 0x4 if-eq p0, v0, :cond_e const/4 v0, 0x5 if-eq p0, v0, :cond_e const/4 p0, 0x1 goto :goto_f :cond_e const/4 p0, -0x1 :goto_f return p0 .end method .method public static getExifOrientation(Landroid/content/Context;Landroid/net/Uri;)I .registers 5 const/4 v0, 0x0 .line 72 :try_start_1 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object p0 invoke-virtual {p0, p1}, Landroid/content/ContentResolver;->openInputStream(Landroid/net/Uri;)Ljava/io/InputStream; move-result-object p0 if-nez p0, :cond_c return v0 .line 76 :cond_c new-instance v1, Lcom/yalantis/ucrop/util/ImageHeaderParser; invoke-direct {v1, p0}, Lcom/yalantis/ucrop/util/ImageHeaderParser;->(Ljava/io/InputStream;)V invoke-virtual {v1}, Lcom/yalantis/ucrop/util/ImageHeaderParser;->getOrientation()I move-result v0 .line 77 invoke-static {p0}, Lcom/yalantis/ucrop/util/BitmapLoadUtils;->close(Ljava/io/Closeable;)V :try_end_18 .catch Ljava/io/IOException; {:try_start_1 .. :try_end_18} :catch_19 goto :goto_32 :catch_19 move-exception p0 .line 79 new-instance v1, Ljava/lang/StringBuilder; const-string v2, "getExifOrientation: " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1}, Landroid/net/Uri;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 const-string v1, "BitmapLoadUtils" invoke-static {v1, p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I :goto_32 return v0 .end method .method public static transformBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;)Landroid/graphics/Bitmap; .registers 9 .line 43 :try_start_0 invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I move-result v3 invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I move-result v4 const/4 v6, 0x1 const/4 v1, 0x0 const/4 v2, 0x0 move-object v0, p0 move-object v5, p1 invoke-static/range {v0 .. v6}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap; move-result-object p1 .line 44 invoke-virtual {p0, p1}, Landroid/graphics/Bitmap;->sameAs(Landroid/graphics/Bitmap;)Z move-result v0 :try_end_15 .catch Ljava/lang/OutOfMemoryError; {:try_start_0 .. :try_end_15} :catch_19 if-nez v0, :cond_21 move-object p0, p1 goto :goto_21 :catch_19 move-exception p1 .line 48 const-string v0, "BitmapLoadUtils" const-string v1, "transformBitmap: " invoke-static {v0, v1, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I :cond_21 :goto_21 return-object p0 .end method