g.smali
3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
.class public Lcom/umeng/analytics/pro/g;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/umeng/analytics/pro/g$a;
}
.end annotation
# static fields
.field private static b:Landroid/database/sqlite/SQLiteOpenHelper;
.field private static d:Landroid/content/Context;
# instance fields
.field private a:Ljava/util/concurrent/atomic/AtomicInteger;
.field private c:Landroid/database/sqlite/SQLiteDatabase;
# direct methods
.method private constructor <init>()V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V
iput-object v0, p0, Lcom/umeng/analytics/pro/g;->a:Ljava/util/concurrent/atomic/AtomicInteger;
return-void
.end method
.method public synthetic constructor <init>(Lcom/umeng/analytics/pro/g$1;)V
.locals 0
invoke-direct {p0}, Lcom/umeng/analytics/pro/g;-><init>()V
return-void
.end method
.method public static a(Landroid/content/Context;)Lcom/umeng/analytics/pro/g;
.locals 1
sget-object v0, Lcom/umeng/analytics/pro/g;->d:Landroid/content/Context;
if-nez v0, :cond_0
if-eqz p0, :cond_0
invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object p0
sput-object p0, Lcom/umeng/analytics/pro/g;->d:Landroid/content/Context;
invoke-static {p0}, Lcom/umeng/analytics/pro/f;->a(Landroid/content/Context;)Lcom/umeng/analytics/pro/f;
move-result-object p0
sput-object p0, Lcom/umeng/analytics/pro/g;->b:Landroid/database/sqlite/SQLiteOpenHelper;
:cond_0
invoke-static {}, Lcom/umeng/analytics/pro/g$a;->a()Lcom/umeng/analytics/pro/g;
move-result-object p0
return-object p0
.end method
# virtual methods
.method public declared-synchronized a()Landroid/database/sqlite/SQLiteDatabase;
.locals 2
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/umeng/analytics/pro/g;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->incrementAndGet()I
move-result v0
const/4 v1, 0x1
if-ne v0, v1, :cond_0
sget-object v0, Lcom/umeng/analytics/pro/g;->b:Landroid/database/sqlite/SQLiteOpenHelper;
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
move-result-object v0
iput-object v0, p0, Lcom/umeng/analytics/pro/g;->c:Landroid/database/sqlite/SQLiteDatabase;
:cond_0
iget-object v0, p0, Lcom/umeng/analytics/pro/g;->c:Landroid/database/sqlite/SQLiteDatabase;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return-object v0
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized b()V
.locals 1
monitor-enter p0
:try_start_0
iget-object v0, p0, Lcom/umeng/analytics/pro/g;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->decrementAndGet()I
move-result v0
if-nez v0, :cond_0
iget-object v0, p0, Lcom/umeng/analytics/pro/g;->c:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:catchall_0
:cond_0
monitor-exit p0
return-void
.end method