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_1b1
.catchall {:try_start_5 .. :try_end_8} :catchall_1ac
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_40
.catchall {:try_start_9 .. :try_end_c} :catchall_10c
.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_166
.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_3b
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/jumbo v5, "sql"
invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_49
.line 164
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->execute()V
:try_end_32
.catchall {:try_start_24 .. :try_end_32} :catchall_ea
.line 217
:cond_32
:try_start_32
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->close()V
:try_end_35
.catch Ljava/lang/Exception; {:try_start_32 .. :try_end_35} :catch_36
.catch Ljava/lang/Error; {:try_start_32 .. :try_end_35} :catch_156
.catchall {:try_start_32 .. :try_end_35} :catchall_3b
goto :goto_12
.line 218
:catch_36
move-exception v0
.line 219
:try_start_37
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_3a
.catchall {:try_start_37 .. :try_end_3a} :catchall_3b
goto :goto_12
.line 230
:catchall_3b
move-exception v0
.line 231
:try_start_3c
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_3f
.catch Ljava/lang/Exception; {:try_start_3c .. :try_end_3f} :catch_17e
.catch Ljava/lang/Error; {:try_start_3c .. :try_end_3f} :catch_184
.catchall {:try_start_3c .. :try_end_3f} :catchall_10c
.line 236
:goto_3f
:try_start_3f
throw v0
:try_end_40
.catch Ljava/lang/Exception; {:try_start_3f .. :try_end_40} :catch_40
.catchall {:try_start_3f .. :try_end_40} :catchall_10c
.line 239
:catch_40
move-exception v0
move-object v0, v4
.line 245
:goto_42
if-eqz v0, :cond_47
.line 248
:try_start_44
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_47
.catch Ljava/lang/Exception; {:try_start_44 .. :try_end_47} :catch_194
.catch Ljava/lang/Error; {:try_start_44 .. :try_end_47} :catch_19a
:cond_47
:goto_47
move v0, v2
.line 256
:goto_48
return v0
.line 166
:cond_49
:try_start_49
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_5d
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_12a
.line 171
:cond_5d
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_63
invoke-interface {v8}, Ljava/util/ListIterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_32
.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_74
invoke-interface {v9}, Ljava/util/ListIterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_122
.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_98
.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_96
move v5, v0
.line 204
goto :goto_74
.line 184
:cond_98
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_af
.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_96
.line 188
:cond_af
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_c3
.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_96
.line 192
:cond_c3
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_da
.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_96
.line 196
:cond_da
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_ef
.line 198
add-int/lit8 v0, v5, 0x1
invoke-virtual {v7, v5}, Landroid/database/sqlite/SQLiteStatement;->bindNull(I)V
:try_end_e9
.catchall {:try_start_49 .. :try_end_e9} :catchall_ea
goto :goto_96
.line 216
:catchall_ea
move-exception v0
.line 217
:try_start_eb
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->close()V
:try_end_ee
.catch Ljava/lang/Exception; {:try_start_eb .. :try_end_ee} :catch_15c
.catch Ljava/lang/Error; {:try_start_eb .. :try_end_ee} :catch_161
.catchall {:try_start_eb .. :try_end_ee} :catchall_3b
.line 222
:goto_ee
:try_start_ee
throw v0
:try_end_ef
.catchall {:try_start_ee .. :try_end_ef} :catchall_3b
.line 217
:cond_ef
:try_start_ef
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->close()V
:try_end_f2
.catch Ljava/lang/Exception; {:try_start_ef .. :try_end_f2} :catch_fd
.catch Ljava/lang/Error; {:try_start_ef .. :try_end_f2} :catch_102
.catchall {:try_start_ef .. :try_end_f2} :catchall_3b
.line 231
:goto_f2
:try_start_f2
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_f5
.catch Ljava/lang/Exception; {:try_start_f2 .. :try_end_f5} :catch_107
.catch Ljava/lang/Error; {:try_start_f2 .. :try_end_f5} :catch_113
.catchall {:try_start_f2 .. :try_end_f5} :catchall_10c
.line 245
:goto_f5
if-eqz v4, :cond_fa
.line 248
:try_start_f7
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_fa
.catch Ljava/lang/Exception; {:try_start_f7 .. :try_end_fa} :catch_118
.catch Ljava/lang/Error; {:try_start_f7 .. :try_end_fa} :catch_11d
:cond_fa
:goto_fa
move v0, v2
.line 202
goto/16 :goto_48
.line 218
:catch_fd
move-exception v0
.line 219
:try_start_fe
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_f2
.line 220
:catch_102
move-exception v0
.line 221
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
:try_end_106
.catchall {:try_start_fe .. :try_end_106} :catchall_3b
goto :goto_f2
.line 232
:catch_107
move-exception v0
.line 233
:try_start_108
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_10b
.catch Ljava/lang/Exception; {:try_start_108 .. :try_end_10b} :catch_40
.catchall {:try_start_108 .. :try_end_10b} :catchall_10c
goto :goto_f5
.line 245
:catchall_10c
move-exception v0
:goto_10d
if-eqz v4, :cond_112
.line 248
:try_start_10f
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_112
.catch Ljava/lang/Exception; {:try_start_10f .. :try_end_112} :catch_1a0
.catch Ljava/lang/Error; {:try_start_10f .. :try_end_112} :catch_1a6
.line 253
:cond_112
:goto_112
throw v0
.line 234
:catch_113
move-exception v0
.line 235
:try_start_114
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
:try_end_117
.catch Ljava/lang/Exception; {:try_start_114 .. :try_end_117} :catch_40
.catchall {:try_start_114 .. :try_end_117} :catchall_10c
goto :goto_f5
.line 249
:catch_118
move-exception v0
.line 250
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_fa
.line 251
:catch_11d
move-exception v0
.line 252
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto :goto_fa
.line 205
:cond_122
:try_start_122
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->execute()V
.line 206
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->clearBindings()V
:try_end_128
.catchall {:try_start_122 .. :try_end_128} :catchall_ea
goto/16 :goto_63
.line 217
:cond_12a
:try_start_12a
invoke-virtual {v7}, Landroid/database/sqlite/SQLiteStatement;->close()V
:try_end_12d
.catch Ljava/lang/Exception; {:try_start_12a .. :try_end_12d} :catch_138
.catch Ljava/lang/Error; {:try_start_12a .. :try_end_12d} :catch_13d
.catchall {:try_start_12a .. :try_end_12d} :catchall_3b
.line 231
:goto_12d
:try_start_12d
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_130
.catch Ljava/lang/Exception; {:try_start_12d .. :try_end_130} :catch_142
.catch Ljava/lang/Error; {:try_start_12d .. :try_end_130} :catch_147
.catchall {:try_start_12d .. :try_end_130} :catchall_10c
.line 245
:goto_130
if-eqz v4, :cond_135
.line 248
:try_start_132
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_135
.catch Ljava/lang/Exception; {:try_start_132 .. :try_end_135} :catch_14c
.catch Ljava/lang/Error; {:try_start_132 .. :try_end_135} :catch_151
:cond_135
:goto_135
move v0, v2
.line 211
goto/16 :goto_48
.line 218
:catch_138
move-exception v0
.line 219
:try_start_139
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_12d
.line 220
:catch_13d
move-exception v0
.line 221
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
:try_end_141
.catchall {:try_start_139 .. :try_end_141} :catchall_3b
goto :goto_12d
.line 232
:catch_142
move-exception v0
.line 233
:try_start_143
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_130
.line 234
:catch_147
move-exception v0
.line 235
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
:try_end_14b
.catch Ljava/lang/Exception; {:try_start_143 .. :try_end_14b} :catch_40
.catchall {:try_start_143 .. :try_end_14b} :catchall_10c
goto :goto_130
.line 249
:catch_14c
move-exception v0
.line 250
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_135
.line 251
:catch_151
move-exception v0
.line 252
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto :goto_135
.line 220
:catch_156
move-exception v0
.line 221
:try_start_157
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto/16 :goto_12
.line 218
:catch_15c
move-exception v1
.line 219
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_ee
.line 220
:catch_161
move-exception v1
.line 221
invoke-virtual {v1}, Ljava/lang/Error;->printStackTrace()V
goto :goto_ee
.line 226
:cond_166
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
:try_end_169
.catchall {:try_start_157 .. :try_end_169} :catchall_3b
.line 231
:try_start_169
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
:try_end_16c
.catch Ljava/lang/Exception; {:try_start_169 .. :try_end_16c} :catch_174
.catch Ljava/lang/Error; {:try_start_169 .. :try_end_16c} :catch_179
.catchall {:try_start_169 .. :try_end_16c} :catchall_10c
.line 245
:goto_16c
if-eqz v4, :cond_171
.line 248
:try_start_16e
invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabase;->close()V
:try_end_171
.catch Ljava/lang/Exception; {:try_start_16e .. :try_end_171} :catch_18a
.catch Ljava/lang/Error; {:try_start_16e .. :try_end_171} :catch_18f
:cond_171
:goto_171
move v0, v3
.line 256
goto/16 :goto_48
.line 232
:catch_174
move-exception v0
.line 233
:try_start_175
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_16c
.line 234
:catch_179
move-exception v0
.line 235
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto :goto_16c
.line 232
:catch_17e
move-exception v1
.line 233
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto/16 :goto_3f
.line 234
:catch_184
move-exception v1
.line 235
invoke-virtual {v1}, Ljava/lang/Error;->printStackTrace()V
:try_end_188
.catch Ljava/lang/Exception; {:try_start_175 .. :try_end_188} :catch_40
.catchall {:try_start_175 .. :try_end_188} :catchall_10c
goto/16 :goto_3f
.line 249
:catch_18a
move-exception v0
.line 250
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_171
.line 251
:catch_18f
move-exception v0
.line 252
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto :goto_171
.line 249
:catch_194
move-exception v0
.line 250
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto/16 :goto_47
.line 251
:catch_19a
move-exception v0
.line 252
invoke-virtual {v0}, Ljava/lang/Error;->printStackTrace()V
goto/16 :goto_47
.line 249
:catch_1a0
move-exception v1
.line 250
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto/16 :goto_112
.line 251
:catch_1a6
move-exception v1
.line 252
invoke-virtual {v1}, Ljava/lang/Error;->printStackTrace()V
goto/16 :goto_112
.line 245
:catchall_1ac
move-exception v1
move-object v4, v0
move-object v0, v1
goto/16 :goto_10d
.line 239
:catch_1b1
move-exception v1
goto/16 :goto_42
.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/jumbo v0, "row"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_67
.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_67
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_77
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_a0
.line 68
:cond_77
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_a0
const-string/jumbo v0, "sql"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_ca
.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_ca
const-string v0, "body"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_db
.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_db
const-string v0, "header"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_f7
.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_f7
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