afr.smali
.class public Ldxoptimizer/afr;
.super Ljava/lang/Object;
.source "SQLiteDbMgr.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Ldxoptimizer/afr$a;
}
.end annotation
# static fields
.field private static volatile b:Ldxoptimizer/afr;
# instance fields
.field private a:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap",
"<",
"Ljava/lang/Class",
"<+",
"Ldxoptimizer/afq;",
">;",
"Ldxoptimizer/afr$a;",
">;"
}
.end annotation
.end field
# direct methods
.method private constructor <init>()V
.registers 2
.prologue
.line 31
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 26
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Ldxoptimizer/afr;->a:Ljava/util/HashMap;
.line 32
return-void
.end method
.method private a(Ljava/lang/Class;)Landroid/database/sqlite/SQLiteDatabase;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<+",
"Ldxoptimizer/afq;",
">;)",
"Landroid/database/sqlite/SQLiteDatabase;"
}
.end annotation
.prologue
.line 48
const-class v2, Ldxoptimizer/afr;
monitor-enter v2
.line 49
:try_start_3
iget-object v0, p0, Ldxoptimizer/afr;->a:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/afr$a;
:try_end_b
.catchall {:try_start_3 .. :try_end_b} :catchall_4d
.line 50
if-nez v0, :cond_3a
.line 53
:try_start_d
invoke-static {}, Ldxoptimizer/cct;->a()Landroid/content/Context;
move-result-object v3
.line 54
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/Class;
invoke-virtual {p1, v0}, Ljava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v0
.line 55
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Constructor;->setAccessible(Z)V
.line 56
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-virtual {v0, v1}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/afq;
.line 57
new-instance v1, Ldxoptimizer/afr$a;
const/4 v4, 0x0
invoke-direct {v1, v4}, Ldxoptimizer/afr$a;-><init>(Ldxoptimizer/afr$1;)V
.line 58
invoke-interface {v0, v3}, Ldxoptimizer/afq;->a(Landroid/content/Context;)Landroid/database/sqlite/SQLiteDatabase;
move-result-object v0
iput-object v0, v1, Ldxoptimizer/afr$a;->a:Landroid/database/sqlite/SQLiteDatabase;
.line 59
const/4 v0, 0x0
iput v0, v1, Ldxoptimizer/afr$a;->b:I
.line 60
iget-object v0, p0, Ldxoptimizer/afr;->a:Ljava/util/HashMap;
invoke-virtual {v0, p1, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_39
.catch Ljava/lang/Exception; {:try_start_d .. :try_end_39} :catch_44
.catchall {:try_start_d .. :try_end_39} :catchall_4d
move-object v0, v1
.line 65
:cond_3a
:try_start_3a
iget v1, v0, Ldxoptimizer/afr$a;->b:I
add-int/lit8 v1, v1, 0x1
iput v1, v0, Ldxoptimizer/afr$a;->b:I
.line 66
iget-object v0, v0, Ldxoptimizer/afr$a;->a:Landroid/database/sqlite/SQLiteDatabase;
.line 68
monitor-exit v2
.line 69
return-object v0
.line 61
:catch_44
move-exception v0
.line 62
new-instance v1, Ljava/lang/RuntimeException;
const-string v3, "failed to create SQLiteOpenHelper instance"
invoke-direct {v1, v3, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.line 68
:catchall_4d
move-exception v0
monitor-exit v2
:try_end_4f
.catchall {:try_start_3a .. :try_end_4f} :catchall_4d
throw v0
.end method
.method private static a()Ldxoptimizer/afr;
.registers 2
.prologue
.line 35
sget-object v0, Ldxoptimizer/afr;->b:Ldxoptimizer/afr;
if-nez v0, :cond_13
.line 36
const-class v1, Ldxoptimizer/afr;
monitor-enter v1
.line 37
:try_start_7
sget-object v0, Ldxoptimizer/afr;->b:Ldxoptimizer/afr;
if-nez v0, :cond_12
.line 38
new-instance v0, Ldxoptimizer/afr;
invoke-direct {v0}, Ldxoptimizer/afr;-><init>()V
sput-object v0, Ldxoptimizer/afr;->b:Ldxoptimizer/afr;
.line 40
:cond_12
monitor-exit v1
:try_end_13
.catchall {:try_start_7 .. :try_end_13} :catchall_16
.line 42
:cond_13
sget-object v0, Ldxoptimizer/afr;->b:Ldxoptimizer/afr;
return-object v0
.line 40
:catchall_16
move-exception v0
:try_start_17
monitor-exit v1
:try_end_18
.catchall {:try_start_17 .. :try_end_18} :catchall_16
throw v0
.end method
.method public static a(Ljava/lang/String;)V
.registers 2
.prologue
.line 120
invoke-static {}, Ldxoptimizer/afr;->a()Ldxoptimizer/afr;
move-result-object v0
invoke-direct {v0, p0}, Ldxoptimizer/afr;->d(Ljava/lang/String;)V
.line 121
return-void
.end method
.method public static b(Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase;
.registers 2
.prologue
.line 124
invoke-static {}, Ldxoptimizer/afr;->a()Ldxoptimizer/afr;
move-result-object v0
invoke-direct {v0, p0}, Ldxoptimizer/afr;->c(Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase;
move-result-object v0
return-object v0
.end method
.method private b(Ljava/lang/Class;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<+",
"Ldxoptimizer/afq;",
">;)V"
}
.end annotation
.prologue
.line 74
const-class v1, Ldxoptimizer/afr;
monitor-enter v1
.line 75
:try_start_3
iget-object v0, p0, Ldxoptimizer/afr;->a:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/afr$a;
.line 76
if-eqz v0, :cond_28
.line 77
iget v2, v0, Ldxoptimizer/afr$a;->b:I
add-int/lit8 v2, v2, -0x1
iput v2, v0, Ldxoptimizer/afr$a;->b:I
.line 79
iget v2, v0, Ldxoptimizer/afr$a;->b:I
if-nez v2, :cond_28
.line 81
iget-object v2, v0, Ldxoptimizer/afr$a;->a:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v2, :cond_23
.line 82
iget-object v2, v0, Ldxoptimizer/afr$a;->a:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v2}, Landroid/database/sqlite/SQLiteDatabase;->close()V
.line 83
const/4 v2, 0x0
iput-object v2, v0, Ldxoptimizer/afr$a;->a:Landroid/database/sqlite/SQLiteDatabase;
.line 85
:cond_23
iget-object v0, p0, Ldxoptimizer/afr;->a:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 88
:cond_28
monitor-exit v1
.line 89
return-void
.line 88
:catchall_2a
move-exception v0
monitor-exit v1
:try_end_2c
.catchall {:try_start_3 .. :try_end_2c} :catchall_2a
throw v0
.end method
.method private c(Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase;
.registers 6
.prologue
.line 93
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_e
.line 94
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "init sqlite db info error !"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 98
:cond_e
:try_start_e
invoke-static {p1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
:try_end_11
.catch Ljava/lang/Exception; {:try_start_e .. :try_end_11} :catch_17
move-result-object v0
.line 102
invoke-direct {p0, v0}, Ldxoptimizer/afr;->a(Ljava/lang/Class;)Landroid/database/sqlite/SQLiteDatabase;
move-result-object v0
return-object v0
.line 99
:catch_17
move-exception v0
.line 100
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "instance sqlite class object error. "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method private d(Ljava/lang/String;)V
.registers 6
.prologue
.line 107
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_e
.line 108
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "init sqlite db info error !"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 112
:cond_e
:try_start_e
invoke-static {p1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
:try_end_11
.catch Ljava/lang/Exception; {:try_start_e .. :try_end_11} :catch_16
move-result-object v0
.line 116
invoke-direct {p0, v0}, Ldxoptimizer/afr;->b(Ljava/lang/Class;)V
.line 117
return-void
.line 113
:catch_16
move-exception v0
.line 114
new-instance v1, Ljava/lang/RuntimeException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "instance sqlite class object error. "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v1
.end method