2542 lines
57 KiB
Smali
2542 lines
57 KiB
Smali
.class public Lorg/sqlite/database/DatabaseUtils;
|
|
.super Ljava/lang/Object;
|
|
.source "DatabaseUtils.java"
|
|
|
|
|
|
# annotations
|
|
.annotation system Ldalvik/annotation/MemberClasses;
|
|
value = {
|
|
Lorg/sqlite/database/DatabaseUtils$InsertHelper;
|
|
}
|
|
.end annotation
|
|
|
|
|
|
# static fields
|
|
.field private static final DEBUG:Z = false
|
|
|
|
.field private static final DIGITS:[C
|
|
|
|
.field public static final STATEMENT_ABORT:I = 0x6
|
|
|
|
.field public static final STATEMENT_ATTACH:I = 0x3
|
|
|
|
.field public static final STATEMENT_BEGIN:I = 0x4
|
|
|
|
.field public static final STATEMENT_COMMIT:I = 0x5
|
|
|
|
.field public static final STATEMENT_DDL:I = 0x8
|
|
|
|
.field public static final STATEMENT_OTHER:I = 0x63
|
|
|
|
.field public static final STATEMENT_PRAGMA:I = 0x7
|
|
|
|
.field public static final STATEMENT_SELECT:I = 0x1
|
|
|
|
.field public static final STATEMENT_UNPREPARED:I = 0x9
|
|
|
|
.field public static final STATEMENT_UPDATE:I = 0x2
|
|
|
|
.field private static final TAG:Ljava/lang/String; = "DatabaseUtils"
|
|
|
|
.field private static mColl:Ljava/text/Collator;
|
|
|
|
|
|
# direct methods
|
|
.method static constructor <clinit>()V
|
|
.locals 1
|
|
|
|
const/16 v0, 0x10
|
|
|
|
.line 431
|
|
new-array v0, v0, [C
|
|
|
|
fill-array-data v0, :array_0
|
|
|
|
sput-object v0, Lorg/sqlite/database/DatabaseUtils;->DIGITS:[C
|
|
|
|
return-void
|
|
|
|
:array_0
|
|
.array-data 2
|
|
0x30s
|
|
0x31s
|
|
0x32s
|
|
0x33s
|
|
0x34s
|
|
0x35s
|
|
0x36s
|
|
0x37s
|
|
0x38s
|
|
0x39s
|
|
0x61s
|
|
0x62s
|
|
0x63s
|
|
0x64s
|
|
0x65s
|
|
0x66s
|
|
.end array-data
|
|
.end method
|
|
|
|
.method public constructor <init>()V
|
|
.locals 0
|
|
|
|
.line 52
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static appendEscapedSQLString(Ljava/lang/StringBuilder;Ljava/lang/String;)V
|
|
.locals 4
|
|
|
|
const/16 v0, 0x27
|
|
|
|
.line 344
|
|
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
.line 345
|
|
invoke-virtual {p1, v0}, Ljava/lang/String;->indexOf(I)I
|
|
|
|
move-result v1
|
|
|
|
const/4 v2, -0x1
|
|
|
|
if-eq v1, v2, :cond_1
|
|
|
|
.line 346
|
|
invoke-virtual {p1}, Ljava/lang/String;->length()I
|
|
|
|
move-result v1
|
|
|
|
const/4 v2, 0x0
|
|
|
|
:goto_0
|
|
if-ge v2, v1, :cond_2
|
|
|
|
.line 348
|
|
invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C
|
|
|
|
move-result v3
|
|
|
|
if-ne v3, v0, :cond_0
|
|
|
|
.line 350
|
|
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
.line 352
|
|
:cond_0
|
|
invoke-virtual {p0, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
.line 355
|
|
:cond_1
|
|
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
.line 356
|
|
:cond_2
|
|
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static appendSelectionArgs([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
|
|
.locals 3
|
|
|
|
if-eqz p0, :cond_1
|
|
|
|
.line 1439
|
|
array-length v0, p0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 1442
|
|
:cond_0
|
|
array-length v0, p0
|
|
|
|
array-length v1, p1
|
|
|
|
add-int/2addr v0, v1
|
|
|
|
new-array v0, v0, [Ljava/lang/String;
|
|
|
|
.line 1443
|
|
array-length v1, p0
|
|
|
|
const/4 v2, 0x0
|
|
|
|
invoke-static {p0, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
|
|
|
|
.line 1444
|
|
array-length p0, p0
|
|
|
|
array-length v1, p1
|
|
|
|
invoke-static {p1, v2, v0, p0, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
|
|
|
|
return-object v0
|
|
|
|
:cond_1
|
|
:goto_0
|
|
return-object p1
|
|
.end method
|
|
|
|
.method public static final appendValueToSql(Ljava/lang/StringBuilder;Ljava/lang/Object;)V
|
|
.locals 1
|
|
|
|
if-nez p1, :cond_0
|
|
|
|
const-string p1, "NULL"
|
|
|
|
.line 375
|
|
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
goto :goto_0
|
|
|
|
.line 376
|
|
:cond_0
|
|
instance-of v0, p1, Ljava/lang/Boolean;
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 377
|
|
check-cast p1, Ljava/lang/Boolean;
|
|
|
|
.line 378
|
|
invoke-virtual {p1}, Ljava/lang/Boolean;->booleanValue()Z
|
|
|
|
move-result p1
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
const/16 p1, 0x31
|
|
|
|
.line 379
|
|
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/16 p1, 0x30
|
|
|
|
.line 381
|
|
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
goto :goto_0
|
|
|
|
.line 384
|
|
:cond_2
|
|
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {p0, p1}, Lorg/sqlite/database/DatabaseUtils;->appendEscapedSQLString(Ljava/lang/StringBuilder;Ljava/lang/String;)V
|
|
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static bindObjectToProgram(Lorg/sqlite/database/sqlite/SQLiteProgram;ILjava/lang/Object;)V
|
|
.locals 2
|
|
|
|
if-nez p2, :cond_0
|
|
|
|
.line 204
|
|
invoke-virtual {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteProgram;->bindNull(I)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 205
|
|
:cond_0
|
|
instance-of v0, p2, Ljava/lang/Double;
|
|
|
|
if-nez v0, :cond_6
|
|
|
|
instance-of v0, p2, Ljava/lang/Float;
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
goto :goto_0
|
|
|
|
.line 207
|
|
:cond_1
|
|
instance-of v0, p2, Ljava/lang/Number;
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 208
|
|
check-cast p2, Ljava/lang/Number;
|
|
|
|
invoke-virtual {p2}, Ljava/lang/Number;->longValue()J
|
|
|
|
move-result-wide v0
|
|
|
|
invoke-virtual {p0, p1, v0, v1}, Lorg/sqlite/database/sqlite/SQLiteProgram;->bindLong(IJ)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 209
|
|
:cond_2
|
|
instance-of v0, p2, Ljava/lang/Boolean;
|
|
|
|
if-eqz v0, :cond_4
|
|
|
|
.line 210
|
|
check-cast p2, Ljava/lang/Boolean;
|
|
|
|
.line 211
|
|
invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z
|
|
|
|
move-result p2
|
|
|
|
if-eqz p2, :cond_3
|
|
|
|
const-wide/16 v0, 0x1
|
|
|
|
.line 212
|
|
invoke-virtual {p0, p1, v0, v1}, Lorg/sqlite/database/sqlite/SQLiteProgram;->bindLong(IJ)V
|
|
|
|
goto :goto_1
|
|
|
|
:cond_3
|
|
const-wide/16 v0, 0x0
|
|
|
|
.line 214
|
|
invoke-virtual {p0, p1, v0, v1}, Lorg/sqlite/database/sqlite/SQLiteProgram;->bindLong(IJ)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 216
|
|
:cond_4
|
|
instance-of v0, p2, [B
|
|
|
|
if-eqz v0, :cond_5
|
|
|
|
.line 217
|
|
check-cast p2, [B
|
|
|
|
invoke-virtual {p0, p1, p2}, Lorg/sqlite/database/sqlite/SQLiteProgram;->bindBlob(I[B)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 219
|
|
:cond_5
|
|
invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p2
|
|
|
|
invoke-virtual {p0, p1, p2}, Lorg/sqlite/database/sqlite/SQLiteProgram;->bindString(ILjava/lang/String;)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 206
|
|
:cond_6
|
|
:goto_0
|
|
check-cast p2, Ljava/lang/Number;
|
|
|
|
invoke-virtual {p2}, Ljava/lang/Number;->doubleValue()D
|
|
|
|
move-result-wide v0
|
|
|
|
invoke-virtual {p0, p1, v0, v1}, Lorg/sqlite/database/sqlite/SQLiteProgram;->bindDouble(ID)V
|
|
|
|
:goto_1
|
|
return-void
|
|
.end method
|
|
|
|
.method public static blobFileDescriptorForQuery(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
|
|
.locals 0
|
|
|
|
.line 880
|
|
invoke-virtual {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Lorg/sqlite/database/sqlite/SQLiteStatement;
|
|
|
|
move-result-object p0
|
|
|
|
.line 882
|
|
:try_start_0
|
|
invoke-static {p0, p2}, Lorg/sqlite/database/DatabaseUtils;->blobFileDescriptorForQuery(Lorg/sqlite/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
|
|
|
|
move-result-object p1
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 884
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteStatement;->close()V
|
|
|
|
return-object p1
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteStatement;->close()V
|
|
|
|
.line 885
|
|
throw p1
|
|
.end method
|
|
|
|
.method public static blobFileDescriptorForQuery(Lorg/sqlite/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
|
|
.locals 0
|
|
|
|
.line 896
|
|
invoke-virtual {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteStatement;->bindAllArgsAsStrings([Ljava/lang/String;)V
|
|
|
|
.line 897
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteStatement;->simpleQueryForBlobFileDescriptor()Landroid/os/ParcelFileDescriptor;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static concatenateWhere(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
|
.locals 2
|
|
|
|
.line 392
|
|
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
return-object p1
|
|
|
|
.line 395
|
|
:cond_0
|
|
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
return-object p0
|
|
|
|
.line 399
|
|
:cond_1
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, "("
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
const-string p0, ") AND ("
|
|
|
|
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
const-string p0, ")"
|
|
|
|
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static createDbFromSqlStatements(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;)V
|
|
.locals 3
|
|
|
|
.line 1370
|
|
invoke-virtual {p0, p1}, Landroid/content/Context;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
|
|
|
|
move-result-object p0
|
|
|
|
.line 1371
|
|
invoke-virtual {p0}, Ljava/io/File;->getParentFile()Ljava/io/File;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z
|
|
|
|
const/4 p1, 0x0
|
|
|
|
.line 1372
|
|
invoke-static {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteDatabase;->openOrCreateDatabase(Ljava/io/File;Lorg/sqlite/database/sqlite/SQLiteDatabase$CursorFactory;)Lorg/sqlite/database/sqlite/SQLiteDatabase;
|
|
|
|
move-result-object p0
|
|
|
|
const-string p1, ";\n"
|
|
|
|
.line 1377
|
|
invoke-static {p3, p1}, Landroid/text/TextUtils;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
.line 1378
|
|
array-length p3, p1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
:goto_0
|
|
if-ge v0, p3, :cond_1
|
|
|
|
aget-object v1, p1, v0
|
|
|
|
.line 1379
|
|
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_0
|
|
|
|
goto :goto_1
|
|
|
|
.line 1380
|
|
:cond_0
|
|
invoke-virtual {p0, v1}, Lorg/sqlite/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
|
|
|
|
:goto_1
|
|
add-int/lit8 v0, v0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
.line 1382
|
|
:cond_1
|
|
invoke-virtual {p0, p2}, Lorg/sqlite/database/sqlite/SQLiteDatabase;->setVersion(I)V
|
|
|
|
.line 1383
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteDatabase;->close()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorDoubleToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 1
|
|
|
|
.line 721
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
|
|
|
|
move-result p1
|
|
|
|
.line 722
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->isNull(I)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 723
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getDouble(I)D
|
|
|
|
move-result-wide p0
|
|
|
|
invoke-static {p0, p1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p2, p3, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Double;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
.line 725
|
|
check-cast p0, Ljava/lang/Double;
|
|
|
|
invoke-virtual {p2, p3, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Double;)V
|
|
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorDoubleToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 2
|
|
|
|
.line 990
|
|
invoke-interface {p0, p2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, -0x1
|
|
|
|
if-eq v0, v1, :cond_0
|
|
|
|
.line 991
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->isNull(I)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
.line 992
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->getDouble(I)D
|
|
|
|
move-result-wide v0
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p1, p2, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Double;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorDoubleToCursorValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V
|
|
.locals 0
|
|
|
|
.line 708
|
|
invoke-static {p0, p1, p2, p1}, Lorg/sqlite/database/DatabaseUtils;->cursorDoubleToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorFillWindow(Landroid/database/Cursor;ILandroid/database/CursorWindow;)V
|
|
.locals 5
|
|
|
|
if-ltz p1, :cond_9
|
|
|
|
.line 269
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getCount()I
|
|
|
|
move-result v0
|
|
|
|
if-lt p1, v0, :cond_0
|
|
|
|
goto/16 :goto_3
|
|
|
|
.line 272
|
|
:cond_0
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getPosition()I
|
|
|
|
move-result v0
|
|
|
|
.line 273
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getColumnCount()I
|
|
|
|
move-result v1
|
|
|
|
.line 274
|
|
invoke-virtual {p2}, Landroid/database/CursorWindow;->clear()V
|
|
|
|
.line 275
|
|
invoke-virtual {p2, p1}, Landroid/database/CursorWindow;->setStartPosition(I)V
|
|
|
|
.line 276
|
|
invoke-virtual {p2, v1}, Landroid/database/CursorWindow;->setNumColumns(I)Z
|
|
|
|
.line 277
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->moveToPosition(I)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_8
|
|
|
|
.line 279
|
|
:cond_1
|
|
invoke-virtual {p2}, Landroid/database/CursorWindow;->allocRow()Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_2
|
|
|
|
goto :goto_2
|
|
|
|
:cond_2
|
|
const/4 v2, 0x0
|
|
|
|
:goto_0
|
|
if-ge v2, v1, :cond_7
|
|
|
|
.line 283
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getType(I)I
|
|
|
|
move-result v3
|
|
|
|
const/4 v4, 0x4
|
|
|
|
if-eq v3, v4, :cond_4
|
|
|
|
packed-switch v3, :pswitch_data_0
|
|
|
|
.line 307
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
|
|
if-eqz v3, :cond_3
|
|
|
|
.line 308
|
|
invoke-virtual {p2, v3, p1, v2}, Landroid/database/CursorWindow;->putString(Ljava/lang/String;II)Z
|
|
|
|
move-result v3
|
|
|
|
goto :goto_1
|
|
|
|
.line 309
|
|
:cond_3
|
|
invoke-virtual {p2, p1, v2}, Landroid/database/CursorWindow;->putNull(II)Z
|
|
|
|
move-result v3
|
|
|
|
goto :goto_1
|
|
|
|
.line 295
|
|
:pswitch_0
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getDouble(I)D
|
|
|
|
move-result-wide v3
|
|
|
|
invoke-virtual {p2, v3, v4, p1, v2}, Landroid/database/CursorWindow;->putDouble(DII)Z
|
|
|
|
move-result v3
|
|
|
|
goto :goto_1
|
|
|
|
.line 291
|
|
:pswitch_1
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getLong(I)J
|
|
|
|
move-result-wide v3
|
|
|
|
invoke-virtual {p2, v3, v4, p1, v2}, Landroid/database/CursorWindow;->putLong(JII)Z
|
|
|
|
move-result v3
|
|
|
|
goto :goto_1
|
|
|
|
.line 287
|
|
:pswitch_2
|
|
invoke-virtual {p2, p1, v2}, Landroid/database/CursorWindow;->putNull(II)Z
|
|
|
|
move-result v3
|
|
|
|
goto :goto_1
|
|
|
|
.line 299
|
|
:cond_4
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getBlob(I)[B
|
|
|
|
move-result-object v3
|
|
|
|
if-eqz v3, :cond_5
|
|
|
|
.line 300
|
|
invoke-virtual {p2, v3, p1, v2}, Landroid/database/CursorWindow;->putBlob([BII)Z
|
|
|
|
move-result v3
|
|
|
|
goto :goto_1
|
|
|
|
.line 301
|
|
:cond_5
|
|
invoke-virtual {p2, p1, v2}, Landroid/database/CursorWindow;->putNull(II)Z
|
|
|
|
move-result v3
|
|
|
|
:goto_1
|
|
if-nez v3, :cond_6
|
|
|
|
.line 314
|
|
invoke-virtual {p2}, Landroid/database/CursorWindow;->freeLastRow()V
|
|
|
|
goto :goto_2
|
|
|
|
:cond_6
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_7
|
|
add-int/lit8 p1, p1, 0x1
|
|
|
|
.line 319
|
|
invoke-interface {p0}, Landroid/database/Cursor;->moveToNext()Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_1
|
|
|
|
.line 321
|
|
:cond_8
|
|
:goto_2
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->moveToPosition(I)Z
|
|
|
|
return-void
|
|
|
|
:cond_9
|
|
:goto_3
|
|
return-void
|
|
|
|
nop
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x0
|
|
:pswitch_2
|
|
:pswitch_1
|
|
:pswitch_0
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method public static cursorFloatToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 2
|
|
|
|
.line 974
|
|
invoke-interface {p0, p2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, -0x1
|
|
|
|
if-eq v0, v1, :cond_0
|
|
|
|
.line 975
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->isNull(I)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
.line 976
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->getFloat(I)F
|
|
|
|
move-result p0
|
|
|
|
invoke-static {p0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p1, p2, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Float;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorIntToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V
|
|
.locals 0
|
|
|
|
.line 647
|
|
invoke-static {p0, p1, p2, p1}, Lorg/sqlite/database/DatabaseUtils;->cursorIntToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorIntToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 1
|
|
|
|
.line 660
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
|
|
|
|
move-result p1
|
|
|
|
.line 661
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->isNull(I)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 662
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getInt(I)I
|
|
|
|
move-result p0
|
|
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p2, p3, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
.line 664
|
|
check-cast p0, Ljava/lang/Integer;
|
|
|
|
invoke-virtual {p2, p3, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
|
|
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorIntToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 2
|
|
|
|
.line 958
|
|
invoke-interface {p0, p2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, -0x1
|
|
|
|
if-eq v0, v1, :cond_0
|
|
|
|
.line 959
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->isNull(I)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
.line 960
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->getInt(I)I
|
|
|
|
move-result p0
|
|
|
|
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p1, p2, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorLongToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V
|
|
.locals 0
|
|
|
|
.line 677
|
|
invoke-static {p0, p1, p2, p1}, Lorg/sqlite/database/DatabaseUtils;->cursorLongToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorLongToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 1
|
|
|
|
.line 690
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
|
|
|
|
move-result p1
|
|
|
|
.line 691
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->isNull(I)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 692
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getLong(I)J
|
|
|
|
move-result-wide p0
|
|
|
|
invoke-static {p0, p1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
|
|
|
|
move-result-object p0
|
|
|
|
.line 693
|
|
invoke-virtual {p2, p3, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
.line 695
|
|
check-cast p0, Ljava/lang/Long;
|
|
|
|
invoke-virtual {p2, p3, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
|
|
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorLongToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 2
|
|
|
|
.line 926
|
|
invoke-interface {p0, p2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, -0x1
|
|
|
|
if-eq v0, v1, :cond_0
|
|
|
|
.line 927
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->isNull(I)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
.line 928
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->getLong(I)J
|
|
|
|
move-result-wide v0
|
|
|
|
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p1, p2, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorPickFillWindowStartPosition(II)I
|
|
.locals 0
|
|
|
|
.line 770
|
|
div-int/lit8 p1, p1, 0x3
|
|
|
|
sub-int/2addr p0, p1
|
|
|
|
const/4 p1, 0x0
|
|
|
|
invoke-static {p0, p1}, Ljava/lang/Math;->max(II)I
|
|
|
|
move-result p0
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public static cursorRowToContentValues(Landroid/database/Cursor;Landroid/content/ContentValues;)V
|
|
.locals 5
|
|
|
|
.line 736
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
.line 737
|
|
array-length v1, v0
|
|
|
|
const/4 v2, 0x0
|
|
|
|
:goto_0
|
|
if-ge v2, v1, :cond_1
|
|
|
|
.line 739
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getType(I)I
|
|
|
|
move-result v3
|
|
|
|
const/4 v4, 0x4
|
|
|
|
if-ne v3, v4, :cond_0
|
|
|
|
.line 740
|
|
aget-object v3, v0, v2
|
|
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getBlob(I)[B
|
|
|
|
move-result-object v4
|
|
|
|
invoke-virtual {p1, v3, v4}, Landroid/content/ContentValues;->put(Ljava/lang/String;[B)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 742
|
|
:cond_0
|
|
aget-object v3, v0, v2
|
|
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
|
|
|
|
move-result-object v4
|
|
|
|
invoke-virtual {p1, v3, v4}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
:goto_1
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorShortToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 2
|
|
|
|
.line 942
|
|
invoke-interface {p0, p2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, -0x1
|
|
|
|
if-eq v0, v1, :cond_0
|
|
|
|
.line 943
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->isNull(I)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
.line 944
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->getShort(I)S
|
|
|
|
move-result p0
|
|
|
|
invoke-static {p0}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p1, p2, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Short;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorStringToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V
|
|
.locals 0
|
|
|
|
.line 610
|
|
invoke-static {p0, p1, p2, p1}, Lorg/sqlite/database/DatabaseUtils;->cursorStringToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorStringToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 0
|
|
|
|
.line 636
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
|
|
|
|
move-result p1
|
|
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p2, p3, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorStringToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V
|
|
.locals 2
|
|
|
|
.line 910
|
|
invoke-interface {p0, p2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, -0x1
|
|
|
|
if-eq v0, v1, :cond_0
|
|
|
|
.line 911
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->isNull(I)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
.line 912
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p1, p2, p0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
:cond_0
|
|
return-void
|
|
.end method
|
|
|
|
.method public static cursorStringToInsertHelper(Landroid/database/Cursor;Ljava/lang/String;Lorg/sqlite/database/DatabaseUtils$InsertHelper;I)V
|
|
.locals 0
|
|
|
|
.line 623
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
|
|
|
|
move-result p1
|
|
|
|
invoke-interface {p0, p1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p2, p3, p0}, Lorg/sqlite/database/DatabaseUtils$InsertHelper;->bind(ILjava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static dumpCurrentRow(Landroid/database/Cursor;)V
|
|
.locals 1
|
|
|
|
.line 538
|
|
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
|
|
|
invoke-static {p0, v0}, Lorg/sqlite/database/DatabaseUtils;->dumpCurrentRow(Landroid/database/Cursor;Ljava/io/PrintStream;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static dumpCurrentRow(Landroid/database/Cursor;Ljava/io/PrintStream;)V
|
|
.locals 6
|
|
|
|
.line 548
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
.line 549
|
|
new-instance v1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v2, ""
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getPosition()I
|
|
|
|
move-result v2
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
const-string v2, " {"
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {p1, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|
|
|
.line 550
|
|
array-length v1, v0
|
|
|
|
const/4 v2, 0x0
|
|
|
|
:goto_0
|
|
if-ge v2, v1, :cond_0
|
|
|
|
.line 554
|
|
:try_start_0
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
:try_end_0
|
|
.catch Lorg/sqlite/database/sqlite/SQLiteException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
goto :goto_1
|
|
|
|
:catch_0
|
|
const-string v3, "<unprintable>"
|
|
|
|
.line 560
|
|
:goto_1
|
|
new-instance v4, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v5, " "
|
|
|
|
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
aget-object v5, v0, v2
|
|
|
|
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
const/16 v5, 0x3d
|
|
|
|
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
|
|
invoke-virtual {p1, v3}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const-string p0, "}"
|
|
|
|
.line 562
|
|
invoke-virtual {p1, p0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static dumpCurrentRow(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V
|
|
.locals 6
|
|
|
|
.line 572
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
.line 573
|
|
new-instance v1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v2, ""
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getPosition()I
|
|
|
|
move-result v2
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
|
|
|
const-string v2, " {\n"
|
|
|
|
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
.line 574
|
|
array-length v1, v0
|
|
|
|
const/4 v2, 0x0
|
|
|
|
:goto_0
|
|
if-ge v2, v1, :cond_0
|
|
|
|
.line 578
|
|
:try_start_0
|
|
invoke-interface {p0, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
:try_end_0
|
|
.catch Lorg/sqlite/database/sqlite/SQLiteException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
goto :goto_1
|
|
|
|
:catch_0
|
|
const-string v3, "<unprintable>"
|
|
|
|
.line 584
|
|
:goto_1
|
|
new-instance v4, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v5, " "
|
|
|
|
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
aget-object v5, v0, v2
|
|
|
|
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
const/16 v5, 0x3d
|
|
|
|
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
const-string v3, "\n"
|
|
|
|
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
|
|
invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const-string p0, "}\n"
|
|
|
|
.line 586
|
|
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static dumpCurrentRowToString(Landroid/database/Cursor;)Ljava/lang/String;
|
|
.locals 1
|
|
|
|
.line 596
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
.line 597
|
|
invoke-static {p0, v0}, Lorg/sqlite/database/DatabaseUtils;->dumpCurrentRow(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V
|
|
|
|
.line 598
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static dumpCursor(Landroid/database/Cursor;)V
|
|
.locals 1
|
|
|
|
.line 474
|
|
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
|
|
|
invoke-static {p0, v0}, Lorg/sqlite/database/DatabaseUtils;->dumpCursor(Landroid/database/Cursor;Ljava/io/PrintStream;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static dumpCursor(Landroid/database/Cursor;Ljava/io/PrintStream;)V
|
|
.locals 2
|
|
|
|
.line 485
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, ">>>>> Dumping cursor "
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {p1, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|
|
|
if-eqz p0, :cond_1
|
|
|
|
.line 487
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getPosition()I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, -0x1
|
|
|
|
.line 489
|
|
invoke-interface {p0, v1}, Landroid/database/Cursor;->moveToPosition(I)Z
|
|
|
|
.line 490
|
|
:goto_0
|
|
invoke-interface {p0}, Landroid/database/Cursor;->moveToNext()Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_0
|
|
|
|
.line 491
|
|
invoke-static {p0, p1}, Lorg/sqlite/database/DatabaseUtils;->dumpCurrentRow(Landroid/database/Cursor;Ljava/io/PrintStream;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 493
|
|
:cond_0
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->moveToPosition(I)Z
|
|
|
|
:cond_1
|
|
const-string p0, "<<<<<"
|
|
|
|
.line 495
|
|
invoke-virtual {p1, p0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static dumpCursor(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V
|
|
.locals 2
|
|
|
|
.line 506
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, ">>>>> Dumping cursor "
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "\n"
|
|
|
|
invoke-virtual {v0, v1}, 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 {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
if-eqz p0, :cond_1
|
|
|
|
.line 508
|
|
invoke-interface {p0}, Landroid/database/Cursor;->getPosition()I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, -0x1
|
|
|
|
.line 510
|
|
invoke-interface {p0, v1}, Landroid/database/Cursor;->moveToPosition(I)Z
|
|
|
|
.line 511
|
|
:goto_0
|
|
invoke-interface {p0}, Landroid/database/Cursor;->moveToNext()Z
|
|
|
|
move-result v1
|
|
|
|
if-eqz v1, :cond_0
|
|
|
|
.line 512
|
|
invoke-static {p0, p1}, Lorg/sqlite/database/DatabaseUtils;->dumpCurrentRow(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V
|
|
|
|
goto :goto_0
|
|
|
|
.line 514
|
|
:cond_0
|
|
invoke-interface {p0, v0}, Landroid/database/Cursor;->moveToPosition(I)Z
|
|
|
|
:cond_1
|
|
const-string p0, "<<<<<\n"
|
|
|
|
.line 516
|
|
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static dumpCursorToString(Landroid/database/Cursor;)Ljava/lang/String;
|
|
.locals 1
|
|
|
|
.line 527
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
.line 528
|
|
invoke-static {p0, v0}, Lorg/sqlite/database/DatabaseUtils;->dumpCursor(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V
|
|
|
|
.line 529
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method private static encodeHex([B)[C
|
|
.locals 7
|
|
|
|
.line 437
|
|
array-length v0, p0
|
|
|
|
shl-int/lit8 v1, v0, 0x1
|
|
|
|
.line 438
|
|
new-array v1, v1, [C
|
|
|
|
const/4 v2, 0x0
|
|
|
|
const/4 v3, 0x0
|
|
|
|
:goto_0
|
|
if-ge v2, v0, :cond_0
|
|
|
|
add-int/lit8 v4, v3, 0x1
|
|
|
|
.line 442
|
|
sget-object v5, Lorg/sqlite/database/DatabaseUtils;->DIGITS:[C
|
|
|
|
aget-byte v6, p0, v2
|
|
|
|
and-int/lit16 v6, v6, 0xf0
|
|
|
|
ushr-int/lit8 v6, v6, 0x4
|
|
|
|
aget-char v5, v5, v6
|
|
|
|
aput-char v5, v1, v3
|
|
|
|
add-int/lit8 v3, v4, 0x1
|
|
|
|
.line 443
|
|
sget-object v5, Lorg/sqlite/database/DatabaseUtils;->DIGITS:[C
|
|
|
|
aget-byte v6, p0, v2
|
|
|
|
and-int/lit8 v6, v6, 0xf
|
|
|
|
aget-char v5, v5, v6
|
|
|
|
aput-char v5, v1, v4
|
|
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
return-object v1
|
|
.end method
|
|
|
|
.method public static findRowIdColumnIndex([Ljava/lang/String;)I
|
|
.locals 4
|
|
|
|
.line 1453
|
|
array-length v0, p0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
:goto_0
|
|
if-ge v1, v0, :cond_1
|
|
|
|
.line 1455
|
|
aget-object v2, p0, v1
|
|
|
|
const-string v3, "_id"
|
|
|
|
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_0
|
|
|
|
return v1
|
|
|
|
:cond_0
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const/4 p0, -0x1
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public static getCollationKey(Ljava/lang/String;)Ljava/lang/String;
|
|
.locals 4
|
|
|
|
.line 408
|
|
invoke-static {p0}, Lorg/sqlite/database/DatabaseUtils;->getCollationKeyInBytes(Ljava/lang/String;)[B
|
|
|
|
move-result-object p0
|
|
|
|
.line 410
|
|
:try_start_0
|
|
new-instance v0, Ljava/lang/String;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
invoke-static {p0}, Lorg/sqlite/database/DatabaseUtils;->getKeyLen([B)I
|
|
|
|
move-result v2
|
|
|
|
const-string v3, "ISO8859_1"
|
|
|
|
invoke-direct {v0, p0, v1, v2, v3}, Ljava/lang/String;-><init>([BIILjava/lang/String;)V
|
|
:try_end_0
|
|
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
return-object v0
|
|
|
|
:catch_0
|
|
const-string p0, ""
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method private static getCollationKeyInBytes(Ljava/lang/String;)[B
|
|
.locals 2
|
|
|
|
.line 459
|
|
sget-object v0, Lorg/sqlite/database/DatabaseUtils;->mColl:Ljava/text/Collator;
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 460
|
|
invoke-static {}, Ljava/text/Collator;->getInstance()Ljava/text/Collator;
|
|
|
|
move-result-object v0
|
|
|
|
sput-object v0, Lorg/sqlite/database/DatabaseUtils;->mColl:Ljava/text/Collator;
|
|
|
|
.line 461
|
|
sget-object v0, Lorg/sqlite/database/DatabaseUtils;->mColl:Ljava/text/Collator;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
invoke-virtual {v0, v1}, Ljava/text/Collator;->setStrength(I)V
|
|
|
|
.line 463
|
|
:cond_0
|
|
sget-object v0, Lorg/sqlite/database/DatabaseUtils;->mColl:Ljava/text/Collator;
|
|
|
|
invoke-virtual {v0, p0}, Ljava/text/Collator;->getCollationKey(Ljava/lang/String;)Ljava/text/CollationKey;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Ljava/text/CollationKey;->toByteArray()[B
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static getHexCollationKey(Ljava/lang/String;)Ljava/lang/String;
|
|
.locals 3
|
|
|
|
.line 422
|
|
invoke-static {p0}, Lorg/sqlite/database/DatabaseUtils;->getCollationKeyInBytes(Ljava/lang/String;)[B
|
|
|
|
move-result-object p0
|
|
|
|
.line 423
|
|
invoke-static {p0}, Lorg/sqlite/database/DatabaseUtils;->encodeHex([B)[C
|
|
|
|
move-result-object v0
|
|
|
|
.line 424
|
|
new-instance v1, Ljava/lang/String;
|
|
|
|
invoke-static {p0}, Lorg/sqlite/database/DatabaseUtils;->getKeyLen([B)I
|
|
|
|
move-result p0
|
|
|
|
mul-int/lit8 p0, p0, 0x2
|
|
|
|
const/4 v2, 0x0
|
|
|
|
invoke-direct {v1, v0, v2, p0}, Ljava/lang/String;-><init>([CII)V
|
|
|
|
return-object v1
|
|
.end method
|
|
|
|
.method private static getKeyLen([B)I
|
|
.locals 1
|
|
|
|
.line 450
|
|
array-length v0, p0
|
|
|
|
add-int/lit8 v0, v0, -0x1
|
|
|
|
aget-byte v0, p0, v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 451
|
|
array-length p0, p0
|
|
|
|
return p0
|
|
|
|
.line 454
|
|
:cond_0
|
|
array-length p0, p0
|
|
|
|
add-int/lit8 p0, p0, -0x1
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public static getSqlStatementType(Ljava/lang/String;)I
|
|
.locals 3
|
|
|
|
.line 1401
|
|
invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
.line 1402
|
|
invoke-virtual {p0}, Ljava/lang/String;->length()I
|
|
|
|
move-result v0
|
|
|
|
const/16 v1, 0x63
|
|
|
|
const/4 v2, 0x3
|
|
|
|
if-ge v0, v2, :cond_0
|
|
|
|
return v1
|
|
|
|
:cond_0
|
|
const/4 v0, 0x0
|
|
|
|
.line 1405
|
|
invoke-virtual {p0, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
sget-object v0, Ljava/util/Locale;->ROOT:Ljava/util/Locale;
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
const-string v0, "SEL"
|
|
|
|
.line 1406
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
|
|
:cond_1
|
|
const-string v0, "INS"
|
|
|
|
.line 1408
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_d
|
|
|
|
const-string v0, "UPD"
|
|
|
|
.line 1409
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_d
|
|
|
|
const-string v0, "REP"
|
|
|
|
.line 1410
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_d
|
|
|
|
const-string v0, "DEL"
|
|
|
|
.line 1411
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
goto :goto_2
|
|
|
|
:cond_2
|
|
const-string v0, "ATT"
|
|
|
|
.line 1413
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_3
|
|
|
|
return v2
|
|
|
|
:cond_3
|
|
const-string v0, "COM"
|
|
|
|
.line 1415
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
const/4 v2, 0x5
|
|
|
|
if-eqz v0, :cond_4
|
|
|
|
return v2
|
|
|
|
:cond_4
|
|
const-string v0, "END"
|
|
|
|
.line 1417
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_5
|
|
|
|
return v2
|
|
|
|
:cond_5
|
|
const-string v0, "ROL"
|
|
|
|
.line 1419
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_6
|
|
|
|
const/4 p0, 0x6
|
|
|
|
return p0
|
|
|
|
:cond_6
|
|
const-string v0, "BEG"
|
|
|
|
.line 1421
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_7
|
|
|
|
const/4 p0, 0x4
|
|
|
|
return p0
|
|
|
|
:cond_7
|
|
const-string v0, "PRA"
|
|
|
|
.line 1423
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_8
|
|
|
|
const/4 p0, 0x7
|
|
|
|
return p0
|
|
|
|
:cond_8
|
|
const-string v0, "CRE"
|
|
|
|
.line 1425
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_c
|
|
|
|
const-string v0, "DRO"
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_c
|
|
|
|
const-string v0, "ALT"
|
|
|
|
.line 1426
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_9
|
|
|
|
goto :goto_1
|
|
|
|
:cond_9
|
|
const-string v0, "ANA"
|
|
|
|
.line 1428
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_b
|
|
|
|
const-string v0, "DET"
|
|
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_a
|
|
|
|
goto :goto_0
|
|
|
|
:cond_a
|
|
return v1
|
|
|
|
:cond_b
|
|
:goto_0
|
|
const/16 p0, 0x9
|
|
|
|
return p0
|
|
|
|
:cond_c
|
|
:goto_1
|
|
const/16 p0, 0x8
|
|
|
|
return p0
|
|
|
|
:cond_d
|
|
:goto_2
|
|
const/4 p0, 0x2
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public static getTypeOfObject(Ljava/lang/Object;)I
|
|
.locals 1
|
|
|
|
if-nez p0, :cond_0
|
|
|
|
const/4 p0, 0x0
|
|
|
|
return p0
|
|
|
|
.line 243
|
|
:cond_0
|
|
instance-of v0, p0, [B
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
const/4 p0, 0x4
|
|
|
|
return p0
|
|
|
|
.line 245
|
|
:cond_1
|
|
instance-of v0, p0, Ljava/lang/Float;
|
|
|
|
if-nez v0, :cond_5
|
|
|
|
instance-of v0, p0, Ljava/lang/Double;
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
goto :goto_1
|
|
|
|
.line 247
|
|
:cond_2
|
|
instance-of v0, p0, Ljava/lang/Long;
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
instance-of v0, p0, Ljava/lang/Integer;
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
instance-of v0, p0, Ljava/lang/Short;
|
|
|
|
if-nez v0, :cond_4
|
|
|
|
instance-of p0, p0, Ljava/lang/Byte;
|
|
|
|
if-eqz p0, :cond_3
|
|
|
|
goto :goto_0
|
|
|
|
:cond_3
|
|
const/4 p0, 0x3
|
|
|
|
return p0
|
|
|
|
:cond_4
|
|
:goto_0
|
|
const/4 p0, 0x1
|
|
|
|
return p0
|
|
|
|
:cond_5
|
|
:goto_1
|
|
const/4 p0, 0x2
|
|
|
|
return p0
|
|
.end method
|
|
|
|
.method public static longForQuery(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)J
|
|
.locals 0
|
|
|
|
.line 833
|
|
invoke-virtual {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Lorg/sqlite/database/sqlite/SQLiteStatement;
|
|
|
|
move-result-object p0
|
|
|
|
.line 835
|
|
:try_start_0
|
|
invoke-static {p0, p2}, Lorg/sqlite/database/DatabaseUtils;->longForQuery(Lorg/sqlite/database/sqlite/SQLiteStatement;[Ljava/lang/String;)J
|
|
|
|
move-result-wide p1
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 837
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteStatement;->close()V
|
|
|
|
return-wide p1
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteStatement;->close()V
|
|
|
|
.line 838
|
|
throw p1
|
|
.end method
|
|
|
|
.method public static longForQuery(Lorg/sqlite/database/sqlite/SQLiteStatement;[Ljava/lang/String;)J
|
|
.locals 0
|
|
|
|
.line 846
|
|
invoke-virtual {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteStatement;->bindAllArgsAsStrings([Ljava/lang/String;)V
|
|
|
|
.line 847
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteStatement;->simpleQueryForLong()J
|
|
|
|
move-result-wide p0
|
|
|
|
return-wide p0
|
|
.end method
|
|
|
|
.method public static queryIsEmpty(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Z
|
|
.locals 3
|
|
|
|
.line 824
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, "select exists(select 1 from "
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
const-string p1, ")"
|
|
|
|
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-static {p0, p1, v0}, Lorg/sqlite/database/DatabaseUtils;->longForQuery(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)J
|
|
|
|
move-result-wide p0
|
|
|
|
const-wide/16 v0, 0x0
|
|
|
|
cmp-long v2, p0, v0
|
|
|
|
if-nez v2, :cond_0
|
|
|
|
const/4 p0, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p0, 0x0
|
|
|
|
:goto_0
|
|
return p0
|
|
.end method
|
|
|
|
.method public static queryNumEntries(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;)J
|
|
.locals 1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 780
|
|
invoke-static {p0, p1, v0, v0}, Lorg/sqlite/database/DatabaseUtils;->queryNumEntries(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J
|
|
|
|
move-result-wide p0
|
|
|
|
return-wide p0
|
|
.end method
|
|
|
|
.method public static queryNumEntries(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;)J
|
|
.locals 1
|
|
|
|
const/4 v0, 0x0
|
|
|
|
.line 793
|
|
invoke-static {p0, p1, p2, v0}, Lorg/sqlite/database/DatabaseUtils;->queryNumEntries(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J
|
|
|
|
move-result-wide p0
|
|
|
|
return-wide p0
|
|
.end method
|
|
|
|
.method public static queryNumEntries(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J
|
|
.locals 2
|
|
|
|
.line 811
|
|
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, " where "
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p2
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const-string p2, ""
|
|
|
|
.line 812
|
|
:goto_0
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
const-string v1, "select count(*) from "
|
|
|
|
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {p0, p1, p3}, Lorg/sqlite/database/DatabaseUtils;->longForQuery(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)J
|
|
|
|
move-result-wide p0
|
|
|
|
return-wide p0
|
|
.end method
|
|
|
|
.method private static final readExceptionFromParcel(Landroid/os/Parcel;Ljava/lang/String;I)V
|
|
.locals 0
|
|
|
|
packed-switch p2, :pswitch_data_0
|
|
|
|
.line 188
|
|
:pswitch_0
|
|
invoke-virtual {p0, p2, p1}, Landroid/os/Parcel;->readException(ILjava/lang/String;)V
|
|
|
|
return-void
|
|
|
|
.line 186
|
|
:pswitch_1
|
|
new-instance p0, Landroid/os/OperationCanceledException;
|
|
|
|
invoke-direct {p0, p1}, Landroid/os/OperationCanceledException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
|
|
.line 184
|
|
:pswitch_2
|
|
new-instance p0, Lorg/sqlite/database/sqlite/SQLiteException;
|
|
|
|
invoke-direct {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
|
|
.line 182
|
|
:pswitch_3
|
|
new-instance p0, Lorg/sqlite/database/sqlite/SQLiteDiskIOException;
|
|
|
|
invoke-direct {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteDiskIOException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
|
|
.line 180
|
|
:pswitch_4
|
|
new-instance p0, Lorg/sqlite/database/sqlite/SQLiteFullException;
|
|
|
|
invoke-direct {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteFullException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
|
|
.line 178
|
|
:pswitch_5
|
|
new-instance p0, Lorg/sqlite/database/sqlite/SQLiteDatabaseCorruptException;
|
|
|
|
invoke-direct {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteDatabaseCorruptException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
|
|
.line 176
|
|
:pswitch_6
|
|
new-instance p0, Lorg/sqlite/database/sqlite/SQLiteConstraintException;
|
|
|
|
invoke-direct {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteConstraintException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
|
|
.line 174
|
|
:pswitch_7
|
|
new-instance p0, Lorg/sqlite/database/sqlite/SQLiteAbortException;
|
|
|
|
invoke-direct {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteAbortException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
|
|
.line 172
|
|
:pswitch_8
|
|
new-instance p0, Ljava/lang/UnsupportedOperationException;
|
|
|
|
invoke-direct {p0, p1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
|
|
.line 170
|
|
:pswitch_9
|
|
new-instance p0, Ljava/lang/IllegalArgumentException;
|
|
|
|
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
|
|
nop
|
|
|
|
:pswitch_data_0
|
|
.packed-switch 0x2
|
|
:pswitch_9
|
|
:pswitch_8
|
|
:pswitch_7
|
|
:pswitch_6
|
|
:pswitch_5
|
|
:pswitch_4
|
|
:pswitch_3
|
|
:pswitch_2
|
|
:pswitch_0
|
|
:pswitch_1
|
|
.end packed-switch
|
|
.end method
|
|
|
|
.method public static sqlEscapeString(Ljava/lang/String;)Ljava/lang/String;
|
|
.locals 1
|
|
|
|
.line 363
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
.line 365
|
|
invoke-static {v0, p0}, Lorg/sqlite/database/DatabaseUtils;->appendEscapedSQLString(Ljava/lang/StringBuilder;Ljava/lang/String;)V
|
|
|
|
.line 367
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static stringForQuery(Lorg/sqlite/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
|
|
.locals 0
|
|
|
|
.line 855
|
|
invoke-virtual {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Lorg/sqlite/database/sqlite/SQLiteStatement;
|
|
|
|
move-result-object p0
|
|
|
|
.line 857
|
|
:try_start_0
|
|
invoke-static {p0, p2}, Lorg/sqlite/database/DatabaseUtils;->stringForQuery(Lorg/sqlite/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 859
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteStatement;->close()V
|
|
|
|
return-object p1
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteStatement;->close()V
|
|
|
|
.line 860
|
|
throw p1
|
|
.end method
|
|
|
|
.method public static stringForQuery(Lorg/sqlite/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Ljava/lang/String;
|
|
.locals 0
|
|
|
|
.line 868
|
|
invoke-virtual {p0, p1}, Lorg/sqlite/database/sqlite/SQLiteStatement;->bindAllArgsAsStrings([Ljava/lang/String;)V
|
|
|
|
.line 869
|
|
invoke-virtual {p0}, Lorg/sqlite/database/sqlite/SQLiteStatement;->simpleQueryForString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static final writeExceptionToParcel(Landroid/os/Parcel;Ljava/lang/Exception;)V
|
|
.locals 3
|
|
|
|
.line 90
|
|
instance-of v0, p1, Ljava/io/FileNotFoundException;
|
|
|
|
const/4 v1, 0x0
|
|
|
|
const/4 v2, 0x1
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
const/4 v0, 0x1
|
|
|
|
:goto_0
|
|
const/4 v2, 0x0
|
|
|
|
goto :goto_1
|
|
|
|
.line 93
|
|
:cond_0
|
|
instance-of v0, p1, Ljava/lang/IllegalArgumentException;
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
const/4 v0, 0x2
|
|
|
|
goto :goto_1
|
|
|
|
.line 95
|
|
:cond_1
|
|
instance-of v0, p1, Ljava/lang/UnsupportedOperationException;
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
const/4 v0, 0x3
|
|
|
|
goto :goto_1
|
|
|
|
.line 97
|
|
:cond_2
|
|
instance-of v0, p1, Lorg/sqlite/database/sqlite/SQLiteAbortException;
|
|
|
|
if-eqz v0, :cond_3
|
|
|
|
const/4 v0, 0x4
|
|
|
|
goto :goto_1
|
|
|
|
.line 99
|
|
:cond_3
|
|
instance-of v0, p1, Lorg/sqlite/database/sqlite/SQLiteConstraintException;
|
|
|
|
if-eqz v0, :cond_4
|
|
|
|
const/4 v0, 0x5
|
|
|
|
goto :goto_1
|
|
|
|
.line 101
|
|
:cond_4
|
|
instance-of v0, p1, Lorg/sqlite/database/sqlite/SQLiteDatabaseCorruptException;
|
|
|
|
if-eqz v0, :cond_5
|
|
|
|
const/4 v0, 0x6
|
|
|
|
goto :goto_1
|
|
|
|
.line 103
|
|
:cond_5
|
|
instance-of v0, p1, Lorg/sqlite/database/sqlite/SQLiteFullException;
|
|
|
|
if-eqz v0, :cond_6
|
|
|
|
const/4 v0, 0x7
|
|
|
|
goto :goto_1
|
|
|
|
.line 105
|
|
:cond_6
|
|
instance-of v0, p1, Lorg/sqlite/database/sqlite/SQLiteDiskIOException;
|
|
|
|
if-eqz v0, :cond_7
|
|
|
|
const/16 v0, 0x8
|
|
|
|
goto :goto_1
|
|
|
|
.line 107
|
|
:cond_7
|
|
instance-of v0, p1, Lorg/sqlite/database/sqlite/SQLiteException;
|
|
|
|
if-eqz v0, :cond_8
|
|
|
|
const/16 v0, 0x9
|
|
|
|
goto :goto_1
|
|
|
|
.line 109
|
|
:cond_8
|
|
instance-of v0, p1, Landroid/content/OperationApplicationException;
|
|
|
|
if-eqz v0, :cond_9
|
|
|
|
const/16 v0, 0xa
|
|
|
|
goto :goto_1
|
|
|
|
.line 111
|
|
:cond_9
|
|
instance-of v0, p1, Landroid/os/OperationCanceledException;
|
|
|
|
if-eqz v0, :cond_b
|
|
|
|
const/16 v2, 0xb
|
|
|
|
const/16 v0, 0xb
|
|
|
|
goto :goto_0
|
|
|
|
.line 119
|
|
:goto_1
|
|
invoke-virtual {p0, v0}, Landroid/os/Parcel;->writeInt(I)V
|
|
|
|
.line 120
|
|
invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {p0, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
|
|
|
|
if-eqz v2, :cond_a
|
|
|
|
const-string p0, "DatabaseUtils"
|
|
|
|
const-string v0, "Writing exception to parcel"
|
|
|
|
.line 123
|
|
invoke-static {p0, v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
|
|
:cond_a
|
|
return-void
|
|
|
|
.line 115
|
|
:cond_b
|
|
invoke-virtual {p0, p1}, Landroid/os/Parcel;->writeException(Ljava/lang/Exception;)V
|
|
|
|
const-string p0, "DatabaseUtils"
|
|
|
|
const-string v0, "Writing exception to parcel"
|
|
|
|
.line 116
|
|
invoke-static {p0, v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
|
|
|
|
return-void
|
|
.end method
|