ExifUtils.smali
.class public Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;
.super Ljava/lang/Object;
.source "ExifUtils.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$ExifException;,
Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;,
Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$b;
}
.end annotation
# static fields
.field private static final a:[B
.field private static final b:[B
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 23
const/4 v0, 0x2
new-array v0, v0, [B
fill-array-data v0, :array_12
sput-object v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a:[B
.line 26
const/4 v0, 0x4
new-array v0, v0, [B
fill-array-data v0, :array_18
sput-object v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->b:[B
return-void
.line 23
nop
:array_12
.array-data 1
-0x1t
-0x28t
.end array-data
.line 26
nop
:array_18
.array-data 1
0x45t
0x78t
0x69t
0x66t
.end array-data
.end method
.method private static a(II)I
.registers 4
.prologue
.line 34
and-int/lit16 v0, p0, 0xff
.line 35
and-int/lit16 v1, p1, 0xff
.line 36
shl-int/lit8 v0, v0, 0x8
or-int/2addr v0, v1
return v0
.end method
.method private static a(Ljava/lang/String;)Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")",
"Ljava/util/List",
"<",
"Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$ExifException;
}
.end annotation
.prologue
.line 117
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 118
new-instance v1, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$1;
invoke-direct {v1, v0}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$1;-><init>(Ljava/util/List;)V
invoke-static {p0, v1}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(Ljava/lang/String;Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$b;)V
.line 133
return-object v0
.end method
.method private static a(Ljava/lang/String;Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$b;)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$ExifException;
}
.end annotation
.prologue
.line 84
const/4 v2, 0x0
.line 86
:try_start_1
new-instance v1, Ljava/io/FileInputStream;
invoke-direct {v1, p0}, Ljava/io/FileInputStream;-><init>(Ljava/lang/String;)V
:try_end_6
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_6} :catch_42
.catchall {:try_start_1 .. :try_end_6} :catchall_3a
.line 87
:try_start_6
invoke-static {v1}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(Ljava/io/FileInputStream;)Z
move-result v0
if-nez v0, :cond_1c
.line 91
new-instance v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$ExifException;
const-string v2, "Not a Valid JPEG File."
invoke-direct {v0, v2}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$ExifException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_14
.catch Ljava/io/IOException; {:try_start_6 .. :try_end_14} :catch_14
.catchall {:try_start_6 .. :try_end_14} :catchall_40
.line 101
:catch_14
move-exception v0
.line 102
:goto_15
:try_start_15
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
:try_end_18
.catchall {:try_start_15 .. :try_end_18} :catchall_40
.line 107
invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
.line 109
:goto_1b
return-void
.line 93
:cond_1c
const/4 v0, 0x2
:try_start_1d
new-array v0, v0, [B
.line 95
:cond_1f
invoke-virtual {v1, v0}, Ljava/io/FileInputStream;->read([B)I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_36
.line 96
const/4 v2, 0x0
aget-byte v2, v0, v2
const/4 v3, 0x1
aget-byte v3, v0, v3
invoke-static {v2, v3}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(II)I
move-result v2
.line 97
invoke-static {v1, v2, v0, p1}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(Ljava/io/InputStream;I[BLcom/dianxinos/optimizer/module/space/utils/ExifUtils$b;)Z
:try_end_33
.catch Ljava/io/IOException; {:try_start_1d .. :try_end_33} :catch_14
.catchall {:try_start_1d .. :try_end_33} :catchall_40
move-result v2
if-nez v2, :cond_1f
.line 107
:cond_36
invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
goto :goto_1b
:catchall_3a
move-exception v0
move-object v1, v2
:goto_3c
invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
throw v0
:catchall_40
move-exception v0
goto :goto_3c
.line 101
:catch_42
move-exception v0
move-object v1, v2
goto :goto_15
.end method
.method static synthetic a(I)Z
.registers 2
.prologue
.line 15
invoke-static {p0}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->b(I)Z
move-result v0
return v0
.end method
.method private static a(Ljava/io/FileInputStream;)Z
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v0, 0x0
.line 41
invoke-virtual {p0}, Ljava/io/FileInputStream;->read()I
move-result v1
.line 42
if-gez v1, :cond_8
.line 46
:cond_7
:goto_7
return v0
.line 45
:cond_8
invoke-virtual {p0}, Ljava/io/FileInputStream;->read()I
move-result v2
.line 46
if-ltz v2, :cond_7
invoke-static {v1, v2}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(II)I
move-result v1
const v2, 0xffd8
if-ne v1, v2, :cond_7
const/4 v0, 0x1
goto :goto_7
.end method
.method private static a(Ljava/io/InputStream;I[BLcom/dianxinos/optimizer/module/space/utils/ExifUtils$b;)Z
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v0, 0x0
.line 64
const v1, 0xffda
if-ne p1, v1, :cond_a
.line 65
invoke-interface {p3, p1, p2, p0}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$b;->a(I[BLjava/io/InputStream;)V
.line 76
:goto_9
return v0
.line 68
:cond_a
const/4 v1, 0x2
invoke-static {p0, v1}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(Ljava/io/InputStream;I)[B
move-result-object v1
.line 69
aget-byte v0, v1, v0
const/4 v2, 0x1
aget-byte v2, v1, v2
invoke-static {v0, v2}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(II)I
move-result v0
.line 71
new-instance v2, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;
const/4 v3, 0x0
invoke-direct {v2, v3}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;-><init>(Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$1;)V
.line 72
iput p1, v2, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;->a:I
.line 73
array-length v3, p2
invoke-static {p2, v3}, Ljava/util/Arrays;->copyOf([BI)[B
move-result-object v3
iput-object v3, v2, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;->b:[B
.line 74
iput-object v1, v2, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;->c:[B
.line 75
add-int/lit8 v0, v0, -0x2
invoke-static {p0, v0}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(Ljava/io/InputStream;I)[B
move-result-object v0
iput-object v0, v2, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;->d:[B
.line 76
invoke-interface {p3, v2}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$b;->a(Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;)Z
move-result v0
goto :goto_9
.end method
.method public static a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$ExifException;
}
.end annotation
.prologue
const/4 v2, 0x1
const/4 v1, 0x0
.line 200
invoke-static {p0}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(Ljava/lang/String;)Ljava/util/List;
move-result-object v3
.line 201
invoke-interface {v3}, Ljava/util/List;->size()I
move-result v0
if-nez v0, :cond_e
move v0, v1
.line 243
:goto_d
return v0
.line 209
:cond_e
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v4
:cond_12
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_3c
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;
.line 210
iget-object v0, v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;->d:[B
sget-object v5, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->b:[B
invoke-static {v0, v5}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a([B[B)Z
move-result v0
if-eqz v0, :cond_12
move v0, v2
.line 218
:goto_29
if-nez v0, :cond_2d
move v0, v1
.line 222
goto :goto_d
.line 225
:cond_2d
new-array v0, v2, [Z
aput-boolean v1, v0, v1
.line 226
new-instance v2, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$2;
invoke-direct {v2, v3, v0, p2}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$2;-><init>(Ljava/util/List;[ZLjava/lang/String;)V
invoke-static {p1, v2}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a(Ljava/lang/String;Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$b;)V
.line 243
aget-boolean v0, v0, v1
goto :goto_d
:cond_3c
move v0, v1
goto :goto_29
.end method
.method static synthetic a(Ljava/lang/String;Ljava/util/List;[BLjava/io/InputStream;)Z
.registers 5
.prologue
.line 15
invoke-static {p0, p1, p2, p3}, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->b(Ljava/lang/String;Ljava/util/List;[BLjava/io/InputStream;)Z
move-result v0
return v0
.end method
.method private static a([B[B)Z
.registers 6
.prologue
const/4 v1, 0x0
.line 137
if-eqz p0, :cond_7
array-length v0, p0
array-length v2, p1
if-ge v0, v2, :cond_8
.line 144
:cond_7
:goto_7
return v1
:cond_8
move v0, v1
.line 140
:goto_9
array-length v2, p1
if-ge v0, v2, :cond_15
.line 141
aget-byte v2, p0, v0
aget-byte v3, p1, v0
if-ne v2, v3, :cond_7
.line 140
add-int/lit8 v0, v0, 0x1
goto :goto_9
.line 144
:cond_15
const/4 v1, 0x1
goto :goto_7
.end method
.method private static a(Ljava/io/InputStream;I)[B
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 51
if-gtz p1, :cond_6
.line 52
const/4 v0, 0x0
new-array v0, v0, [B
.line 59
:cond_5
return-object v0
.line 55
:cond_6
new-array v0, p1, [B
.line 56
invoke-virtual {p0, v0}, Ljava/io/InputStream;->read([B)I
move-result v1
const/4 v2, 0x1
if-ge v1, v2, :cond_5
.line 57
new-instance v0, Ljava/io/IOException;
invoke-direct {v0}, Ljava/io/IOException;-><init>()V
throw v0
.end method
.method private static b(I)Z
.registers 2
.prologue
.line 112
const v0, 0xffe1
if-ne p0, v0, :cond_7
const/4 v0, 0x1
:goto_6
return v0
:cond_7
const/4 v0, 0x0
goto :goto_6
.end method
.method private static b(Ljava/lang/String;Ljava/util/List;[BLjava/io/InputStream;)Z
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/List",
"<",
"Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;",
">;[B",
"Ljava/io/InputStream;",
")Z"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 150
const/4 v3, 0x0
.line 157
:try_start_2
new-instance v2, Ljava/io/FileOutputStream;
invoke-direct {v2, p0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
:try_end_7
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_7} :catch_64
.catchall {:try_start_2 .. :try_end_7} :catchall_61
.line 158
:try_start_7
sget-object v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils;->a:[B
invoke-virtual {v2, v0}, Ljava/io/FileOutputStream;->write([B)V
.line 159
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_10
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_3e
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;
.line 160
iget-object v4, v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;->b:[B
invoke-virtual {v2, v4}, Ljava/io/FileOutputStream;->write([B)V
.line 161
invoke-virtual {v2}, Ljava/io/FileOutputStream;->flush()V
.line 162
iget-object v4, v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;->c:[B
invoke-virtual {v2, v4}, Ljava/io/FileOutputStream;->write([B)V
.line 163
invoke-virtual {v2}, Ljava/io/FileOutputStream;->flush()V
.line 164
iget-object v0, v0, Lcom/dianxinos/optimizer/module/space/utils/ExifUtils$a;->d:[B
invoke-virtual {v2, v0}, Ljava/io/FileOutputStream;->write([B)V
.line 165
invoke-virtual {v2}, Ljava/io/FileOutputStream;->flush()V
:try_end_34
.catch Ljava/io/IOException; {:try_start_7 .. :try_end_34} :catch_35
.catchall {:try_start_7 .. :try_end_34} :catchall_54
goto :goto_10
.line 177
:catch_35
move-exception v0
.line 178
:goto_36
:try_start_36
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
:try_end_39
.catchall {:try_start_36 .. :try_end_39} :catchall_54
.line 184
invoke-static {v2}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
move v0, v1
.line 186
:goto_3d
return v0
.line 168
:cond_3e
:try_start_3e
invoke-virtual {v2}, Ljava/io/FileOutputStream;->flush()V
.line 169
invoke-virtual {v2, p2}, Ljava/io/FileOutputStream;->write([B)V
.line 170
const/16 v0, 0x400
new-array v0, v0, [B
.line 172
:goto_48
invoke-virtual {p3, v0}, Ljava/io/InputStream;->read([B)I
move-result v3
const/4 v4, -0x1
if-eq v3, v4, :cond_59
.line 173
const/4 v4, 0x0
invoke-virtual {v2, v0, v4, v3}, Ljava/io/FileOutputStream;->write([BII)V
:try_end_53
.catch Ljava/io/IOException; {:try_start_3e .. :try_end_53} :catch_35
.catchall {:try_start_3e .. :try_end_53} :catchall_54
goto :goto_48
.line 184
:catchall_54
move-exception v0
:goto_55
invoke-static {v2}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
throw v0
.line 175
:cond_59
:try_start_59
invoke-virtual {v2}, Ljava/io/FileOutputStream;->flush()V
:try_end_5c
.catch Ljava/io/IOException; {:try_start_59 .. :try_end_5c} :catch_35
.catchall {:try_start_59 .. :try_end_5c} :catchall_54
.line 176
const/4 v0, 0x1
.line 184
invoke-static {v2}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
goto :goto_3d
:catchall_61
move-exception v0
move-object v2, v3
goto :goto_55
.line 177
:catch_64
move-exception v0
move-object v2, v3
goto :goto_36
.end method