a.smali
.class public Lcom/bytedance/sdk/openadsdk/g/a/a;
.super Ljava/lang/Object;
.source "GifCache.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/bytedance/sdk/openadsdk/g/a/a$a;
}
.end annotation
# static fields
.field private static a:Ljava/lang/String;
.field private static volatile e:Lcom/bytedance/sdk/openadsdk/g/a/a;
# instance fields
.field private b:Ljava/util/WeakHashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/WeakHashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private final c:Lcom/bytedance/sdk/openadsdk/b/a;
.field private final d:Landroid/util/LruCache;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/LruCache<",
"Ljava/lang/String;",
"Lcom/bytedance/sdk/openadsdk/g/a/a$a;",
">;"
}
.end annotation
.end field
# direct methods
.method private constructor <init>()V
.registers 3
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/util/WeakHashMap;
invoke-direct {v0}, Ljava/util/WeakHashMap;-><init>()V
iput-object v0, p0, Lcom/bytedance/sdk/openadsdk/g/a/a;->b:Ljava/util/WeakHashMap;
.line 3
new-instance v0, Lcom/bytedance/sdk/openadsdk/g/a/a$1;
const/high16 v1, 0x500000
invoke-direct {v0, p0, v1}, Lcom/bytedance/sdk/openadsdk/g/a/a$1;-><init>(Lcom/bytedance/sdk/openadsdk/g/a/a;I)V
iput-object v0, p0, Lcom/bytedance/sdk/openadsdk/g/a/a;->d:Landroid/util/LruCache;
.line 4
new-instance v0, Lcom/bytedance/sdk/openadsdk/b/d;
invoke-direct {v0}, Lcom/bytedance/sdk/openadsdk/b/d;-><init>()V
iput-object v0, p0, Lcom/bytedance/sdk/openadsdk/g/a/a;->c:Lcom/bytedance/sdk/openadsdk/b/a;
return-void
.end method
.method public static a()Lcom/bytedance/sdk/openadsdk/g/a/a;
.registers 2
.line 1
sget-object v0, Lcom/bytedance/sdk/openadsdk/g/a/a;->e:Lcom/bytedance/sdk/openadsdk/g/a/a;
if-nez v0, :cond_17
.line 2
const-class v0, Lcom/bytedance/sdk/openadsdk/g/a/a;
monitor-enter v0
.line 3
:try_start_7
sget-object v1, Lcom/bytedance/sdk/openadsdk/g/a/a;->e:Lcom/bytedance/sdk/openadsdk/g/a/a;
if-nez v1, :cond_12
.line 4
new-instance v1, Lcom/bytedance/sdk/openadsdk/g/a/a;
invoke-direct {v1}, Lcom/bytedance/sdk/openadsdk/g/a/a;-><init>()V
sput-object v1, Lcom/bytedance/sdk/openadsdk/g/a/a;->e:Lcom/bytedance/sdk/openadsdk/g/a/a;
.line 5
:cond_12
monitor-exit v0
goto :goto_17
:catchall_14
move-exception v1
monitor-exit v0
:try_end_16
.catchall {:try_start_7 .. :try_end_16} :catchall_14
throw v1
.line 6
:cond_17
:goto_17
sget-object v0, Lcom/bytedance/sdk/openadsdk/g/a/a;->e:Lcom/bytedance/sdk/openadsdk/g/a/a;
return-object v0
.end method
.method private a([B)Z
.registers 6
const/4 v0, 0x1
const/4 v1, 0x0
if-eqz p1, :cond_1c
.line 9
array-length v2, p1
const/4 v3, 0x3
if-lt v2, v3, :cond_1c
aget-byte v2, p1, v1
const/16 v3, 0x47
if-ne v2, v3, :cond_1c
aget-byte v2, p1, v0
const/16 v3, 0x49
if-ne v2, v3, :cond_1c
const/4 v2, 0x2
aget-byte p1, p1, v2
const/16 v2, 0x46
if-ne p1, v2, :cond_1c
goto :goto_1d
:cond_1c
const/4 v0, 0x0
:goto_1d
return v0
.end method
.method private static b()Ljava/lang/String;
.registers 3
.line 49
sget-object v0, Lcom/bytedance/sdk/openadsdk/g/a/a;->a:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_20
.line 50
new-instance v0, Ljava/io/File;
invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/o;->a()Landroid/content/Context;
move-result-object v1
invoke-static {v1}, Lcom/bytedance/sdk/adnet/a;->b(Landroid/content/Context;)Ljava/lang/String;
move-result-object v1
const-string v2, "diskGif"
invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 51
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
.line 52
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/bytedance/sdk/openadsdk/g/a/a;->a:Ljava/lang/String;
.line 53
:cond_20
sget-object v0, Lcom/bytedance/sdk/openadsdk/g/a/a;->a:Ljava/lang/String;
return-object v0
.end method
# virtual methods
.method public declared-synchronized a(Ljava/lang/String;)Ljava/io/File;
.registers 8
monitor-enter p0
.line 10
:try_start_1
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
:try_end_5
.catchall {:try_start_1 .. :try_end_5} :catchall_27
const/4 v1, 0x0
if-eqz v0, :cond_a
.line 11
monitor-exit p0
return-object v1
.line 12
:cond_a
:try_start_a
new-instance v0, Ljava/io/File;
invoke-static {}, Lcom/bytedance/sdk/openadsdk/g/a/a;->b()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2, p1}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 13
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result p1
if-eqz p1, :cond_25
invoke-virtual {v0}, Ljava/io/File;->length()J
move-result-wide v2
:try_end_1d
.catchall {:try_start_a .. :try_end_1d} :catchall_27
const-wide/16 v4, 0x0
cmp-long p1, v2, v4
if-lez p1, :cond_25
.line 14
monitor-exit p0
return-object v0
.line 15
:cond_25
monitor-exit p0
return-object v1
:catchall_27
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized a(Ljava/lang/String;IILandroid/widget/ImageView$ScaleType;)Ljava/lang/String;
.registers 5
monitor-enter p0
.line 16
:try_start_1
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result p2
:try_end_5
.catchall {:try_start_1 .. :try_end_5} :catchall_35
if-eqz p2, :cond_a
const/4 p1, 0x0
.line 17
monitor-exit p0
return-object p1
:cond_a
:try_start_a
const-string p2, "https"
.line 18
invoke-virtual {p1, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result p2
if-eqz p2, :cond_1a
const-string p2, "https"
const-string p3, "http"
.line 19
invoke-virtual {p1, p2, p3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 20
:cond_1a
iget-object p2, p0, Lcom/bytedance/sdk/openadsdk/g/a/a;->b:Ljava/util/WeakHashMap;
invoke-virtual {p2, p1}, Ljava/util/WeakHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/lang/String;
.line 21
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result p3
:try_end_26
.catchall {:try_start_a .. :try_end_26} :catchall_35
if-nez p3, :cond_2a
.line 22
monitor-exit p0
return-object p2
.line 23
:cond_2a
:try_start_2a
invoke-static {p1}, Lcom/bytedance/sdk/openadsdk/utils/h;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
.line 24
iget-object p3, p0, Lcom/bytedance/sdk/openadsdk/g/a/a;->b:Ljava/util/WeakHashMap;
invoke-virtual {p3, p1, p2}, Ljava/util/WeakHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_33
.catchall {:try_start_2a .. :try_end_33} :catchall_35
.line 25
monitor-exit p0
return-object p2
:catchall_35
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized a(Ljava/lang/String;[B)V
.registers 3
monitor-enter p0
.line 7
:try_start_1
invoke-virtual {p0, p1, p2}, Lcom/bytedance/sdk/openadsdk/g/a/a;->b(Ljava/lang/String;[B)V
:try_end_4
.catchall {:try_start_1 .. :try_end_4} :catchall_6
.line 8
monitor-exit p0
return-void
:catchall_6
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized b(Ljava/lang/String;)Lcom/bytedance/sdk/openadsdk/g/a/a$a;
.registers 7
monitor-enter p0
.line 27
:try_start_1
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
:try_end_5
.catchall {:try_start_1 .. :try_end_5} :catchall_7e
const/4 v1, 0x0
if-eqz v0, :cond_a
.line 28
monitor-exit p0
return-object v1
.line 29
:cond_a
:try_start_a
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/g/a/a;->d:Landroid/util/LruCache;
invoke-virtual {v0, p1}, Landroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/bytedance/sdk/openadsdk/g/a/a$a;
:try_end_12
.catchall {:try_start_a .. :try_end_12} :catchall_7e
if-eqz v0, :cond_16
.line 30
monitor-exit p0
return-object v0
.line 31
:cond_16
:try_start_16
new-instance v0, Ljava/io/File;
invoke-static {}, Lcom/bytedance/sdk/openadsdk/g/a/a;->b()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2, p1}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 32
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v2
:try_end_23
.catchall {:try_start_16 .. :try_end_23} :catchall_7e
if-eqz v2, :cond_7c
.line 33
:try_start_25
new-instance v2, Ljava/io/FileInputStream;
invoke-direct {v2, v0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_2a
.catch Ljava/lang/Throwable; {:try_start_25 .. :try_end_2a} :catch_69
.catchall {:try_start_25 .. :try_end_2a} :catchall_66
.line 34
:try_start_2a
invoke-virtual {v0}, Ljava/io/File;->length()J
move-result-wide v3
invoke-static {v3, v4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Long;->intValue()I
move-result v0
invoke-static {v0}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v0
.line 35
invoke-virtual {v2}, Ljava/io/FileInputStream;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object v3
invoke-virtual {v3, v0}, Ljava/nio/channels/FileChannel;->read(Ljava/nio/ByteBuffer;)I
.line 36
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v0
:try_end_45
.catch Ljava/lang/Throwable; {:try_start_2a .. :try_end_45} :catch_64
.catchall {:try_start_2a .. :try_end_45} :catchall_75
.line 37
:try_start_45
new-instance v3, Lcom/bytedance/sdk/openadsdk/g/a/a$a;
invoke-direct {v3, v0}, Lcom/bytedance/sdk/openadsdk/g/a/a$a;-><init>([B)V
:try_end_4a
.catch Ljava/lang/Throwable; {:try_start_45 .. :try_end_4a} :catch_4f
.catchall {:try_start_45 .. :try_end_4a} :catchall_75
.line 38
:try_start_4a
invoke-virtual {v2}, Ljava/io/FileInputStream;->close()V
:try_end_4d
.catch Ljava/io/IOException; {:try_start_4a .. :try_end_4d} :catch_4d
.catchall {:try_start_4a .. :try_end_4d} :catchall_7e
.line 39
:catch_4d
monitor-exit p0
return-object v3
:catch_4f
if-eqz v0, :cond_60
.line 40
:try_start_51
new-instance v3, Lcom/bytedance/sdk/openadsdk/g/a/a$a;
invoke-direct {v3, v0}, Lcom/bytedance/sdk/openadsdk/g/a/a$a;-><init>([B)V
.line 41
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/g/a/a;->d:Landroid/util/LruCache;
invoke-virtual {v0, p1, v3}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_5b
.catch Ljava/lang/Throwable; {:try_start_51 .. :try_end_5b} :catch_64
.catchall {:try_start_51 .. :try_end_5b} :catchall_75
.line 42
:try_start_5b
invoke-virtual {v2}, Ljava/io/FileInputStream;->close()V
:try_end_5e
.catch Ljava/io/IOException; {:try_start_5b .. :try_end_5e} :catch_5e
.catchall {:try_start_5b .. :try_end_5e} :catchall_7e
.line 43
:catch_5e
monitor-exit p0
return-object v3
.line 44
:cond_60
:goto_60
:try_start_60
invoke-virtual {v2}, Ljava/io/FileInputStream;->close()V
:try_end_63
.catch Ljava/io/IOException; {:try_start_60 .. :try_end_63} :catch_7c
.catchall {:try_start_60 .. :try_end_63} :catchall_7e
goto :goto_7c
:catch_64
move-exception p1
goto :goto_6b
:catchall_66
move-exception p1
move-object v2, v1
goto :goto_76
:catch_69
move-exception p1
move-object v2, v1
:goto_6b
:try_start_6b
const-string v0, "GifCache"
const-string v3, "gifCache get error "
.line 45
invoke-static {v0, v3, p1}, Lcom/bytedance/sdk/openadsdk/utils/p;->c(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_72
.catchall {:try_start_6b .. :try_end_72} :catchall_75
if-eqz v2, :cond_7c
goto :goto_60
:catchall_75
move-exception p1
:goto_76
if-eqz v2, :cond_7b
.line 46
:try_start_78
invoke-virtual {v2}, Ljava/io/FileInputStream;->close()V
:try_end_7b
.catch Ljava/io/IOException; {:try_start_78 .. :try_end_7b} :catch_7b
.catchall {:try_start_78 .. :try_end_7b} :catchall_7e
.line 47
:catch_7b
:cond_7b
:try_start_7b
throw p1
:try_end_7c
.catchall {:try_start_7b .. :try_end_7c} :catchall_7e
.line 48
:catch_7c
:cond_7c
:goto_7c
monitor-exit p0
return-object v1
:catchall_7e
move-exception p1
monitor-exit p0
goto :goto_82
:goto_81
throw p1
:goto_82
goto :goto_81
.end method
.method public declared-synchronized b(Ljava/lang/String;[B)V
.registers 10
monitor-enter p0
.line 1
:try_start_1
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_aa
if-nez p2, :cond_b
goto/16 :goto_aa
.line 2
:cond_b
invoke-direct {p0, p2}, Lcom/bytedance/sdk/openadsdk/g/a/a;->a([B)Z
move-result v0
:try_end_f
.catchall {:try_start_1 .. :try_end_f} :catchall_ac
if-nez v0, :cond_24
.line 3
:try_start_11
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/g/a/a;->d:Landroid/util/LruCache;
new-instance v1, Lcom/bytedance/sdk/openadsdk/g/a/a$a;
invoke-direct {v1, p2}, Lcom/bytedance/sdk/openadsdk/g/a/a$a;-><init>([B)V
invoke-virtual {v0, p1, v1}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_1b
.catch Ljava/lang/Throwable; {:try_start_11 .. :try_end_1b} :catch_1c
.catchall {:try_start_11 .. :try_end_1b} :catchall_ac
goto :goto_24
:catch_1c
move-exception v0
:try_start_1d
const-string v1, "GifCache"
const-string v2, "gifCache mLruCache.put error "
.line 4
invoke-static {v1, v2, v0}, Lcom/bytedance/sdk/openadsdk/utils/p;->c(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 5
:cond_24
:goto_24
new-instance v0, Ljava/io/File;
invoke-static {}, Lcom/bytedance/sdk/openadsdk/g/a/a;->b()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1, p1}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 6
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result p1
const-wide/16 v1, 0x0
if-eqz p1, :cond_45
invoke-virtual {v0}, Ljava/io/File;->isFile()Z
move-result p1
if-eqz p1, :cond_45
invoke-virtual {v0}, Ljava/io/File;->length()J
move-result-wide v3
:try_end_3f
.catchall {:try_start_1d .. :try_end_3f} :catchall_ac
cmp-long p1, v3, v1
if-lez p1, :cond_45
.line 7
monitor-exit p0
return-void
.line 8
:cond_45
:try_start_45
new-instance p1, Ljava/io/File;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v4, ".tmp"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {p1, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 9
invoke-virtual {p1}, Ljava/io/File;->delete()Z
:try_end_5e
.catchall {:try_start_45 .. :try_end_5e} :catchall_ac
const/4 v3, 0x0
.line 10
:try_start_5f
invoke-virtual {p1}, Ljava/io/File;->createNewFile()Z
.line 11
new-instance v4, Ljava/io/FileOutputStream;
invoke-direct {v4, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_67
.catch Ljava/lang/Throwable; {:try_start_5f .. :try_end_67} :catch_97
.catchall {:try_start_5f .. :try_end_67} :catchall_94
.line 12
:try_start_67
invoke-virtual {v4, p2}, Ljava/io/FileOutputStream;->write([B)V
.line 13
invoke-virtual {v4}, Ljava/io/FileOutputStream;->flush()V
.line 14
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result p2
if-eqz p2, :cond_87
invoke-virtual {p1}, Ljava/io/File;->length()J
move-result-wide v5
cmp-long p2, v5, v1
if-lez p2, :cond_87
.line 15
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result p2
if-eqz p2, :cond_84
.line 16
invoke-virtual {v0}, Ljava/io/File;->delete()Z
.line 17
:cond_84
invoke-virtual {p1, v0}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
.line 18
:cond_87
iget-object p2, p0, Lcom/bytedance/sdk/openadsdk/g/a/a;->c:Lcom/bytedance/sdk/openadsdk/b/a;
invoke-interface {p2, v0}, Lcom/bytedance/sdk/openadsdk/b/a;->a(Ljava/io/File;)V
:try_end_8c
.catch Ljava/lang/Throwable; {:try_start_67 .. :try_end_8c} :catch_92
.catchall {:try_start_67 .. :try_end_8c} :catchall_90
.line 19
:try_start_8c
invoke-virtual {v4}, Ljava/io/FileOutputStream;->close()V
:try_end_8f
.catch Ljava/io/IOException; {:try_start_8c .. :try_end_8f} :catch_a2
.catchall {:try_start_8c .. :try_end_8f} :catchall_ac
goto :goto_a2
:catchall_90
move-exception p1
goto :goto_a4
:catch_92
move-object v3, v4
goto :goto_97
:catchall_94
move-exception p1
move-object v4, v3
goto :goto_a4
.line 20
:catch_97
:goto_97
:try_start_97
invoke-virtual {p1}, Ljava/io/File;->delete()Z
.line 21
invoke-virtual {v0}, Ljava/io/File;->delete()Z
:try_end_9d
.catchall {:try_start_97 .. :try_end_9d} :catchall_94
if-eqz v3, :cond_a2
.line 22
:try_start_9f
invoke-virtual {v3}, Ljava/io/FileOutputStream;->close()V
:try_end_a2
.catch Ljava/io/IOException; {:try_start_9f .. :try_end_a2} :catch_a2
.catchall {:try_start_9f .. :try_end_a2} :catchall_ac
.line 23
:catch_a2
:cond_a2
:goto_a2
monitor-exit p0
return-void
:goto_a4
if-eqz v4, :cond_a9
.line 24
:try_start_a6
invoke-virtual {v4}, Ljava/io/FileOutputStream;->close()V
:try_end_a9
.catch Ljava/io/IOException; {:try_start_a6 .. :try_end_a9} :catch_a9
.catchall {:try_start_a6 .. :try_end_a9} :catchall_ac
.line 25
:catch_a9
:cond_a9
:try_start_a9
throw p1
:try_end_aa
.catchall {:try_start_a9 .. :try_end_aa} :catchall_ac
.line 26
:cond_aa
:goto_aa
monitor-exit p0
return-void
:catchall_ac
move-exception p1
monitor-exit p0
throw p1
.end method