av.smali
.class public final Lcom/imo/android/imoim/util/av;
.super Landroid/database/sqlite/SQLiteOpenHelper;
.source "SourceFile"
# static fields
.field static final a:[Ljava/lang/String;
.field private static b:Lcom/imo/android/imoim/util/av;
# direct methods
.method static constructor <clinit>()V
.registers 49
const-string v0, "friends"
const-string v1, "phone_numbers"
const-string v2, "chats_new"
const-string v3, "calls_only"
const-string v4, "video_messages"
const-string v5, "messages"
const-string v6, "cached_uploads"
const-string v7, "stories"
const-string v8, "blist"
const-string v9, "call_timestamps"
const-string v10, "friend_settings"
const-string v11, "album"
const-string v12, "file_transfer"
const-string v13, "channel"
const-string v14, "post"
const-string v15, "my_files"
const-string v16, "account_type"
const-string v17, "big_group"
const-string v18, "big_group_message"
const-string v19, "hd_video"
const-string v20, "forum"
const-string v21, "deeplink_push"
const-string v22, "relationship"
const-string v23, "relationship_message"
const-string v24, "bubble_info"
const-string v25, "bg_preference"
const-string v26, "user_stay_stat"
const-string v27, "story_send_draft"
const-string v28, "imo_phonebook"
const-string v29, "call_out_history"
const-string v30, "nearby_post_info"
const-string v31, "nearby_topic"
const-string v32, "nearby_post_not_interested"
const-string v33, "call_intercept_record"
const-string v34, "channel_salat"
const-string v35, "stories_inter"
const-string v36, "hd_video2"
const-string v37, "channel_profile_page"
const-string v38, "stickers_pack"
const-string v39, "sticker"
const-string v40, "favorite_expression"
const-string v41, "community"
const-string v42, "community_recently"
const-string v43, "community_notice"
const-string v44, "channel_post_cache"
const-string v45, "channel_post_detail"
const-string v46, "imo_live"
const-string v47, "channel_cert_info"
const-string v48, "friend_ringback"
.line 16
filled-new-array/range {v0 .. v48}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/imo/android/imoim/util/av;->a:[Ljava/lang/String;
return-void
.end method
.method private constructor <init>()V
.registers 4
.line 47
invoke-static {}, Lcom/imo/android/imoim/IMO;->a()Lcom/imo/android/imoim/IMO;
move-result-object v0
const/4 v1, 0x0
const/16 v2, 0xb6
invoke-direct {p0, v0, v1, v1, v2}, Landroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
return-void
.end method
.method public static declared-synchronized a()Lcom/imo/android/imoim/util/av;
.registers 2
const-class v0, Lcom/imo/android/imoim/util/av;
monitor-enter v0
.line 40
:try_start_3
sget-object v1, Lcom/imo/android/imoim/util/av;->b:Lcom/imo/android/imoim/util/av;
if-nez v1, :cond_e
.line 41
new-instance v1, Lcom/imo/android/imoim/util/av;
invoke-direct {v1}, Lcom/imo/android/imoim/util/av;-><init>()V
sput-object v1, Lcom/imo/android/imoim/util/av;->b:Lcom/imo/android/imoim/util/av;
.line 43
:cond_e
sget-object v1, Lcom/imo/android/imoim/util/av;->b:Lcom/imo/android/imoim/util/av;
:try_end_10
.catchall {:try_start_3 .. :try_end_10} :catchall_12
monitor-exit v0
return-object v1
:catchall_12
move-exception v1
monitor-exit v0
throw v1
.end method
.method private static a(Lcom/imo/android/imoim/util/aq;Ljava/lang/String;Ljava/lang/StringBuilder;)Z
.registers 6
.line 104
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "SELECT * FROM "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, " LIMIT 1"
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const/4 v0, 0x0
invoke-interface {p0, p1, v0}, Lcom/imo/android/imoim/util/aq;->a(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
move-result-object p0
const/4 p1, 0x0
if-nez p0, :cond_1c
return p1
.line 109
:cond_1c
invoke-interface {p0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
move-result-object v0
if-eqz v0, :cond_48
.line 110
array-length v1, v0
if-nez v1, :cond_26
goto :goto_48
.line 115
:cond_26
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->setLength(I)V
.line 116
:goto_29
array-length v1, v0
const/4 v2, 0x1
if-ge p1, v1, :cond_44
.line 117
array-length v1, v0
sub-int/2addr v1, v2
if-ne p1, v1, :cond_37
.line 118
aget-object p1, v0, p1
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_44
.line 121
:cond_37
aget-object v1, v0, p1
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ","
invoke-virtual {p2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 p1, p1, 0x1
goto :goto_29
.line 124
:cond_44
:goto_44
invoke-static {p0}, Lcom/imo/android/imoim/util/ao;->b(Landroid/database/Cursor;)V
return v2
.line 111
:cond_48
:goto_48
invoke-static {p0}, Lcom/imo/android/imoim/util/ao;->b(Landroid/database/Cursor;)V
return p1
.end method
# virtual methods
.method public final onCreate(Landroid/database/sqlite/SQLiteDatabase;)V
.registers 2
.line 52
invoke-static {p1}, Lcom/imo/android/imoim/util/au;->a(Landroid/database/sqlite/SQLiteDatabase;)V
return-void
.end method
.method public final onDowngrade(Landroid/database/sqlite/SQLiteDatabase;II)V
.registers 4
return-void
.end method
.method public final onOpen(Landroid/database/sqlite/SQLiteDatabase;)V
.registers 18
move-object/from16 v1, p1
const-string v2, " exception: "
const-string v3, "DbHelperMem"
.line 1023
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v0
const/4 v4, 0x1
.line 1041
iput-boolean v4, v0, Lcom/imo/android/imoim/util/b/a;->b:Z
.line 2023
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v0
const-string v5, "init"
.line 58
invoke-virtual {v0, v5}, Lcom/imo/android/imoim/util/b/a;->a(Ljava/lang/String;)V
.line 60
invoke-static {}, Lcom/imo/android/imoim/util/at;->e()Lcom/imo/android/imoim/util/aq;
move-result-object v6
.line 62
new-instance v0, Ljava/lang/StringBuilder;
const-string v7, "ATTACH DATABASE \'"
invoke-direct {v0, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {}, Lcom/imo/android/imoim/IMO;->a()Lcom/imo/android/imoim/IMO;
move-result-object v7
const-string v8, "imofriends.db"
invoke-virtual {v7, v8}, Lcom/imo/android/imoim/IMO;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
move-result-object v7
invoke-virtual {v7}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object v7
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v7, "\' AS tempDb"
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
.line 64
new-instance v7, Ljava/lang/StringBuilder;
const/16 v0, 0x100
invoke-direct {v7, v0}, Ljava/lang/StringBuilder;-><init>(I)V
.line 65
sget-object v8, Lcom/imo/android/imoim/util/av;->a:[Ljava/lang/String;
array-length v9, v8
const/4 v11, 0x0
:goto_49
if-ge v11, v9, :cond_153
aget-object v12, v8, v11
.line 3023
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v0
.line 66
invoke-virtual {v0, v12}, Lcom/imo/android/imoim/util/b/a;->a(Ljava/lang/String;)V
.line 68
invoke-static {v6, v12, v7}, Lcom/imo/android/imoim/util/av;->a(Lcom/imo/android/imoim/util/aq;Ljava/lang/String;Ljava/lang/StringBuilder;)Z
move-result v0
const/4 v13, 0x0
if-nez v0, :cond_66
.line 4023
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v0
const-string v14, "columns is empty"
.line 69
invoke-virtual {v0, v12, v14, v13}, Lcom/imo/android/imoim/util/b/a;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
goto/16 :goto_145
.line 73
:cond_66
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 77
:try_start_6a
invoke-virtual/range {p1 .. p1}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
.line 78
new-instance v14, Ljava/lang/StringBuilder;
const-string v15, "INSERT INTO "
invoke-direct {v14, v15}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v14, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v15, " ("
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v15, ") SELECT "
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, " FROM tempDb."
invoke-virtual {v14, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
.line 5023
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v0
.line 5070
invoke-virtual {v0}, Lcom/imo/android/imoim/util/b/a;->a()Z
move-result v14
if-eqz v14, :cond_a5
.line 5072
iget v14, v0, Lcom/imo/android/imoim/util/b/a;->d:I
add-int/2addr v14, v4
iput v14, v0, Lcom/imo/android/imoim/util/b/a;->d:I
:try_end_a5
.catch Ljava/lang/Exception; {:try_start_6a .. :try_end_a5} :catch_b9
.catchall {:try_start_6a .. :try_end_a5} :catchall_b6
.line 82
:cond_a5
:try_start_a5
invoke-virtual/range {p1 .. p1}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
:try_end_a8
.catch Ljava/lang/Exception; {:try_start_a5 .. :try_end_a8} :catch_b3
.catchall {:try_start_a5 .. :try_end_a8} :catchall_b6
.line 88
invoke-virtual/range {p1 .. p1}, Landroid/database/sqlite/SQLiteDatabase;->inTransaction()Z
move-result v0
if-eqz v0, :cond_b1
.line 89
invoke-virtual/range {p1 .. p1}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:cond_b1
const/4 v14, 0x1
goto :goto_ea
:catch_b3
move-exception v0
const/4 v14, 0x1
goto :goto_bb
:catchall_b6
move-exception v0
goto/16 :goto_149
:catch_b9
move-exception v0
const/4 v14, 0x0
.line 84
:goto_bb
:try_start_bb
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v15
.line 6023
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v10
.line 85
invoke-static {v0}, Landroid/util/Log;->getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v10, v12, v15, v0}, Lcom/imo/android/imoim/util/b/a;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.line 86
new-instance v0, Ljava/lang/StringBuilder;
const-string v10, "(opt enabled) failed to copy table "
invoke-direct {v0, v10}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 6079
invoke-static {v3, v0, v4}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
:try_end_e1
.catchall {:try_start_bb .. :try_end_e1} :catchall_b6
.line 88
invoke-virtual/range {p1 .. p1}, Landroid/database/sqlite/SQLiteDatabase;->inTransaction()Z
move-result v0
if-eqz v0, :cond_ea
.line 89
invoke-virtual/range {p1 .. p1}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
.line 7023
:cond_ea
:goto_ea
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v0
.line 93
invoke-virtual {v0, v12}, Lcom/imo/android/imoim/util/b/a;->b(Ljava/lang/String;)V
if-nez v14, :cond_145
.line 8023
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v0
.line 7130
invoke-virtual {v0, v12}, Lcom/imo/android/imoim/util/b/a;->a(Ljava/lang/String;)V
.line 7132
invoke-static {v12}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v10, "SELECT * FROM "
invoke-virtual {v10, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-interface {v6, v0, v13}, Lcom/imo/android/imoim/util/aq;->a(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
move-result-object v0
.line 7135
:try_start_108
invoke-static {v0, v1, v12}, Lcom/imo/android/imoim/util/au;->a(Landroid/database/Cursor;Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)V
:try_end_10b
.catch Ljava/lang/Exception; {:try_start_108 .. :try_end_10b} :catch_10c
goto :goto_13e
:catch_10c
move-exception v0
move-object v10, v0
.line 7137
invoke-virtual {v10}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v0
.line 9023
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v13
.line 7138
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v14, "old_move:"
invoke-virtual {v14, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-static {v10}, Landroid/util/Log;->getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String;
move-result-object v14
invoke-virtual {v13, v12, v0, v14}, Lcom/imo/android/imoim/util/b/a;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.line 7141
new-instance v0, Ljava/lang/StringBuilder;
const-string v13, "failed to copy table "
invoke-direct {v0, v13}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 9079
invoke-static {v3, v0, v4}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
.line 10023
:goto_13e
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v0
.line 7144
invoke-virtual {v0, v12}, Lcom/imo/android/imoim/util/b/a;->b(Ljava/lang/String;)V
:cond_145
:goto_145
add-int/lit8 v11, v11, 0x1
goto/16 :goto_49
.line 88
:goto_149
invoke-virtual/range {p1 .. p1}, Landroid/database/sqlite/SQLiteDatabase;->inTransaction()Z
move-result v2
if-eqz v2, :cond_152
.line 89
invoke-virtual/range {p1 .. p1}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:cond_152
throw v0
:cond_153
const-string v0, "DETACH tempDb"
.line 99
invoke-virtual {v1, v0}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
.line 11023
invoke-static {}, Lcom/imo/android/imoim/util/b/a$a;->a()Lcom/imo/android/imoim/util/b/a;
move-result-object v0
.line 100
invoke-virtual {v0, v5}, Lcom/imo/android/imoim/util/b/a;->b(Ljava/lang/String;)V
return-void
.end method
.method public final onUpgrade(Landroid/database/sqlite/SQLiteDatabase;II)V
.registers 5
.line 150
new-instance p1, Ljava/lang/StringBuilder;
const-string v0, "Upgrading database from version "
invoke-direct {p1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p2, " to "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string p2, "DbHelperMem"
.line 11075
invoke-static {p2, p1}, Lcom/imo/android/imoim/util/bt;->e(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method