class com.android.mtp.MtpDatabase
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.android.mtp.MtpDatabase
super_class: java.lang.Object
{
private final android.database.sqlite.SQLiteDatabase mDatabase;
descriptor: Landroid/database/sqlite/SQLiteDatabase;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.android.mtp.Mapper mMapper;
descriptor: Lcom/android/mtp/Mapper;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
android.database.sqlite.SQLiteDatabase getSQLiteDatabase();
descriptor: ()Landroid/database/sqlite/SQLiteDatabase;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/mtp/MtpDatabase;
void <init>(android.content.Context, int);
descriptor: (Landroid/content/Context;I)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new com.android.mtp.MtpDatabase$OpenHelper
dup
aload 1
iload 2
invokespecial com.android.mtp.MtpDatabase$OpenHelper.<init>:(Landroid/content/Context;I)V
astore 3
start local 3 2: aload 0
aload 3
invokevirtual com.android.mtp.MtpDatabase$OpenHelper.getWritableDatabase:()Landroid/database/sqlite/SQLiteDatabase;
putfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
3: aload 0
new com.android.mtp.Mapper
dup
aload 0
invokespecial com.android.mtp.Mapper.<init>:(Lcom/android/mtp/MtpDatabase;)V
putfield com.android.mtp.MtpDatabase.mMapper:Lcom/android/mtp/Mapper;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/android/mtp/MtpDatabase;
0 5 1 context Landroid/content/Context;
0 5 2 flags I
2 5 3 helper Lcom/android/mtp/MtpDatabase$OpenHelper;
MethodParameters:
Name Flags
context
flags
void close();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.close:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/mtp/MtpDatabase;
com.android.mtp.Mapper getMapper();
descriptor: ()Lcom/android/mtp/Mapper;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.mtp.MtpDatabase.mMapper:Lcom/android/mtp/Mapper;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/mtp/MtpDatabase;
android.database.Cursor queryRoots(android.content.res.Resources, java.lang.String[]);
descriptor: (Landroid/content/res/Resources;[Ljava/lang/String;)Landroid/database/Cursor;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/mtp/MtpDatabase;
MethodParameters:
Name Flags
resources
columnNames
android.database.Cursor queryRootDocuments(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Landroid/database/Cursor;
flags: (0x0000)
Code:
stack=8, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
1: ldc "Documents"
2: aload 1
3: ldc "row_state IN (?, ?) AND document_type = ?"
iconst_3
anewarray java.lang.Object
dup
iconst_0
4: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
5: aconst_null
6: aconst_null
7: aconst_null
8: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/android/mtp/MtpDatabase;
0 9 1 columnNames [Ljava/lang/String;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
columnNames
android.database.Cursor queryChildDocuments(java.lang.String[], java.lang.String);
descriptor: ([Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
flags: (0x0000)
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
1: ldc "Documents"
2: aload 1
3: ldc "row_state IN (?, ?) AND parent_document_id = ?"
iconst_3
anewarray java.lang.Object
dup
iconst_0
4: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 2
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
5: aconst_null
6: aconst_null
7: aconst_null
8: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/android/mtp/MtpDatabase;
0 9 1 columnNames [Ljava/lang/String;
0 9 2 parentDocumentId Ljava/lang/String;
MethodParameters:
Name Flags
columnNames
parentDocumentId
java.lang.String[] getStorageDocumentIds(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x0000)
Code:
stack=8, locals=7, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.android.mtp.MtpDatabase.createIdentifier:(Ljava/lang/String;)Lcom/android/mtp/Identifier;
getfield com.android.mtp.Identifier.mDocumentType:I
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: invokestatic com.android.internal.util.Preconditions.checkArgument:(Z)V
3: aconst_null
astore 2
aconst_null
astore 3
4: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
5: ldc "Documents"
iconst_1
anewarray java.lang.Object
dup
iconst_0
6: ldc "document_id"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
7: ldc "row_state IN (?, ?) AND parent_document_id = ? AND document_type = ?"
iconst_4
anewarray java.lang.Object
dup
iconst_0
8: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
9: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
10: aload 1
aastore
dup
iconst_3
11: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
12: invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
13: aconst_null
14: aconst_null
15: aconst_null
16: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 4
start local 4 17: aload 4
invokeinterface android.database.Cursor.getCount:()I
anewarray java.lang.String
astore 5
start local 5 18: iconst_0
istore 6
start local 6 19: goto 22
20: StackMap locals: com.android.mtp.MtpDatabase java.lang.String java.lang.Throwable java.lang.Throwable android.database.Cursor java.lang.String[] int
StackMap stack:
aload 5
iload 6
aload 4
iconst_0
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
aastore
21: iinc 6 1
StackMap locals:
StackMap stack:
22: aload 4
invokeinterface android.database.Cursor.moveToNext:()Z
ifne 20
end local 6 23: aload 5
24: aload 4
ifnull 25
aload 4
invokeinterface android.database.Cursor.close:()V
25: StackMap locals: com.android.mtp.MtpDatabase java.lang.String java.lang.Throwable java.lang.Throwable android.database.Cursor java.lang.String[]
StackMap stack: java.lang.String[]
areturn
end local 5 StackMap locals: com.android.mtp.MtpDatabase java.lang.String java.lang.Throwable java.lang.Throwable android.database.Cursor
StackMap stack: java.lang.Throwable
26: astore 2
27: aload 4
ifnull 28
aload 4
invokeinterface android.database.Cursor.close:()V
end local 4 StackMap locals:
StackMap stack:
28: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 3
aload 2
ifnonnull 30
aload 3
astore 2
goto 31
StackMap locals:
StackMap stack:
30: aload 2
aload 3
if_acmpeq 31
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
31: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/android/mtp/MtpDatabase;
0 32 1 documentId Ljava/lang/String;
17 28 4 cursor Landroid/database/Cursor;
18 26 5 ids [Ljava/lang/String;
19 23 6 i I
Exception table:
from to target type
17 24 26 any
4 25 29 any
26 29 29 any
Exceptions:
throws java.io.FileNotFoundException
MethodParameters:
Name Flags
documentId
android.database.Cursor queryDocument(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
flags: (0x0000)
Code:
stack=9, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
1: ldc "Documents"
2: aload 2
3: ldc "document_id = ?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
4: aload 1
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
5: aconst_null
6: aconst_null
7: aconst_null
8: ldc "1"
9: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/android/mtp/MtpDatabase;
0 10 1 documentId Ljava/lang/String;
0 10 2 projection [Ljava/lang/String;
MethodParameters:
Name Flags
documentId
projection
java.lang.String getDocumentIdForDevice(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0000)
Code:
stack=9, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
1: ldc "Documents"
iconst_1
anewarray java.lang.Object
dup
iconst_0
2: ldc "document_id"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
3: ldc "document_type = ? AND device_id = ?"
iconst_2
anewarray java.lang.Object
dup
iconst_0
4: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
5: aconst_null
6: aconst_null
7: aconst_null
8: ldc "1"
9: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 2
start local 2 10: aload 2
invokeinterface android.database.Cursor.moveToNext:()Z
ifeq 14
11: aload 2
iconst_0
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
astore 4
12: aload 2
invokeinterface android.database.Cursor.close:()V
13: aload 4
areturn
14: StackMap locals: android.database.Cursor
StackMap stack:
aload 2
invokeinterface android.database.Cursor.close:()V
15: aconst_null
areturn
16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
17: aload 2
invokeinterface android.database.Cursor.close:()V
18: aload 3
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/android/mtp/MtpDatabase;
0 19 1 deviceId I
10 19 2 cursor Landroid/database/Cursor;
Exception table:
from to target type
10 12 16 any
MethodParameters:
Name Flags
deviceId
com.android.mtp.Identifier getParentIdentifier(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/android/mtp/Identifier;
flags: (0x0000)
Code:
stack=9, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
1: ldc "Documents"
iconst_1
anewarray java.lang.Object
dup
iconst_0
2: ldc "parent_document_id"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
3: ldc "document_id = ?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
4: aload 1
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
5: aconst_null
6: aconst_null
7: aconst_null
8: ldc "1"
9: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 2
start local 2 10: aload 2
invokeinterface android.database.Cursor.moveToNext:()Z
ifeq 14
11: aload 0
aload 2
iconst_0
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
invokevirtual com.android.mtp.MtpDatabase.createIdentifier:(Ljava/lang/String;)Lcom/android/mtp/Identifier;
astore 4
12: aload 2
invokeinterface android.database.Cursor.close:()V
13: aload 4
areturn
14: StackMap locals: android.database.Cursor
StackMap stack:
new java.io.FileNotFoundException
dup
new java.lang.StringBuilder
dup
ldc "Cannot find a row having ID = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
16: aload 2
invokeinterface android.database.Cursor.close:()V
17: aload 3
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/android/mtp/MtpDatabase;
0 18 1 documentId Ljava/lang/String;
10 18 2 cursor Landroid/database/Cursor;
Exception table:
from to target type
10 12 15 any
14 15 15 any
Exceptions:
throws java.io.FileNotFoundException
MethodParameters:
Name Flags
documentId
java.lang.String getDeviceDocumentId(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0000)
Code:
stack=9, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
2: ldc "Documents"
iconst_1
anewarray java.lang.Object
dup
iconst_0
3: ldc "document_id"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
4: ldc "device_id = ? AND document_type = ? AND row_state != ?"
iconst_3
anewarray java.lang.Object
dup
iconst_0
5: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
6: aconst_null
7: aconst_null
8: aconst_null
9: ldc "1"
10: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 4
start local 4 11: aload 4
invokeinterface android.database.Cursor.getCount:()I
ifle 16
12: aload 4
invokeinterface android.database.Cursor.moveToNext:()Z
pop
13: aload 4
iconst_0
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
14: aload 4
ifnull 15
aload 4
invokeinterface android.database.Cursor.close:()V
15: StackMap locals: com.android.mtp.MtpDatabase int java.lang.Throwable java.lang.Throwable android.database.Cursor
StackMap stack: java.lang.String
areturn
16: StackMap locals:
StackMap stack:
new java.io.FileNotFoundException
dup
new java.lang.StringBuilder
dup
ldc "The device ID not found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 2
18: aload 4
ifnull 19
aload 4
invokeinterface android.database.Cursor.close:()V
end local 4 StackMap locals:
StackMap stack:
19: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 3
aload 2
ifnonnull 21
aload 3
astore 2
goto 22
StackMap locals:
StackMap stack:
21: aload 2
aload 3
if_acmpeq 22
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
22: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/android/mtp/MtpDatabase;
0 23 1 deviceId I
11 19 4 cursor Landroid/database/Cursor;
Exception table:
from to target type
11 14 17 any
16 17 17 any
1 15 20 any
16 20 20 any
Exceptions:
throws java.io.FileNotFoundException
MethodParameters:
Name Flags
deviceId
java.lang.String putNewDocument(int, java.lang.String, int[], android.mtp.MtpObjectInfo, long);
descriptor: (ILjava/lang/String;[ILandroid/mtp/MtpObjectInfo;J)Ljava/lang/String;
flags: (0x0000)
Code:
stack=7, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new android.content.ContentValues
dup
invokespecial android.content.ContentValues.<init>:()V
astore 7
start local 7 1: aload 7
iload 1
aload 2
aload 3
aload 4
lload 5
2: invokestatic com.android.mtp.MtpDatabase.getObjectDocumentValues:(Landroid/content/ContentValues;ILjava/lang/String;[ILandroid/mtp/MtpObjectInfo;J)V
3: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.beginTransaction:()V
4: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
ldc "Documents"
aconst_null
aload 7
invokevirtual android.database.sqlite.SQLiteDatabase.insert:(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
lstore 8
start local 8 5: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.setTransactionSuccessful:()V
6: lload 8
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
astore 11
7: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
8: aload 11
areturn
end local 8 9: StackMap locals: com.android.mtp.MtpDatabase int java.lang.String int[] android.mtp.MtpObjectInfo long android.content.ContentValues
StackMap stack: java.lang.Throwable
astore 10
10: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
11: aload 10
athrow
end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/android/mtp/MtpDatabase;
0 12 1 deviceId I
0 12 2 parentDocumentId Ljava/lang/String;
0 12 3 operationsSupported [I
0 12 4 info Landroid/mtp/MtpObjectInfo;
0 12 5 size J
1 12 7 values Landroid/content/ContentValues;
5 9 8 id J
Exception table:
from to target type
4 7 9 any
MethodParameters:
Name Flags
deviceId
parentDocumentId
operationsSupported
info
size
void deleteDocument(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "document_id = ?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
invokevirtual com.android.mtp.MtpDatabase.deleteDocumentsAndRootsRecursively:(Ljava/lang/String;[Ljava/lang/String;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/mtp/MtpDatabase;
0 2 1 documentId Ljava/lang/String;
MethodParameters:
Name Flags
documentId
com.android.mtp.Identifier createIdentifier(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/android/mtp/Identifier;
flags: (0x0000)
Code:
stack=9, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
1: ldc "Documents"
iconst_4
anewarray java.lang.Object
dup
iconst_0
2: ldc "device_id"
aastore
dup
iconst_1
3: ldc "storage_id"
aastore
dup
iconst_2
4: ldc "object_handle"
aastore
dup
iconst_3
5: ldc "document_type"
aastore
6: invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
7: ldc "document_id = ? AND row_state IN (?, ?)"
iconst_3
anewarray java.lang.Object
dup
iconst_0
8: aload 1
aastore
dup
iconst_1
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
9: aconst_null
10: aconst_null
11: aconst_null
12: ldc "1"
13: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 2
start local 2 14: aload 2
invokeinterface android.database.Cursor.getCount:()I
ifne 16
15: new java.io.FileNotFoundException
dup
new java.lang.StringBuilder
dup
ldc "ID \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" is not found."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals: android.database.Cursor
StackMap stack:
aload 2
invokeinterface android.database.Cursor.moveToNext:()Z
pop
17: new com.android.mtp.Identifier
dup
18: aload 2
iconst_0
invokeinterface android.database.Cursor.getInt:(I)I
19: aload 2
iconst_1
invokeinterface android.database.Cursor.getInt:(I)I
20: aload 2
iconst_2
invokeinterface android.database.Cursor.getInt:(I)I
21: aload 1
22: aload 2
iconst_3
invokeinterface android.database.Cursor.getInt:(I)I
23: invokespecial com.android.mtp.Identifier.<init>:(IIILjava/lang/String;I)V
astore 4
24: aload 2
invokeinterface android.database.Cursor.close:()V
25: aload 4
areturn
26: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
27: aload 2
invokeinterface android.database.Cursor.close:()V
28: aload 3
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/android/mtp/MtpDatabase;
0 29 1 documentId Ljava/lang/String;
14 29 2 cursor Landroid/database/Cursor;
Exception table:
from to target type
14 24 26 any
Exceptions:
throws java.io.FileNotFoundException
MethodParameters:
Name Flags
documentId
boolean deleteDocumentsAndRootsRecursively(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=8, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.beginTransaction:()V
1: iconst_0
istore 3
start local 3 2: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
3: ldc "Documents"
iconst_1
anewarray java.lang.Object
dup
iconst_0
4: ldc "document_id"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
5: aload 1
6: aload 2
7: aconst_null
8: aconst_null
9: aconst_null
10: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 4
start local 4 11: goto 18
12: StackMap locals: int android.database.Cursor
StackMap stack:
aload 0
13: ldc "parent_document_id = ?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
14: aload 4
iconst_0
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
15: invokevirtual com.android.mtp.MtpDatabase.deleteDocumentsAndRootsRecursively:(Ljava/lang/String;[Ljava/lang/String;)Z
16: ifeq 18
17: iconst_1
istore 3
18: StackMap locals:
StackMap stack:
aload 4
invokeinterface android.database.Cursor.moveToNext:()Z
ifne 12
19: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 5
21: aload 4
invokeinterface android.database.Cursor.close:()V
22: aload 5
athrow
23: StackMap locals:
StackMap stack:
aload 4
invokeinterface android.database.Cursor.close:()V
24: aload 0
aload 1
aload 2
invokevirtual com.android.mtp.MtpDatabase.deleteDocumentsAndRoots:(Ljava/lang/String;[Ljava/lang/String;)Z
ifeq 26
25: iconst_1
istore 3
26: StackMap locals:
StackMap stack:
aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.setTransactionSuccessful:()V
27: iload 3
istore 7
28: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
29: iload 7
ireturn
end local 4 end local 3 30: StackMap locals: com.android.mtp.MtpDatabase java.lang.String java.lang.String[]
StackMap stack: java.lang.Throwable
astore 6
31: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
32: aload 6
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lcom/android/mtp/MtpDatabase;
0 33 1 selection Ljava/lang/String;
0 33 2 args [Ljava/lang/String;
2 30 3 changed Z
11 30 4 cursor Landroid/database/Cursor;
Exception table:
from to target type
11 20 20 any
1 28 30 any
MethodParameters:
Name Flags
selection
args
boolean disconnectDocumentsRecursively(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=8, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.beginTransaction:()V
1: iconst_0
istore 3
start local 3 2: aconst_null
astore 4
aconst_null
astore 5
3: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
4: ldc "Documents"
iconst_1
anewarray java.lang.Object
dup
iconst_0
5: ldc "document_id"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
6: aload 1
7: aload 2
8: aconst_null
9: aconst_null
10: aconst_null
11: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 6
start local 6 12: goto 19
13: StackMap locals: com.android.mtp.MtpDatabase java.lang.String java.lang.String[] int java.lang.Throwable java.lang.Throwable android.database.Cursor
StackMap stack:
aload 0
14: ldc "parent_document_id = ?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
15: aload 6
iconst_0
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
16: invokevirtual com.android.mtp.MtpDatabase.disconnectDocumentsRecursively:(Ljava/lang/String;[Ljava/lang/String;)Z
17: ifeq 19
18: iconst_1
istore 3
19: StackMap locals:
StackMap stack:
aload 6
invokeinterface android.database.Cursor.moveToNext:()Z
ifne 13
20: aload 6
ifnull 26
aload 6
invokeinterface android.database.Cursor.close:()V
goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 4
aload 6
ifnull 22
aload 6
invokeinterface android.database.Cursor.close:()V
end local 6 StackMap locals:
StackMap stack:
22: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 5
aload 4
ifnonnull 24
aload 5
astore 4
goto 25
StackMap locals:
StackMap stack:
24: aload 4
aload 5
if_acmpeq 25
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 4
athrow
26: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.android.mtp.MtpDatabase.disconnectDocuments:(Ljava/lang/String;[Ljava/lang/String;)Z
ifeq 28
27: iconst_1
istore 3
28: StackMap locals:
StackMap stack:
aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.setTransactionSuccessful:()V
29: iload 3
istore 8
30: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
31: iload 8
ireturn
end local 3 32: StackMap locals: com.android.mtp.MtpDatabase java.lang.String java.lang.String[]
StackMap stack: java.lang.Throwable
astore 7
33: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
34: aload 7
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lcom/android/mtp/MtpDatabase;
0 35 1 selection Ljava/lang/String;
0 35 2 args [Ljava/lang/String;
2 32 3 changed Z
12 22 6 cursor Landroid/database/Cursor;
Exception table:
from to target type
12 20 21 any
3 23 23 any
1 30 32 any
MethodParameters:
Name Flags
selection
args
boolean deleteDocumentsAndRoots(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=12, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.beginTransaction:()V
1: iconst_0
istore 3
start local 3 2: iload 3
aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
3: ldc "RootExtra"
4: new java.lang.StringBuilder
dup
ldc "root_id IN ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: iconst_0
6: ldc "Documents"
7: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "document_id"
aastore
8: aload 1
9: aconst_null
10: aconst_null
11: aconst_null
12: aconst_null
13: invokestatic android.database.sqlite.SQLiteQueryBuilder.buildQueryString:(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: aload 2
17: invokevirtual android.database.sqlite.SQLiteDatabase.delete:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
iadd
istore 3
18: iload 3
aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
ldc "Documents"
aload 1
aload 2
invokevirtual android.database.sqlite.SQLiteDatabase.delete:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
iadd
istore 3
19: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.setTransactionSuccessful:()V
20: iload 3
ifeq 21
iconst_1
goto 22
StackMap locals: int
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: istore 5
23: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
24: iload 5
ireturn
end local 3 25: StackMap locals: com.android.mtp.MtpDatabase java.lang.String java.lang.String[]
StackMap stack: java.lang.Throwable
astore 4
26: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
27: aload 4
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/android/mtp/MtpDatabase;
0 28 1 selection Ljava/lang/String;
0 28 2 args [Ljava/lang/String;
2 25 3 deleted I
Exception table:
from to target type
1 23 25 any
MethodParameters:
Name Flags
selection
args
boolean disconnectDocuments(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.beginTransaction:()V
1: new android.content.ContentValues
dup
invokespecial android.content.ContentValues.<init>:()V
astore 3
start local 3 2: aload 3
ldc "row_state"
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Integer;)V
3: aload 3
ldc "device_id"
invokevirtual android.content.ContentValues.putNull:(Ljava/lang/String;)V
4: aload 3
ldc "storage_id"
invokevirtual android.content.ContentValues.putNull:(Ljava/lang/String;)V
5: aload 3
ldc "object_handle"
invokevirtual android.content.ContentValues.putNull:(Ljava/lang/String;)V
6: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
ldc "Documents"
aload 3
aload 1
aload 2
invokevirtual android.database.sqlite.SQLiteDatabase.update:(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
ifeq 7
iconst_1
goto 8
StackMap locals: android.content.ContentValues
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 4
start local 4 9: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.setTransactionSuccessful:()V
10: iload 4
istore 6
11: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
12: iload 6
ireturn
end local 4 end local 3 13: StackMap locals: com.android.mtp.MtpDatabase java.lang.String java.lang.String[]
StackMap stack: java.lang.Throwable
astore 5
14: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
15: aload 5
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/android/mtp/MtpDatabase;
0 16 1 selection Ljava/lang/String;
0 16 2 args [Ljava/lang/String;
2 13 3 values Landroid/content/ContentValues;
9 13 4 updated Z
Exception table:
from to target type
1 11 13 any
MethodParameters:
Name Flags
selection
args
int getRowState(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0000)
Code:
stack=8, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
2: ldc "Documents"
iconst_1
anewarray java.lang.Object
dup
iconst_0
3: ldc "row_state"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
4: ldc "document_id = ?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
5: aload 1
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
6: aconst_null
7: aconst_null
8: aconst_null
9: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 4
start local 4 10: aload 4
invokeinterface android.database.Cursor.getCount:()I
ifne 12
11: new java.io.FileNotFoundException
dup
invokespecial java.io.FileNotFoundException.<init>:()V
athrow
12: StackMap locals: java.lang.Throwable java.lang.Throwable android.database.Cursor
StackMap stack:
aload 4
invokeinterface android.database.Cursor.moveToNext:()Z
pop
13: aload 4
iconst_0
invokeinterface android.database.Cursor.getInt:(I)I
14: aload 4
ifnull 15
aload 4
invokeinterface android.database.Cursor.close:()V
15: StackMap locals:
StackMap stack: int
ireturn
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 2
17: aload 4
ifnull 18
aload 4
invokeinterface android.database.Cursor.close:()V
end local 4 StackMap locals:
StackMap stack:
18: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
19: astore 3
aload 2
ifnonnull 20
aload 3
astore 2
goto 21
StackMap locals:
StackMap stack:
20: aload 2
aload 3
if_acmpeq 21
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
21: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/android/mtp/MtpDatabase;
0 22 1 documentId Ljava/lang/String;
10 18 4 cursor Landroid/database/Cursor;
Exception table:
from to target type
10 14 16 any
1 15 19 any
16 19 19 any
Exceptions:
throws java.io.FileNotFoundException
MethodParameters:
Name Flags
documentId
void writeRowSnapshot(java.lang.String, android.content.ContentValues);
descriptor: (Ljava/lang/String;Landroid/content/ContentValues;)V
flags: (0x0000)
Code:
stack=9, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
aconst_null
astore 4
1: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
2: getstatic com.android.mtp.MtpDatabaseConstants.JOIN_ROOTS:Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
3: ldc "*"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
4: ldc "document_id = ?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
5: aload 1
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
6: aconst_null
7: aconst_null
8: aconst_null
9: ldc "1"
10: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 5
start local 5 11: aload 5
invokeinterface android.database.Cursor.getCount:()I
ifne 13
12: new java.io.FileNotFoundException
dup
invokespecial java.io.FileNotFoundException.<init>:()V
athrow
13: StackMap locals: java.lang.Throwable java.lang.Throwable android.database.Cursor
StackMap stack:
aload 5
invokeinterface android.database.Cursor.moveToNext:()Z
pop
14: aload 2
invokevirtual android.content.ContentValues.clear:()V
15: aload 5
aload 2
invokestatic android.database.DatabaseUtils.cursorRowToContentValues:(Landroid/database/Cursor;Landroid/content/ContentValues;)V
16: aload 5
ifnull 22
aload 5
invokeinterface android.database.Cursor.close:()V
goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 3
aload 5
ifnull 18
aload 5
invokeinterface android.database.Cursor.close:()V
end local 5 StackMap locals:
StackMap stack:
18: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
19: astore 4
aload 3
ifnonnull 20
aload 4
astore 3
goto 21
StackMap locals:
StackMap stack:
20: aload 3
aload 4
if_acmpeq 21
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
21: aload 3
athrow
22: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/android/mtp/MtpDatabase;
0 23 1 documentId Ljava/lang/String;
0 23 2 values Landroid/content/ContentValues;
11 18 5 cursor Landroid/database/Cursor;
Exception table:
from to target type
11 16 17 any
1 19 19 any
Exceptions:
throws java.io.FileNotFoundException
MethodParameters:
Name Flags
documentId
values
void updateObject(java.lang.String, int, java.lang.String, int[], android.mtp.MtpObjectInfo, java.lang.Long);
descriptor: (Ljava/lang/String;ILjava/lang/String;[ILandroid/mtp/MtpObjectInfo;Ljava/lang/Long;)V
flags: (0x0000)
Code:
stack=8, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: new android.content.ContentValues
dup
invokespecial android.content.ContentValues.<init>:()V
astore 7
start local 7 1: aload 7
iload 2
aload 3
aload 4
aload 5
aload 6
invokevirtual java.lang.Long.longValue:()J
invokestatic com.android.mtp.MtpDatabase.getObjectDocumentValues:(Landroid/content/ContentValues;ILjava/lang/String;[ILandroid/mtp/MtpObjectInfo;J)V
2: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.beginTransaction:()V
3: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
4: ldc "Documents"
5: aload 7
6: ldc "document_id = ?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
7: aload 1
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
8: invokevirtual android.database.sqlite.SQLiteDatabase.update:(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
pop
9: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.setTransactionSuccessful:()V
10: goto 14
StackMap locals: com.android.mtp.MtpDatabase java.lang.String int java.lang.String int[] android.mtp.MtpObjectInfo java.lang.Long android.content.ContentValues
StackMap stack: java.lang.Throwable
11: astore 8
12: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
13: aload 8
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
15: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/android/mtp/MtpDatabase;
0 16 1 documentId Ljava/lang/String;
0 16 2 deviceId I
0 16 3 parentId Ljava/lang/String;
0 16 4 operationsSupported [I
0 16 5 info Landroid/mtp/MtpObjectInfo;
0 16 6 size Ljava/lang/Long;
1 16 7 values Landroid/content/ContentValues;
Exception table:
from to target type
3 11 11 any
MethodParameters:
Name Flags
documentId
deviceId
parentId
operationsSupported
info
size
com.android.mtp.Identifier getUnmappedDocumentsParent(int);
descriptor: (I)Lcom/android/mtp/Identifier;
flags: (0x0000)
Code:
stack=9, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
2: ldc "Documents AS child INNER JOIN Documents AS parent ON child.parent_document_id = parent.document_id"
iconst_5
anewarray java.lang.Object
dup
iconst_0
3: ldc "parent.device_id"
aastore
dup
iconst_1
4: ldc "parent.storage_id"
aastore
dup
iconst_2
5: ldc "parent.object_handle"
aastore
dup
iconst_3
6: ldc "parent.document_id"
aastore
dup
iconst_4
7: ldc "parent.document_type"
aastore
8: invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
9: ldc "parent.device_id = ? AND parent.row_state IN (?, ?) AND parent.document_type != ? AND child.row_state = ?"
iconst_5
anewarray java.lang.Object
dup
iconst_0
10: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
11: iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
12: invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
13: aconst_null
14: aconst_null
15: aconst_null
16: ldc "1"
17: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 4
start local 4 18: aload 4
invokeinterface android.database.Cursor.getCount:()I
ifne 21
19: aload 4
ifnull 20
aload 4
invokeinterface android.database.Cursor.close:()V
20: StackMap locals: java.lang.Throwable java.lang.Throwable android.database.Cursor
StackMap stack:
aconst_null
areturn
21: StackMap locals:
StackMap stack:
aload 4
invokeinterface android.database.Cursor.moveToNext:()Z
pop
22: new com.android.mtp.Identifier
dup
23: aload 4
iconst_0
invokeinterface android.database.Cursor.getInt:(I)I
24: aload 4
iconst_1
invokeinterface android.database.Cursor.getInt:(I)I
25: aload 4
iconst_2
invokeinterface android.database.Cursor.getInt:(I)I
26: aload 4
iconst_3
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
27: aload 4
iconst_4
invokeinterface android.database.Cursor.getInt:(I)I
28: invokespecial com.android.mtp.Identifier.<init>:(IIILjava/lang/String;I)V
29: aload 4
ifnull 30
aload 4
invokeinterface android.database.Cursor.close:()V
30: StackMap locals:
StackMap stack: com.android.mtp.Identifier
areturn
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 2
32: aload 4
ifnull 33
aload 4
invokeinterface android.database.Cursor.close:()V
end local 4 StackMap locals:
StackMap stack:
33: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
34: astore 3
aload 2
ifnonnull 35
aload 3
astore 2
goto 36
StackMap locals:
StackMap stack:
35: aload 2
aload 3
if_acmpeq 36
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
36: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/android/mtp/MtpDatabase;
0 37 1 deviceId I
18 33 4 cursor Landroid/database/Cursor;
Exception table:
from to target type
18 19 31 any
21 29 31 any
1 20 34 any
21 30 34 any
31 34 34 any
MethodParameters:
Name Flags
deviceId
void cleanDatabase(android.net.Uri[]);
descriptor: ([Landroid/net/Uri;)V
flags: (0x0000)
Code:
stack=8, locals=12, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.beginTransaction:()V
1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 2
start local 2 2: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 30
StackMap locals: com.android.mtp.MtpDatabase android.net.Uri[] java.util.Set top int int android.net.Uri[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
invokestatic android.provider.DocumentsContract.getDocumentId:(Landroid/net/Uri;)Ljava/lang/String;
astore 7
start local 7 5: goto 28
6: StackMap locals: com.android.mtp.MtpDatabase android.net.Uri[] java.util.Set android.net.Uri int int android.net.Uri[] java.lang.String
StackMap stack:
aload 2
aload 7
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 8
7: goto 29
8: StackMap locals:
StackMap stack:
aload 2
aload 7
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
9: aconst_null
astore 8
aconst_null
astore 9
10: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
11: ldc "Documents"
iconst_1
anewarray java.lang.Object
dup
iconst_0
12: ldc "parent_document_id"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
13: ldc "document_id = ?"
iconst_1
anewarray java.lang.Object
dup
iconst_0
14: aload 7
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
15: aconst_null
16: aconst_null
17: aconst_null
18: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 10
start local 10 19: aload 10
invokeinterface android.database.Cursor.moveToNext:()Z
ifeq 20
aload 10
iconst_0
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
goto 21
StackMap locals: java.lang.Throwable java.lang.Throwable android.database.Cursor
StackMap stack:
20: aconst_null
StackMap locals:
StackMap stack: java.lang.String
21: astore 7
22: aload 10
ifnull 28
aload 10
invokeinterface android.database.Cursor.close:()V
goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 8
aload 10
ifnull 24
aload 10
invokeinterface android.database.Cursor.close:()V
end local 10 StackMap locals:
StackMap stack:
24: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
25: astore 9
aload 8
ifnonnull 26
aload 9
astore 8
goto 27
StackMap locals:
StackMap stack:
26: aload 8
aload 9
if_acmpeq 27
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
27: aload 8
athrow
28: StackMap locals:
StackMap stack:
aload 7
ifnonnull 6
end local 7 end local 3 29: StackMap locals: com.android.mtp.MtpDatabase android.net.Uri[] java.util.Set top int int android.net.Uri[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
30: iload 4
iload 5
if_icmplt 3
31: aload 0
32: new java.lang.StringBuilder
dup
ldc "document_id NOT IN "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokestatic com.android.mtp.MtpDatabase.getIdList:(Ljava/util/Set;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aconst_null
33: invokevirtual com.android.mtp.MtpDatabase.deleteDocumentsAndRoots:(Ljava/lang/String;[Ljava/lang/String;)Z
pop
34: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.setTransactionSuccessful:()V
end local 2 35: goto 39
StackMap locals: com.android.mtp.MtpDatabase android.net.Uri[]
StackMap stack: java.lang.Throwable
36: astore 11
37: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
38: aload 11
athrow
39: StackMap locals:
StackMap stack:
aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
40: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lcom/android/mtp/MtpDatabase;
0 41 1 outgoingPersistedUris [Landroid/net/Uri;
2 35 2 ids Ljava/util/Set<Ljava/lang/String;>;
4 29 3 uri Landroid/net/Uri;
5 29 7 documentId Ljava/lang/String;
19 24 10 cursor Landroid/database/Cursor;
Exception table:
from to target type
19 22 23 any
10 25 25 any
1 36 36 any
MethodParameters:
Name Flags
outgoingPersistedUris
int getLastBootCount();
descriptor: ()I
flags: (0x0000)
Code:
stack=8, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
2: ldc "LastBootCount"
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "value"
aastore
invokestatic com.android.mtp.MtpDatabase.strings:([Ljava/lang/Object;)[Ljava/lang/String;
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
3: invokevirtual android.database.sqlite.SQLiteDatabase.query:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
astore 3
start local 3 4: aload 3
invokeinterface android.database.Cursor.moveToNext:()Z
ifeq 8
5: aload 3
iconst_0
invokeinterface android.database.Cursor.getInt:(I)I
6: aload 3
ifnull 7
aload 3
invokeinterface android.database.Cursor.close:()V
7: StackMap locals: com.android.mtp.MtpDatabase java.lang.Throwable java.lang.Throwable android.database.Cursor
StackMap stack: int
ireturn
8: StackMap locals:
StackMap stack:
aload 3
ifnull 9
aload 3
invokeinterface android.database.Cursor.close:()V
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 1
11: aload 3
ifnull 12
aload 3
invokeinterface android.database.Cursor.close:()V
end local 3 StackMap locals:
StackMap stack:
12: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
aload 1
ifnonnull 14
aload 2
astore 1
goto 15
StackMap locals:
StackMap stack:
14: aload 1
aload 2
if_acmpeq 15
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/android/mtp/MtpDatabase;
4 12 3 cursor Landroid/database/Cursor;
Exception table:
from to target type
4 6 10 any
1 7 13 any
8 9 13 any
10 13 13 any
void setLastBootCount(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 1
ldc "Boot count must not be negative."
invokestatic com.android.internal.util.Preconditions.checkArgumentNonnegative:(ILjava/lang/String;)I
pop
1: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.beginTransaction:()V
2: new android.content.ContentValues
dup
invokespecial android.content.ContentValues.<init>:()V
astore 2
start local 2 3: aload 2
ldc "value"
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Integer;)V
4: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
ldc "LastBootCount"
aconst_null
aconst_null
invokevirtual android.database.sqlite.SQLiteDatabase.delete:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
pop
5: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
ldc "LastBootCount"
aconst_null
aload 2
invokevirtual android.database.sqlite.SQLiteDatabase.insert:(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
pop2
6: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.setTransactionSuccessful:()V
end local 2 7: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 3
9: aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
10: aload 3
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield com.android.mtp.MtpDatabase.mDatabase:Landroid/database/sqlite/SQLiteDatabase;
invokevirtual android.database.sqlite.SQLiteDatabase.endTransaction:()V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/android/mtp/MtpDatabase;
0 13 1 value I
3 7 2 values Landroid/content/ContentValues;
Exception table:
from to target type
2 8 8 any
MethodParameters:
Name Flags
value
static void deleteDatabase(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "database"
invokevirtual android.content.Context.deleteDatabase:(Ljava/lang/String;)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Landroid/content/Context;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
context
static void getDeviceDocumentValues(android.content.ContentValues, android.content.ContentValues, com.android.mtp.MtpDeviceRecord);
descriptor: (Landroid/content/ContentValues;Landroid/content/ContentValues;Lcom/android/mtp/MtpDeviceRecord;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
values
extraValues
device
static void getStorageDocumentValues(android.content.ContentValues, android.content.ContentValues, java.lang.String, int[], com.android.mtp.MtpRoot);
descriptor: (Landroid/content/ContentValues;Landroid/content/ContentValues;Ljava/lang/String;[ILcom/android/mtp/MtpRoot;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=5
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
values
extraValues
parentDocumentId
operationsSupported
root
static void getObjectDocumentValues(android.content.ContentValues, int, java.lang.String, int[], android.mtp.MtpObjectInfo, long);
descriptor: (Landroid/content/ContentValues;ILjava/lang/String;[ILandroid/mtp/MtpObjectInfo;J)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokevirtual android.content.ContentValues.clear:()V
1: aload 4
invokestatic com.android.mtp.MtpDatabase.getMimeType:(Landroid/mtp/MtpObjectInfo;)Ljava/lang/String;
astore 7
start local 7 2: aload 0
ldc "device_id"
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Integer;)V
3: aload 0
ldc "storage_id"
aload 4
invokevirtual android.mtp.MtpObjectInfo.getStorageId:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Integer;)V
4: aload 0
ldc "object_handle"
aload 4
invokevirtual android.mtp.MtpObjectInfo.getObjectHandle:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Integer;)V
5: aload 0
ldc "parent_document_id"
aload 2
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/String;)V
6: aload 0
ldc "row_state"
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Integer;)V
7: aload 0
ldc "document_type"
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Integer;)V
8: aload 0
ldc "mime_type"
aload 7
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/String;)V
9: aload 0
ldc "_display_name"
aload 4
invokevirtual android.mtp.MtpObjectInfo.getName:()Ljava/lang/String;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/String;)V
10: aload 0
ldc "summary"
invokevirtual android.content.ContentValues.putNull:(Ljava/lang/String;)V
11: aload 0
12: ldc "last_modified"
13: aload 4
invokevirtual android.mtp.MtpObjectInfo.getDateModified:()J
lconst_0
lcmp
ifeq 14
aload 4
invokevirtual android.mtp.MtpObjectInfo.getDateModified:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
goto 15
StackMap locals: android.content.ContentValues int java.lang.String int[] android.mtp.MtpObjectInfo long java.lang.String
StackMap stack: android.content.ContentValues java.lang.String
14: aconst_null
15: StackMap locals: android.content.ContentValues int java.lang.String int[] android.mtp.MtpObjectInfo long java.lang.String
StackMap stack: android.content.ContentValues java.lang.String java.lang.Long
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Long;)V
16: aload 0
ldc "icon"
invokevirtual android.content.ContentValues.putNull:(Ljava/lang/String;)V
17: aload 0
ldc "flags"
18: aload 3
aload 7
aload 4
invokevirtual android.mtp.MtpObjectInfo.getThumbCompressedSizeLong:()J
19: aload 4
invokevirtual android.mtp.MtpObjectInfo.getProtectionStatus:()I
iconst_2
20: invokestatic com.android.mtp.MtpDatabase.getDocumentFlags:([ILjava/lang/String;JII)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Integer;)V
21: lload 5
lconst_0
lcmp
iflt 24
22: aload 0
ldc "_size"
lload 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual android.content.ContentValues.put:(Ljava/lang/String;Ljava/lang/Long;)V
23: goto 25
24: StackMap locals:
StackMap stack:
aload 0
ldc "_size"
invokevirtual android.content.ContentValues.putNull:(Ljava/lang/String;)V
25: StackMap locals:
StackMap stack:
return
end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 values Landroid/content/ContentValues;
0 26 1 deviceId I
0 26 2 parentId Ljava/lang/String;
0 26 3 operationsSupported [I
0 26 4 info Landroid/mtp/MtpObjectInfo;
0 26 5 size J
2 26 7 mimeType Ljava/lang/String;
MethodParameters:
Name Flags
values
deviceId
parentId
operationsSupported
info
size
private static java.lang.String getMimeType(android.mtp.MtpObjectInfo);
descriptor: (Landroid/mtp/MtpObjectInfo;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual android.mtp.MtpObjectInfo.getFormat:()I
sipush 12289
if_icmpne 2
1: ldc "vnd.android.document/directory"
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.mtp.MtpObjectInfo.getFormat:()I
invokestatic android.media.MediaFile.getMimeTypeForFormatCode:(I)Ljava/lang/String;
astore 1
start local 1 3: aload 0
invokevirtual android.mtp.MtpObjectInfo.getName:()Ljava/lang/String;
invokestatic android.media.MediaFile.getMimeTypeForFile:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 4: aload 2
ifnull 7
5: ldc ""
aload 2
invokestatic android.media.MediaFile.getFormatCode:(Ljava/lang/String;Ljava/lang/String;)I
aload 0
invokevirtual android.mtp.MtpObjectInfo.getFormat:()I
if_icmpne 7
6: aload 2
areturn
7: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 1
ifnull 9
8: aload 1
areturn
9: StackMap locals:
StackMap stack:
aload 2
ifnull 11
10: aload 2
areturn
11: StackMap locals:
StackMap stack:
ldc "application/octet-stream"
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 info Landroid/mtp/MtpObjectInfo;
3 12 1 formatCodeMimeType Ljava/lang/String;
4 12 2 mediaFileMimeType Ljava/lang/String;
MethodParameters:
Name Flags
info
private static int getRootFlags(int[]);
descriptor: ([I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: bipush 18
istore 1
start local 1 1: aload 0
invokestatic com.android.mtp.MtpDeviceRecord.isWritingSupported:([I)Z
ifeq 3
2: iload 1
iconst_1
ior
istore 1
3: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 operationsSupported [I
1 4 1 rootFlag I
MethodParameters:
Name Flags
operationsSupported
private static int getDocumentFlags(int[], java.lang.String, long, int, int);
descriptor: ([ILjava/lang/String;JII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: aload 1
ldc "vnd.android.document/directory"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
2: aload 0
invokestatic com.android.mtp.MtpDeviceRecord.isWritingSupported:([I)Z
ifeq 5
3: iload 4
ifne 5
4: iload 6
iconst_2
ior
istore 6
5: StackMap locals: int
StackMap stack:
aload 0
sipush 4107
6: invokestatic com.android.mtp.MtpDeviceRecord.isSupported:([II)Z
7: ifeq 12
8: iload 4
ifeq 10
9: iload 4
ldc 32771
if_icmpne 12
10: StackMap locals:
StackMap stack:
iload 5
iconst_2
if_icmpne 12
11: iload 6
iconst_4
ior
istore 6
12: StackMap locals:
StackMap stack:
aload 1
ldc "vnd.android.document/directory"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
13: aload 0
invokestatic com.android.mtp.MtpDeviceRecord.isWritingSupported:([I)Z
ifeq 16
14: iload 4
ifne 16
15: iload 6
bipush 8
ior
istore 6
16: StackMap locals:
StackMap stack:
aload 1
invokestatic android.provider.MetadataReader.isSupportedMimeType:(Ljava/lang/String;)Z
ifeq 18
17: iload 6
ldc 131072
ior
istore 6
18: StackMap locals:
StackMap stack:
lload 2
lconst_0
lcmp
ifle 20
19: iload 6
iconst_1
ior
istore 6
20: StackMap locals:
StackMap stack:
iload 6
ireturn
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 operationsSupported [I
0 21 1 mimeType Ljava/lang/String;
0 21 2 thumbnailSize J
0 21 4 protectionState I
0 21 5 documentType I
1 21 6 flag I
MethodParameters:
Name Flags
operationsSupported
mimeType
thumbnailSize
protectionState
documentType
static java.lang.String[] strings(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)[Ljava/lang/String;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
arraylength
anewarray java.lang.String
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: java.lang.String[] int
StackMap stack:
aload 1
iload 2
aload 0
iload 2
aaload
invokestatic java.util.Objects.toString:(Ljava/lang/Object;)Ljava/lang/String;
aastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
arraylength
if_icmplt 3
end local 2 6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 args [Ljava/lang/Object;
1 7 1 results [Ljava/lang/String;
2 6 2 i I
MethodParameters:
Name Flags
args
static void putValuesToCursor(android.content.ContentValues, android.database.MatrixCursor);
descriptor: (Landroid/content/ContentValues;Landroid/database/MatrixCursor;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual android.database.MatrixCursor.newRow:()Landroid/database/MatrixCursor$RowBuilder;
astore 2
start local 2 1: aload 1
invokevirtual android.database.MatrixCursor.getColumnNames:()[Ljava/lang/String;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: android.content.ContentValues android.database.MatrixCursor android.database.MatrixCursor$RowBuilder top int int java.lang.String[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 2
aload 0
aload 3
invokevirtual android.content.ContentValues.get:(Ljava/lang/String;)Ljava/lang/Object;
invokevirtual android.database.MatrixCursor$RowBuilder.add:(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
pop
end local 3 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 2
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 values Landroid/content/ContentValues;
0 7 1 cursor Landroid/database/MatrixCursor;
1 7 2 row Landroid/database/MatrixCursor$RowBuilder;
3 4 3 name Ljava/lang/String;
MethodParameters:
Name Flags
values
cursor
private static java.lang.String getIdList(java.util.Set<java.lang.String>);
descriptor: (Ljava/util/Set;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: ldc "("
astore 1
start local 1 1: aload 0
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: java.util.Set java.lang.String top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 3: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
if_icmple 5
4: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
5: StackMap locals: java.util.Set java.lang.String java.lang.String java.util.Iterator
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
end local 2 6: StackMap locals: java.util.Set java.lang.String top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
8: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 ids Ljava/util/Set<Ljava/lang/String;>;
1 9 1 result Ljava/lang/String;
3 6 2 id Ljava/lang/String;
Signature: (Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
ids
}
SourceFile: "MtpDatabase.java"
NestMembers:
com.android.mtp.MtpDatabase$OpenHelper
InnerClasses:
public RowBuilder = android.database.MatrixCursor$RowBuilder of android.database.MatrixCursor
private OpenHelper = com.android.mtp.MtpDatabase$OpenHelper of com.android.mtp.MtpDatabase