.class final enum Lcom/luck/picture/lib/compress/Checker; .super Ljava/lang/Enum; .source "Checker.java" # annotations .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Enum<", "Lcom/luck/picture/lib/compress/Checker;", ">;" } .end annotation # static fields .field private static final synthetic $VALUES:[Lcom/luck/picture/lib/compress/Checker; .field private static final JPG:Ljava/lang/String; = ".jpg" .field public static final enum SINGLE:Lcom/luck/picture/lib/compress/Checker; .field private static final TAG:Ljava/lang/String; = "Luban" # instance fields .field private final JPEG_SIGNATURE:[B # direct methods .method private static synthetic $values()[Lcom/luck/picture/lib/compress/Checker; .registers 1 .line 13 sget-object v0, Lcom/luck/picture/lib/compress/Checker;->SINGLE:Lcom/luck/picture/lib/compress/Checker; filled-new-array {v0}, [Lcom/luck/picture/lib/compress/Checker; move-result-object v0 return-object v0 .end method .method static constructor ()V .registers 3 .line 14 new-instance v0, Lcom/luck/picture/lib/compress/Checker; const-string v1, "SINGLE" const/4 v2, 0x0 invoke-direct {v0, v1, v2}, Lcom/luck/picture/lib/compress/Checker;->(Ljava/lang/String;I)V sput-object v0, Lcom/luck/picture/lib/compress/Checker;->SINGLE:Lcom/luck/picture/lib/compress/Checker; .line 13 invoke-static {}, Lcom/luck/picture/lib/compress/Checker;->$values()[Lcom/luck/picture/lib/compress/Checker; move-result-object v0 sput-object v0, Lcom/luck/picture/lib/compress/Checker;->$VALUES:[Lcom/luck/picture/lib/compress/Checker; return-void .end method .method private constructor (Ljava/lang/String;I)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "()V" } .end annotation .line 13 invoke-direct {p0, p1, p2}, Ljava/lang/Enum;->(Ljava/lang/String;I)V const/4 p1, 0x3 .line 20 new-array p1, p1, [B fill-array-data p1, :array_c iput-object p1, p0, Lcom/luck/picture/lib/compress/Checker;->JPEG_SIGNATURE:[B return-void :array_c .array-data 1 -0x1t -0x28t -0x1t .end array-data .end method .method private getOrientation([B)I .registers 13 const/4 v0, 0x0 if-nez p1, :cond_4 return v0 :cond_4 move v1, v0 :goto_5 add-int/lit8 v2, v1, 0x3 .line 55 array-length v3, p1 const/4 v4, 0x1 const/4 v5, 0x4 const-string v6, "Luban" const/16 v7, 0x8 const/4 v8, 0x2 if-ge v2, v3, :cond_66 add-int/lit8 v2, v1, 0x1 aget-byte v3, p1, v1 const/16 v9, 0xff and-int/2addr v3, v9 if-ne v3, v9, :cond_63 .line 56 aget-byte v3, p1, v2 and-int/2addr v3, v9 if-ne v3, v9, :cond_20 goto :goto_61 :cond_20 add-int/lit8 v2, v1, 0x2 const/16 v9, 0xd8 if-eq v3, v9, :cond_61 if-ne v3, v4, :cond_29 goto :goto_61 :cond_29 const/16 v9, 0xd9 if-eq v3, v9, :cond_63 const/16 v9, 0xda if-ne v3, v9, :cond_32 goto :goto_63 .line 74 :cond_32 invoke-direct {p0, p1, v2, v8, v0}, Lcom/luck/picture/lib/compress/Checker;->pack([BIIZ)I move-result v9 if-lt v9, v8, :cond_5b add-int/2addr v2, v9 .line 75 array-length v10, p1 if-le v2, v10, :cond_3d goto :goto_5b :cond_3d const/16 v10, 0xe1 if-ne v3, v10, :cond_61 if-lt v9, v7, :cond_61 add-int/lit8 v3, v1, 0x4 .line 82 invoke-direct {p0, p1, v3, v5, v0}, Lcom/luck/picture/lib/compress/Checker;->pack([BIIZ)I move-result v3 const v10, 0x45786966 if-ne v3, v10, :cond_61 add-int/lit8 v3, v1, 0x8 .line 83 invoke-direct {p0, p1, v3, v8, v0}, Lcom/luck/picture/lib/compress/Checker;->pack([BIIZ)I move-result v3 if-nez v3, :cond_61 add-int/lit8 v1, v1, 0xa add-int/lit8 v9, v9, -0x8 goto :goto_67 .line 76 :cond_5b :goto_5b const-string p1, "Invalid length" invoke-static {v6, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I return v0 :cond_61 :goto_61 move v1, v2 goto :goto_5 :cond_63 :goto_63 move v9, v0 move v1, v2 goto :goto_67 :cond_66 move v9, v0 :goto_67 if-le v9, v7, :cond_d3 .line 97 invoke-direct {p0, p1, v1, v5, v0}, Lcom/luck/picture/lib/compress/Checker;->pack([BIIZ)I move-result v2 const v3, 0x49492a00 # 823968.0f if-eq v2, v3, :cond_7d const v10, 0x4d4d002a # 2.14958752E8f if-eq v2, v10, :cond_7d .line 99 const-string p1, "Invalid byte order" invoke-static {v6, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I return v0 :cond_7d if-ne v2, v3, :cond_81 move v2, v4 goto :goto_82 :cond_81 move v2, v0 :goto_82 add-int/lit8 v3, v1, 0x4 .line 105 invoke-direct {p0, p1, v3, v5, v2}, Lcom/luck/picture/lib/compress/Checker;->pack([BIIZ)I move-result v3 add-int/2addr v3, v8 const/16 v5, 0xa if-lt v3, v5, :cond_cd if-le v3, v9, :cond_90 goto :goto_cd :cond_90 add-int/2addr v1, v3 sub-int/2addr v9, v3 add-int/lit8 v3, v1, -0x2 .line 114 invoke-direct {p0, p1, v3, v8, v2}, Lcom/luck/picture/lib/compress/Checker;->pack([BIIZ)I move-result v3 :goto_98 add-int/lit8 v5, v3, -0x1 if-lez v3, :cond_d3 const/16 v3, 0xc if-lt v9, v3, :cond_d3 .line 117 invoke-direct {p0, p1, v1, v8, v2}, Lcom/luck/picture/lib/compress/Checker;->pack([BIIZ)I move-result v3 const/16 v10, 0x112 if-ne v3, v10, :cond_c7 add-int/2addr v1, v7 .line 119 invoke-direct {p0, p1, v1, v8, v2}, Lcom/luck/picture/lib/compress/Checker;->pack([BIIZ)I move-result p1 if-eq p1, v4, :cond_c6 const/4 v1, 0x3 if-eq p1, v1, :cond_c3 const/4 v1, 0x6 if-eq p1, v1, :cond_c0 if-eq p1, v7, :cond_bd .line 130 const-string p1, "Unsupported orientation" invoke-static {v6, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I return v0 :cond_bd const/16 p1, 0x10e return p1 :cond_c0 const/16 p1, 0x5a return p1 :cond_c3 const/16 p1, 0xb4 return p1 :cond_c6 return v0 :cond_c7 add-int/lit8 v1, v1, 0xc add-int/lit8 v9, v9, -0xc move v3, v5 goto :goto_98 .line 107 :cond_cd :goto_cd const-string p1, "Invalid offset" invoke-static {v6, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I return v0 .line 138 :cond_d3 const-string p1, "Orientation not found" invoke-static {v6, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I return v0 .end method .method private isJPG([B)Z .registers 8 const/4 v0, 0x0 if-eqz p1, :cond_1f .line 39 array-length v1, p1 const/4 v2, 0x3 if-ge v1, v2, :cond_8 goto :goto_1f .line 42 :cond_8 aget-byte v1, p1, v0 const/4 v3, 0x1 aget-byte v4, p1, v3 const/4 v5, 0x2 aget-byte p1, p1, v5 new-array v2, v2, [B aput-byte v1, v2, v0 aput-byte v4, v2, v3 aput-byte p1, v2, v5 .line 43 iget-object p1, p0, Lcom/luck/picture/lib/compress/Checker;->JPEG_SIGNATURE:[B invoke-static {p1, v2}, Ljava/util/Arrays;->equals([B[B)Z move-result p1 return p1 :cond_1f :goto_1f return v0 .end method .method private pack([BIIZ)I .registers 7 if-eqz p4, :cond_7 add-int/lit8 p4, p3, -0x1 add-int/2addr p2, p4 const/4 p4, -0x1 goto :goto_8 :cond_7 const/4 p4, 0x1 :goto_8 const/4 v0, 0x0 :goto_9 add-int/lit8 v1, p3, -0x1 if-lez p3, :cond_17 shl-int/lit8 p3, v0, 0x8 .line 179 aget-byte v0, p1, p2 and-int/lit16 v0, v0, 0xff or-int/2addr v0, p3 add-int/2addr p2, p4 move p3, v1 goto :goto_9 :cond_17 return v0 .end method .method private toByteArray(Ljava/io/InputStream;)[B .registers 8 const/4 v0, 0x0 if-nez p1, :cond_6 .line 187 new-array p1, v0, [B return-object p1 .line 190 :cond_6 new-instance v1, Ljava/io/ByteArrayOutputStream; invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;->()V const/16 v2, 0x1000 .line 193 new-array v3, v2, [B .line 196 :goto_f :try_start_f invoke-virtual {p1, v3, v0, v2}, Ljava/io/InputStream;->read([BII)I move-result v4 const/4 v5, -0x1 if-eq v4, v5, :cond_1a .line 197 invoke-virtual {v1, v3, v0, v4}, Ljava/io/ByteArrayOutputStream;->write([BII)V :try_end_19 .catch Ljava/lang/Exception; {:try_start_f .. :try_end_19} :catch_24 .catchall {:try_start_f .. :try_end_19} :catchall_22 goto :goto_f .line 203 :cond_1a :try_start_1a invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V :try_end_1d .catch Ljava/io/IOException; {:try_start_1a .. :try_end_1d} :catch_1d .line 208 :catch_1d invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B move-result-object p1 return-object p1 :catchall_22 move-exception p1 goto :goto_2a .line 200 :catch_24 :try_start_24 new-array p1, v0, [B :try_end_26 .catchall {:try_start_24 .. :try_end_26} :catchall_22 .line 203 :try_start_26 invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V :try_end_29 .catch Ljava/io/IOException; {:try_start_26 .. :try_end_29} :catch_29 :catch_29 return-object p1 :goto_2a :try_start_2a invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V :try_end_2d .catch Ljava/io/IOException; {:try_start_2a .. :try_end_2d} :catch_2d .line 206 :catch_2d throw p1 .end method .method public static valueOf(Ljava/lang/String;)Lcom/luck/picture/lib/compress/Checker; .registers 2 .line 13 const-class v0, Lcom/luck/picture/lib/compress/Checker; invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; move-result-object p0 check-cast p0, Lcom/luck/picture/lib/compress/Checker; return-object p0 .end method .method public static values()[Lcom/luck/picture/lib/compress/Checker; .registers 1 .line 13 sget-object v0, Lcom/luck/picture/lib/compress/Checker;->$VALUES:[Lcom/luck/picture/lib/compress/Checker; invoke-virtual {v0}, [Lcom/luck/picture/lib/compress/Checker;->clone()Ljava/lang/Object; move-result-object v0 check-cast v0, [Lcom/luck/picture/lib/compress/Checker; return-object v0 .end method # virtual methods .method extSuffix(Lcom/luck/picture/lib/compress/InputStreamProvider;)Ljava/lang/String; .registers 4 .line 144 :try_start_0 new-instance v0, Landroid/graphics/BitmapFactory$Options; invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;->()V const/4 v1, 0x1 .line 145 iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z .line 146 invoke-interface {p1}, Lcom/luck/picture/lib/compress/InputStreamProvider;->open()Ljava/io/InputStream; move-result-object p1 const/4 v1, 0x0 invoke-static {p1, v1, v0}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; .line 147 iget-object p1, v0, Landroid/graphics/BitmapFactory$Options;->outMimeType:Ljava/lang/String; const-string v0, "image/" const-string v1, "." invoke-virtual {p1, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; move-result-object p1 :try_end_1a .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1a} :catch_1b return-object p1 .line 149 :catch_1b const-string p1, ".jpg" return-object p1 .end method .method extSuffix(Ljava/lang/String;)Ljava/lang/String; .registers 5 .line 155 const-string v0, "" :try_start_2 invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v1 if-eqz v1, :cond_9 goto :goto_11 .line 156 :cond_9 const-string v1, "image/" const-string v2, "." invoke-virtual {p1, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; move-result-object v0 :try_end_11 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_11} :catch_11 :catch_11 :goto_11 return-object v0 .end method .method getOrientation(Ljava/io/InputStream;)I .registers 2 .line 35 invoke-direct {p0, p1}, Lcom/luck/picture/lib/compress/Checker;->toByteArray(Ljava/io/InputStream;)[B move-result-object p1 invoke-direct {p0, p1}, Lcom/luck/picture/lib/compress/Checker;->getOrientation([B)I move-result p1 return p1 .end method .method isJPG(Ljava/io/InputStream;)Z .registers 2 .line 28 invoke-direct {p0, p1}, Lcom/luck/picture/lib/compress/Checker;->toByteArray(Ljava/io/InputStream;)[B move-result-object p1 invoke-direct {p0, p1}, Lcom/luck/picture/lib/compress/Checker;->isJPG([B)Z move-result p1 return p1 .end method .method needCompress(ILjava/lang/String;)Z .registers 6 const/4 v0, 0x1 if-lez p1, :cond_21 .line 163 invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v1 if-nez v1, :cond_21 .line 164 new-instance v1, Ljava/io/File; invoke-direct {v1, p2}, Ljava/io/File;->(Ljava/lang/String;)V .line 165 invoke-virtual {v1}, Ljava/io/File;->exists()Z move-result p2 if-eqz p2, :cond_20 invoke-virtual {v1}, Ljava/io/File;->length()J move-result-wide v1 shl-int/lit8 p1, p1, 0xa int-to-long p1, p1 cmp-long p1, v1, p1 if-lez p1, :cond_20 goto :goto_21 :cond_20 const/4 v0, 0x0 :cond_21 :goto_21 return v0 .end method