SqlitePatcher.smali
.class public Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;
.super Lorg/xml/sax/helpers/DefaultHandler;
.source "SqlitePatcher.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;,
Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;
}
.end annotation
# static fields
.field private static final XML_ATTR_STATEMENT:Ljava/lang/String; = "statement"
.field private static final XML_ATTR_TYPE:Ljava/lang/String; = "type"
.field private static final XML_ATTR_VALUE:Ljava/lang/String; = "value"
.field private static final XML_ATTR_VERSION:Ljava/lang/String; = "version"
.field private static final XML_ATTR_VER_SOURCE:Ljava/lang/String; = "version_source"
.field private static final XML_ATTR_VER_TARGET:Ljava/lang/String; = "version_target"
.field private static final XML_ROW_BLOB:Ljava/lang/String; = "blob"
.field private static final XML_ROW_DOUBLE:Ljava/lang/String; = "double"
.field private static final XML_ROW_LONG:Ljava/lang/String; = "long"
.field private static final XML_ROW_NULL:Ljava/lang/String; = "null"
.field private static final XML_ROW_STRING:Ljava/lang/String; = "string"
.field private static final XML_TAG_APPEND:Ljava/lang/String; = "append"
.field private static final XML_TAG_BODY:Ljava/lang/String; = "body"
.field private static final XML_TAG_DELETE:Ljava/lang/String; = "delete"
.field private static final XML_TAG_DIFF:Ljava/lang/String; = "diff"
.field private static final XML_TAG_HEADER:Ljava/lang/String; = "header"
.field private static final XML_TAG_ROW:Ljava/lang/String; = "row"
.field private static final XML_TAG_SQL:Ljava/lang/String; = "sql"
# instance fields
.field private cmdList:Ljava/util/LinkedList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/LinkedList",
"<",
"Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;",
">;"
}
.end annotation
.end field
.field private curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
.field private curRow:Ljava/util/LinkedList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/LinkedList",
"<",
"Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;",
">;"
}
.end annotation
.end field
.field public diffType:Ljava/lang/String;
.field public versionDiff:Ljava/lang/String;
.field public versionSource:Ljava/lang/String;
.field public versionTarget:Ljava/lang/String;
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 20
invoke-direct {p0}, Lorg/xml/sax/helpers/DefaultHandler;-><init>()V
return-void
.end method
.method private parsePatch(Ljava/lang/String;)Z
.registers 6
.prologue
.line 116
const/4 v1, 0x0
.line 119
:try_start_1
invoke-static {}, Ljavax/xml/parsers/SAXParserFactory;->newInstance()Ljavax/xml/parsers/SAXParserFactory;
move-result-object v0
.line 120
invoke-virtual {v0}, Ljavax/xml/parsers/SAXParserFactory;->newSAXParser()Ljavax/xml/parsers/SAXParser;
move-result-object v0
invoke-virtual {v0}, Ljavax/xml/parsers/SAXParser;->getXMLReader()Lorg/xml/sax/XMLReader;
move-result-object v2
.line 121
invoke-interface {v2, p0}, Lorg/xml/sax/XMLReader;->setContentHandler(Lorg/xml/sax/ContentHandler;)V
.line 123
new-instance v0, Ljava/io/FileInputStream;
invoke-direct {v0, p1}, Ljava/io/FileInputStream;-><init>(Ljava/lang/String;)V
:try_end_15
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_15} :catch_24
.catchall {:try_start_1 .. :try_end_15} :catchall_2e
.line 124
:try_start_15
new-instance v1, Lorg/xml/sax/InputSource;
invoke-direct {v1, v0}, Lorg/xml/sax/InputSource;-><init>(Ljava/io/InputStream;)V
invoke-interface {v2, v1}, Lorg/xml/sax/XMLReader;->parse(Lorg/xml/sax/InputSource;)V
:try_end_1d
.catch Ljava/lang/Exception; {:try_start_15 .. :try_end_1d} :catch_3e
.catchall {:try_start_15 .. :try_end_1d} :catchall_39
.line 132
if-eqz v0, :cond_22
.line 136
:try_start_1f
invoke-virtual {v0}, Ljava/io/FileInputStream;->close()V
:try_end_22
.catch Ljava/lang/Exception; {:try_start_1f .. :try_end_22} :catch_35
.line 141
:cond_22
:goto_22
const/4 v0, 0x1
:cond_23
:goto_23
return v0
.line 126
:catch_24
move-exception v0
.line 128
:goto_25
const/4 v0, 0x0
.line 132
if-eqz v1, :cond_23
.line 136
:try_start_28
invoke-virtual {v1}, Ljava/io/FileInputStream;->close()V
:try_end_2b
.catch Ljava/lang/Exception; {:try_start_28 .. :try_end_2b} :catch_2c
goto :goto_23
.line 138
:catch_2c
move-exception v1
goto :goto_23
.line 132
:catchall_2e
move-exception v0
:goto_2f
if-eqz v1, :cond_34
.line 136
:try_start_31
invoke-virtual {v1}, Ljava/io/FileInputStream;->close()V
:try_end_34
.catch Ljava/lang/Exception; {:try_start_31 .. :try_end_34} :catch_37
.line 138
:cond_34
:goto_34
throw v0
:catch_35
move-exception v0
goto :goto_22
:catch_37
move-exception v1
goto :goto_34
.line 132
:catchall_39
move-exception v1
move-object v3, v1
move-object v1, v0
move-object v0, v3
goto :goto_2f
.line 126
:catch_3e
move-exception v1
move-object v1, v0
goto :goto_25
.end method
.method private patch(Ljava/lang/String;)Z
.registers 14
.prologue
const/4 v0, 0x0
const/4 v3, 0x1
const/4 v2, 0x0
.line 146
.line 149
const/4 v1, 0x0
const/4 v4, 0x0
:try_start_5
invoke-static {p1, v1, v4}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
:try_end_8
.catch Ljava/lang/Exception; {:try_start_5 .. :try_end_8} :catch_1b0
.catchall {:try_start_5 .. :try_end_8} :catchall_1ab
move-result-object v4
.line 151
:try_start_9
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
:try_end_c
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_c} :catch_3f
.catchall {:try_start_9 .. :try_end_c} :catchall_10b
.line 154
:try_start_c
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->cmdList:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->listIterator()Ljava/util/ListIterator;
move-result-object v6
.line 155
:goto_12
invoke-interface {v6}, Ljava/util/ListIterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_165
.line 157
invoke-interface {v6}, Ljava/util/ListIterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
.line 158
iget-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->statement:Ljava/lang/String;
invoke-virtual {v4, v1}, Landroid/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement;
:try_end_23
.catchall {:try_start_c .. :try_end_23} :catchall_3a
move-result-object v7
.line 162
:try_start_24
iget-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->cmdType:Ljava/lang/String;
const-string v5, "sql"
invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_48
.line 164
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->execute()V
:try_end_31
.catchall {:try_start_24 .. :try_end_31} :catchall_e9
.line 217
:cond_31
:try_start_31
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->close()V
:try_end_34
.catch Ljava/lang/Exception; {:try_start_31 .. :try_end_34} :catch_35
.catch Ljava/lang/Error; {:try_start_31 .. :try_end_34} :catch_155
.catchall {:try_start_31 .. :try_end_34} :catchall_3a
goto :goto_12
.line 218
:catch_35
move-exception v0
.line 219
:try_start_36
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_39
.catchall {:try_start_36 .. :try_end_39} :catchall_3a
goto :goto_12
.line 230
:catchall_3a
move-exception v0
.line 231
:try_start_3b
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_3e
.catch Ljava/lang/Exception; {:try_start_3b .. :try_end_3e} :catch_17d
.catch Ljava/lang/Error; {:try_start_3b .. :try_end_3e} :catch_183
.catchall {:try_start_3b .. :try_end_3e} :catchall_10b
.line 236
:goto_3e
:try_start_3e
throw v0
:try_end_3f
.catch Ljava/lang/Exception; {:try_start_3e .. :try_end_3f} :catch_3f
.catchall {:try_start_3e .. :try_end_3f} :catchall_10b
.line 239
:catch_3f
move-exception v0
move-object v0, v4
.line 245
:goto_41
if-eqz v0, :cond_46
.line 248
:try_start_43
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_46
.catch Ljava/lang/Exception; {:try_start_43 .. :try_end_46} :catch_193
.catch Ljava/lang/Error; {:try_start_43 .. :try_end_46} :catch_199
:cond_46
:goto_46
move v0, v2
.line 256
:goto_47
return v0
.line 166
:cond_48
:try_start_48
iget-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->cmdType:Ljava/lang/String;
const-string v5, "delete"
.line 167
invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_5c
iget-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->cmdType:Ljava/lang/String;
const-string v5, "append"
.line 168
invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_129
.line 171
:cond_5c
iget-object v0, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->rowList:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->listIterator()Ljava/util/ListIterator;
move-result-object v8
.line 172
:goto_62
invoke-interface {v8}, Ljava/util/ListIterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_31
.line 175
invoke-interface {v8}, Ljava/util/ListIterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/LinkedList;
.line 176
invoke-virtual {v0}, Ljava/util/LinkedList;->listIterator()Ljava/util/ListIterator;
move-result-object v9
move v5, v3
.line 177
:goto_73
invoke-interface {v9}, Ljava/util/ListIterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_121
.line 179
invoke-interface {v9}, Ljava/util/ListIterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;
.line 180
iget-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->type:Ljava/lang/String;
const-string v10, "long"
invoke-virtual {v1, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_97
.line 182
add-int/lit8 v1, v5, 0x1
iget-object v0, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->value:Ljava/lang/String;
invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v10
invoke-virtual {v7, v5, v10, v11}, Landroid/database/sqlite/SQLiteStatement;->bindLong(IJ)V
move v0, v1
:goto_95
move v5, v0
.line 204
goto :goto_73
.line 184
:cond_97
iget-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->type:Ljava/lang/String;
const-string v10, "double"
invoke-virtual {v1, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_ae
.line 186
add-int/lit8 v1, v5, 0x1
iget-object v0, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->value:Ljava/lang/String;
invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v10
invoke-virtual {v7, v5, v10, v11}, Landroid/database/sqlite/SQLiteStatement;->bindDouble(ID)V
move v0, v1
goto :goto_95
.line 188
:cond_ae
iget-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->type:Ljava/lang/String;
const-string/jumbo v10, "string"
invoke-virtual {v1, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_c2
.line 190
add-int/lit8 v1, v5, 0x1
iget-object v0, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->value:Ljava/lang/String;
invoke-virtual {v7, v5, v0}, Landroid/database/sqlite/SQLiteStatement;->bindString(ILjava/lang/String;)V
move v0, v1
goto :goto_95
.line 192
:cond_c2
iget-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->type:Ljava/lang/String;
const-string v10, "blob"
invoke-virtual {v1, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_d9
.line 194
add-int/lit8 v1, v5, 0x1
iget-object v0, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->value:Ljava/lang/String;
invoke-static {v0}, Lcom/cleanmaster/base/util/compress/Base64;->decode(Ljava/lang/String;)[B
move-result-object v0
invoke-virtual {v7, v5, v0}, Landroid/database/sqlite/SQLiteStatement;->bindBlob(I[B)V
move v0, v1
goto :goto_95
.line 196
:cond_d9
iget-object v0, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->type:Ljava/lang/String;
const-string v1, "null"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_ee
.line 198
add-int/lit8 v0, v5, 0x1
invoke-virtual {v7, v5}, Landroid/database/sqlite/SQLiteStatement;->bindNull(I)V
:try_end_e8
.catchall {:try_start_48 .. :try_end_e8} :catchall_e9
goto :goto_95
.line 216
:catchall_e9
move-exception v0
.line 217
:try_start_ea
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->close()V
:try_end_ed
.catch Ljava/lang/Exception; {:try_start_ea .. :try_end_ed} :catch_15b
.catch Ljava/lang/Error; {:try_start_ea .. :try_end_ed} :catch_160
.catchall {:try_start_ea .. :try_end_ed} :catchall_3a
.line 222
:goto_ed
:try_start_ed
throw v0
:try_end_ee
.catchall {:try_start_ed .. :try_end_ee} :catchall_3a
.line 217
:cond_ee
:try_start_ee
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->close()V
:try_end_f1
.catch Ljava/lang/Exception; {:try_start_ee .. :try_end_f1} :catch_fc
.catch Ljava/lang/Error; {:try_start_ee .. :try_end_f1} :catch_101
.catchall {:try_start_ee .. :try_end_f1} :catchall_3a
.line 231
:goto_f1
:try_start_f1
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_f4
.catch Ljava/lang/Exception; {:try_start_f1 .. :try_end_f4} :catch_106
.catch Ljava/lang/Error; {:try_start_f1 .. :try_end_f4} :catch_112
.catchall {:try_start_f1 .. :try_end_f4} :catchall_10b
.line 245
:goto_f4
if-eqz v4, :cond_f9
.line 248
:try_start_f6
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_f9
.catch Ljava/lang/Exception; {:try_start_f6 .. :try_end_f9} :catch_117
.catch Ljava/lang/Error; {:try_start_f6 .. :try_end_f9} :catch_11c
:cond_f9
:goto_f9
move v0, v2
.line 202
goto/16 :goto_47
.line 218
:catch_fc
move-exception v0
.line 219
:try_start_fd
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_f1
.line 220
:catch_101
move-exception v0
.line 221
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
:try_end_105
.catchall {:try_start_fd .. :try_end_105} :catchall_3a
goto :goto_f1
.line 232
:catch_106
move-exception v0
.line 233
:try_start_107
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_10a
.catch Ljava/lang/Exception; {:try_start_107 .. :try_end_10a} :catch_3f
.catchall {:try_start_107 .. :try_end_10a} :catchall_10b
goto :goto_f4
.line 245
:catchall_10b
move-exception v0
:goto_10c
if-eqz v4, :cond_111
.line 248
:try_start_10e
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_111
.catch Ljava/lang/Exception; {:try_start_10e .. :try_end_111} :catch_19f
.catch Ljava/lang/Error; {:try_start_10e .. :try_end_111} :catch_1a5
.line 253
:cond_111
:goto_111
throw v0
.line 234
:catch_112
move-exception v0
.line 235
:try_start_113
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
:try_end_116
.catch Ljava/lang/Exception; {:try_start_113 .. :try_end_116} :catch_3f
.catchall {:try_start_113 .. :try_end_116} :catchall_10b
goto :goto_f4
.line 249
:catch_117
move-exception v0
.line 250
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_f9
.line 251
:catch_11c
move-exception v0
.line 252
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto :goto_f9
.line 205
:cond_121
:try_start_121
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->execute()V
.line 206
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->clearBindings()V
:try_end_127
.catchall {:try_start_121 .. :try_end_127} :catchall_e9
goto/16 :goto_62
.line 217
:cond_129
:try_start_129
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->close()V
:try_end_12c
.catch Ljava/lang/Exception; {:try_start_129 .. :try_end_12c} :catch_137
.catch Ljava/lang/Error; {:try_start_129 .. :try_end_12c} :catch_13c
.catchall {:try_start_129 .. :try_end_12c} :catchall_3a
.line 231
:goto_12c
:try_start_12c
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_12f
.catch Ljava/lang/Exception; {:try_start_12c .. :try_end_12f} :catch_141
.catch Ljava/lang/Error; {:try_start_12c .. :try_end_12f} :catch_146
.catchall {:try_start_12c .. :try_end_12f} :catchall_10b
.line 245
:goto_12f
if-eqz v4, :cond_134
.line 248
:try_start_131
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_134
.catch Ljava/lang/Exception; {:try_start_131 .. :try_end_134} :catch_14b
.catch Ljava/lang/Error; {:try_start_131 .. :try_end_134} :catch_150
:cond_134
:goto_134
move v0, v2
.line 211
goto/16 :goto_47
.line 218
:catch_137
move-exception v0
.line 219
:try_start_138
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_12c
.line 220
:catch_13c
move-exception v0
.line 221
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
:try_end_140
.catchall {:try_start_138 .. :try_end_140} :catchall_3a
goto :goto_12c
.line 232
:catch_141
move-exception v0
.line 233
:try_start_142
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_12f
.line 234
:catch_146
move-exception v0
.line 235
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
:try_end_14a
.catch Ljava/lang/Exception; {:try_start_142 .. :try_end_14a} :catch_3f
.catchall {:try_start_142 .. :try_end_14a} :catchall_10b
goto :goto_12f
.line 249
:catch_14b
move-exception v0
.line 250
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_134
.line 251
:catch_150
move-exception v0
.line 252
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto :goto_134
.line 220
:catch_155
move-exception v0
.line 221
:try_start_156
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto/16 :goto_12
.line 218
:catch_15b
move-exception v1
.line 219
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_ed
.line 220
:catch_160
move-exception v1
.line 221
invoke-virtual {v1}, Ljava/lang/Error;->printStackTrace()V
goto :goto_ed
.line 226
:cond_165
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
:try_end_168
.catchall {:try_start_156 .. :try_end_168} :catchall_3a
.line 231
:try_start_168
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_16b
.catch Ljava/lang/Exception; {:try_start_168 .. :try_end_16b} :catch_173
.catch Ljava/lang/Error; {:try_start_168 .. :try_end_16b} :catch_178
.catchall {:try_start_168 .. :try_end_16b} :catchall_10b
.line 245
:goto_16b
if-eqz v4, :cond_170
.line 248
:try_start_16d
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_170
.catch Ljava/lang/Exception; {:try_start_16d .. :try_end_170} :catch_189
.catch Ljava/lang/Error; {:try_start_16d .. :try_end_170} :catch_18e
:cond_170
:goto_170
move v0, v3
.line 256
goto/16 :goto_47
.line 232
:catch_173
move-exception v0
.line 233
:try_start_174
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_16b
.line 234
:catch_178
move-exception v0
.line 235
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto :goto_16b
.line 232
:catch_17d
move-exception v1
.line 233
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto/16 :goto_3e
.line 234
:catch_183
move-exception v1
.line 235
invoke-virtual {v1}, Ljava/lang/Error;->printStackTrace()V
:try_end_187
.catch Ljava/lang/Exception; {:try_start_174 .. :try_end_187} :catch_3f
.catchall {:try_start_174 .. :try_end_187} :catchall_10b
goto/16 :goto_3e
.line 249
:catch_189
move-exception v0
.line 250
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_170
.line 251
:catch_18e
move-exception v0
.line 252
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto :goto_170
.line 249
:catch_193
move-exception v0
.line 250
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto/16 :goto_46
.line 251
:catch_199
move-exception v0
.line 252
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto/16 :goto_46
.line 249
:catch_19f
move-exception v1
.line 250
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto/16 :goto_111
.line 251
:catch_1a5
move-exception v1
.line 252
invoke-virtual {v1}, Ljava/lang/Error;->printStackTrace()V
goto/16 :goto_111
.line 245
:catchall_1ab
move-exception v1
move-object v4, v0
move-object v0, v1
goto/16 :goto_10c
.line 239
:catch_1b0
move-exception v1
goto/16 :goto_41
.end method
.method public static patch(Ljava/lang/String;Ljava/lang/String;)Z
.registers 4
.prologue
.line 24
new-instance v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;
invoke-direct {v0}, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;-><init>()V
.line 25
invoke-direct {v0, p0}, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->parsePatch(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_13
invoke-direct {v0, p1}, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->patch(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_13
const/4 v0, 0x1
:goto_12
return v0
:cond_13
const/4 v0, 0x0
goto :goto_12
.end method
# virtual methods
.method public endDocument()V
.registers 1
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xml/sax/SAXException;
}
.end annotation
.prologue
.line 111
invoke-super {p0}, Lorg/xml/sax/helpers/DefaultHandler;->endDocument()V
.line 112
return-void
.end method
.method public endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xml/sax/SAXException;
}
.end annotation
.prologue
.line 106
return-void
.end method
.method public startDocument()V
.registers 1
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xml/sax/SAXException;
}
.end annotation
.prologue
.line 31
return-void
.end method
.method public startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/xml/sax/SAXException;
}
.end annotation
.prologue
const/4 v1, 0x0
.line 36
const-string v0, "long"
.line 37
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_22
const-string v0, "double"
.line 38
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_22
const-string/jumbo v0, "string"
.line 39
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_22
const-string v0, "blob"
.line 40
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_38
.line 43
:cond_22
new-instance v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;
invoke-direct {v0, v1}, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;-><init>(Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$1;)V
.line 45
iput-object p2, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->type:Ljava/lang/String;
.line 46
const-string/jumbo v1, "value"
invoke-interface {p4, v1}, Lorg/xml/sax/Attributes;->getValue(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
iput-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->value:Ljava/lang/String;
.line 48
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curRow:Ljava/util/LinkedList;
invoke-virtual {v1, v0}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
.line 101
:cond_37
:goto_37
return-void
.line 50
:cond_38
const-string v0, "null"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_4d
.line 52
new-instance v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;
invoke-direct {v0, v1}, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;-><init>(Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$1;)V
.line 54
iput-object p2, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLColumn;->type:Ljava/lang/String;
.line 56
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curRow:Ljava/util/LinkedList;
invoke-virtual {v1, v0}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
goto :goto_37
.line 58
:cond_4d
const-string v0, "row"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_66
.line 60
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curRow:Ljava/util/LinkedList;
.line 61
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
iget-object v0, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->rowList:Ljava/util/LinkedList;
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curRow:Ljava/util/LinkedList;
invoke-virtual {v0, v1}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
goto :goto_37
.line 63
:cond_66
const-string v0, "delete"
.line 64
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_76
const-string v0, "append"
.line 65
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_9f
.line 68
:cond_76
iput-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curRow:Ljava/util/LinkedList;
.line 69
new-instance v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
invoke-direct {v0, v1}, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;-><init>(Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$1;)V
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
.line 71
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
iput-object p2, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->cmdType:Ljava/lang/String;
.line 72
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
const-string/jumbo v1, "statement"
invoke-interface {p4, v1}, Lorg/xml/sax/Attributes;->getValue(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
iput-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->statement:Ljava/lang/String;
.line 73
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
new-instance v1, Ljava/util/LinkedList;
invoke-direct {v1}, Ljava/util/LinkedList;-><init>()V
iput-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->rowList:Ljava/util/LinkedList;
.line 75
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->cmdList:Ljava/util/LinkedList;
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
invoke-virtual {v0, v1}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
goto :goto_37
.line 77
:cond_9f
const-string v0, "sql"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_c8
.line 79
iput-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curRow:Ljava/util/LinkedList;
.line 80
new-instance v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
invoke-direct {v0, v1}, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;-><init>(Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$1;)V
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
.line 82
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
iput-object p2, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->cmdType:Ljava/lang/String;
.line 83
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
const-string/jumbo v1, "statement"
invoke-interface {p4, v1}, Lorg/xml/sax/Attributes;->getValue(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
iput-object v1, v0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;->statement:Ljava/lang/String;
.line 85
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->cmdList:Ljava/util/LinkedList;
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->curCmd:Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher$SQLCommand;
invoke-virtual {v0, v1}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z
goto/16 :goto_37
.line 87
:cond_c8
const-string v0, "body"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_d9
.line 89
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->cmdList:Ljava/util/LinkedList;
goto/16 :goto_37
.line 91
:cond_d9
const-string v0, "header"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_f5
.line 93
const-string/jumbo v0, "version_source"
invoke-interface {p4, v0}, Lorg/xml/sax/Attributes;->getValue(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->versionSource:Ljava/lang/String;
.line 94
const-string/jumbo v0, "version_target"
invoke-interface {p4, v0}, Lorg/xml/sax/Attributes;->getValue(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->versionTarget:Ljava/lang/String;
goto/16 :goto_37
.line 96
:cond_f5
const-string v0, "diff"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_37
.line 98
const-string/jumbo v0, "type"
invoke-interface {p4, v0}, Lorg/xml/sax/Attributes;->getValue(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->diffType:Ljava/lang/String;
.line 99
const-string/jumbo v0, "version"
invoke-interface {p4, v0}, Lorg/xml/sax/Attributes;->getValue(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/util/io/SqlitePatcher;->versionDiff:Ljava/lang/String;
goto/16 :goto_37
.end method