e.smali
.class public abstract Lcn/jpush/android/u/e;
.super Landroid/database/sqlite/SQLiteOpenHelper;
# instance fields
.field private volatile a:I
.field private volatile b:I
.field private volatile c:Landroid/database/sqlite/SQLiteDatabase;
.field private volatile d:Landroid/database/sqlite/SQLiteDatabase;
.field private final e:Ljava/lang/Object;
.field private final f:Ljava/lang/Object;
.field private final g:Landroid/content/Context;
.field private final h:Ljava/lang/String;
.field private final i:I
.field private final j:Landroid/database/sqlite/SQLiteDatabase$CursorFactory;
# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
.registers 6
const/4 v0, 0x0
invoke-direct {p0, p1, p2, p3, p4}, Landroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
iput v0, p0, Lcn/jpush/android/u/e;->a:I
iput v0, p0, Lcn/jpush/android/u/e;->b:I
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcn/jpush/android/u/e;->e:Ljava/lang/Object;
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcn/jpush/android/u/e;->f:Ljava/lang/Object;
iput-object p1, p0, Lcn/jpush/android/u/e;->g:Landroid/content/Context;
iput-object p2, p0, Lcn/jpush/android/u/e;->h:Ljava/lang/String;
iput p4, p0, Lcn/jpush/android/u/e;->i:I
iput-object p3, p0, Lcn/jpush/android/u/e;->j:Landroid/database/sqlite/SQLiteDatabase$CursorFactory;
return-void
.end method
# virtual methods
.method public a(Z)Z
.registers 5
const/4 v0, 0x1
if-eqz p1, :cond_17
:try_start_3
iget-object v1, p0, Lcn/jpush/android/u/e;->e:Ljava/lang/Object;
monitor-enter v1
:try_end_6
.catch Ljava/lang/Exception; {:try_start_3 .. :try_end_6} :catch_14
:try_start_6
invoke-virtual {p0}, Lcn/jpush/android/u/e;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
iget v2, p0, Lcn/jpush/android/u/e;->b:I
add-int/lit8 v2, v2, 0x1
iput v2, p0, Lcn/jpush/android/u/e;->b:I
monitor-exit v1
:goto_10
return v0
:catchall_11
move-exception v0
monitor-exit v1
:try_end_13
.catchall {:try_start_6 .. :try_end_13} :catchall_11
:try_start_13
throw v0
:catch_14
move-exception v0
const/4 v0, 0x0
goto :goto_10
:cond_17
iget-object v1, p0, Lcn/jpush/android/u/e;->f:Ljava/lang/Object;
monitor-enter v1
:try_end_1a
.catch Ljava/lang/Exception; {:try_start_13 .. :try_end_1a} :catch_14
:try_start_1a
invoke-virtual {p0}, Lcn/jpush/android/u/e;->getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;
iget v2, p0, Lcn/jpush/android/u/e;->a:I
add-int/lit8 v2, v2, 0x1
iput v2, p0, Lcn/jpush/android/u/e;->a:I
monitor-exit v1
goto :goto_10
:catchall_25
move-exception v0
monitor-exit v1
:try_end_27
.catchall {:try_start_1a .. :try_end_27} :catchall_25
:try_start_27
throw v0
:try_end_28
.catch Ljava/lang/Exception; {:try_start_27 .. :try_end_28} :catch_14
.end method
.method public b(Z)V
.registers 6
const/4 v1, 0x1
const/4 v0, 0x0
if-eqz p1, :cond_32
iget-object v2, p0, Lcn/jpush/android/u/e;->e:Ljava/lang/Object;
monitor-enter v2
:try_start_7
iget-object v3, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v3, :cond_1b
iget-object v3, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
move-result v3
if-eqz v3, :cond_1b
iget v3, p0, Lcn/jpush/android/u/e;->b:I
add-int/lit8 v3, v3, -0x1
iput v3, p0, Lcn/jpush/android/u/e;->b:I
if-gtz v3, :cond_1c
:cond_1b
move v0, v1
:cond_1c
if-eqz v0, :cond_2d
const/4 v0, 0x0
iput v0, p0, Lcn/jpush/android/u/e;->b:I
iget-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v0, :cond_2a
iget-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:cond_2a
const/4 v0, 0x0
iput-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
:cond_2d
monitor-exit v2
:goto_2e
return-void
:catchall_2f
move-exception v0
monitor-exit v2
:try_end_31
.catchall {:try_start_7 .. :try_end_31} :catchall_2f
throw v0
:cond_32
iget-object v2, p0, Lcn/jpush/android/u/e;->f:Ljava/lang/Object;
monitor-enter v2
:try_start_35
iget-object v3, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v3, :cond_49
iget-object v3, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
move-result v3
if-eqz v3, :cond_49
iget v3, p0, Lcn/jpush/android/u/e;->a:I
add-int/lit8 v3, v3, -0x1
iput v3, p0, Lcn/jpush/android/u/e;->a:I
if-gtz v3, :cond_4a
:cond_49
move v0, v1
:cond_4a
if-eqz v0, :cond_5b
const/4 v0, 0x0
iput v0, p0, Lcn/jpush/android/u/e;->a:I
iget-object v0, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v0, :cond_58
iget-object v0, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:cond_58
const/4 v0, 0x0
iput-object v0, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
:cond_5b
monitor-exit v2
goto :goto_2e
:catchall_5d
move-exception v0
monitor-exit v2
:try_end_5f
.catchall {:try_start_35 .. :try_end_5f} :catchall_5d
throw v0
.end method
.method public close()V
.registers 1
.annotation runtime Ljava/lang/Deprecated;
.end annotation
return-void
.end method
.method public getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;
.registers 6
iget-object v0, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v0, :cond_c
iget-object v0, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
move-result v0
if-nez v0, :cond_7e
:cond_c
iget-object v1, p0, Lcn/jpush/android/u/e;->f:Ljava/lang/Object;
monitor-enter v1
:try_start_f
iget-object v0, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v0, :cond_1b
iget-object v0, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
:try_end_18
.catchall {:try_start_f .. :try_end_18} :catchall_72
move-result v0
if-nez v0, :cond_7d
:cond_1b
:try_start_1b
invoke-virtual {p0}, Lcn/jpush/android/u/e;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
:try_end_1e
.catch Landroid/database/sqlite/SQLiteException; {:try_start_1b .. :try_end_1e} :catch_81
.catchall {:try_start_1b .. :try_end_1e} :catchall_72
:goto_1e
:try_start_1e
iget-object v0, p0, Lcn/jpush/android/u/e;->g:Landroid/content/Context;
iget-object v2, p0, Lcn/jpush/android/u/e;->h:Ljava/lang/String;
invoke-virtual {v0, v2}, Landroid/content/Context;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-virtual {v0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
iget-object v2, p0, Lcn/jpush/android/u/e;->j:Landroid/database/sqlite/SQLiteDatabase$CursorFactory;
const/4 v3, 0x1
invoke-static {v0, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
move-result-object v2
iput-object v2, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
iget-object v2, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v2}, Landroid/database/sqlite/SQLiteDatabase;->getVersion()I
move-result v2
iget v3, p0, Lcn/jpush/android/u/e;->i:I
if-eq v2, v3, :cond_75
new-instance v2, Landroid/database/sqlite/SQLiteException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Can\'t upgrade read-only database from version "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
iget-object v4, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->getVersion()I
move-result v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " to "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
iget v4, p0, Lcn/jpush/android/u/e;->i:I
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, ": "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Landroid/database/sqlite/SQLiteException;-><init>(Ljava/lang/String;)V
throw v2
:catchall_72
move-exception v0
monitor-exit v1
:try_end_74
.catchall {:try_start_1e .. :try_end_74} :catchall_72
throw v0
:cond_75
const/4 v0, 0x0
:try_start_76
iput v0, p0, Lcn/jpush/android/u/e;->a:I
iget-object v0, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {p0, v0}, Lcn/jpush/android/u/e;->onOpen(Landroid/database/sqlite/SQLiteDatabase;)V
:cond_7d
monitor-exit v1
:try_end_7e
.catchall {:try_start_76 .. :try_end_7e} :catchall_72
:cond_7e
iget-object v0, p0, Lcn/jpush/android/u/e;->c:Landroid/database/sqlite/SQLiteDatabase;
return-object v0
:catch_81
move-exception v0
goto :goto_1e
.end method
.method public getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
.registers 4
iget-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v0, :cond_c
iget-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
move-result v0
if-nez v0, :cond_30
:cond_c
iget-object v1, p0, Lcn/jpush/android/u/e;->e:Ljava/lang/Object;
monitor-enter v1
:try_start_f
iget-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
if-eqz v0, :cond_1b
iget-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
move-result v0
if-nez v0, :cond_2f
:cond_1b
const/4 v0, 0x0
iput v0, p0, Lcn/jpush/android/u/e;->b:I
invoke-super {p0}, Landroid/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
move-result-object v0
iput-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0xb
if-lt v0, v2, :cond_2f
iget-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->enableWriteAheadLogging()Z
:cond_2f
monitor-exit v1
:try_end_30
.catchall {:try_start_f .. :try_end_30} :catchall_33
:cond_30
iget-object v0, p0, Lcn/jpush/android/u/e;->d:Landroid/database/sqlite/SQLiteDatabase;
return-object v0
:catchall_33
move-exception v0
:try_start_34
monitor-exit v1
:try_end_35
.catchall {:try_start_34 .. :try_end_35} :catchall_33
throw v0
.end method