class android.media.RingtoneManager$NewRingtoneScanner implements java.io.Closeable, android.media.MediaScannerConnection$MediaScannerConnectionClient
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.media.RingtoneManager$NewRingtoneScanner
super_class: java.lang.Object
{
private android.media.MediaScannerConnection mMediaScannerConnection;
descriptor: Landroid/media/MediaScannerConnection;
flags: (0x0002) ACC_PRIVATE
private java.io.File mFile;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private java.util.concurrent.LinkedBlockingQueue<android.net.Uri> mQueue;
descriptor: Ljava/util/concurrent/LinkedBlockingQueue;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/LinkedBlockingQueue<Landroid/net/Uri;>;
final android.media.RingtoneManager this$0;
descriptor: Landroid/media/RingtoneManager;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(android.media.RingtoneManager, java.io.File);
descriptor: (Landroid/media/RingtoneManager;Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield android.media.RingtoneManager$NewRingtoneScanner.this$0:Landroid/media/RingtoneManager;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.LinkedBlockingQueue
dup
iconst_1
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:(I)V
putfield android.media.RingtoneManager$NewRingtoneScanner.mQueue:Ljava/util/concurrent/LinkedBlockingQueue;
2: aload 0
aload 2
putfield android.media.RingtoneManager$NewRingtoneScanner.mFile:Ljava/io/File;
3: aload 0
new android.media.MediaScannerConnection
dup
aload 1
getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
aload 0
invokespecial android.media.MediaScannerConnection.<init>:(Landroid/content/Context;Landroid/media/MediaScannerConnection$MediaScannerConnectionClient;)V
putfield android.media.RingtoneManager$NewRingtoneScanner.mMediaScannerConnection:Landroid/media/MediaScannerConnection;
4: aload 0
getfield android.media.RingtoneManager$NewRingtoneScanner.mMediaScannerConnection:Landroid/media/MediaScannerConnection;
invokevirtual android.media.MediaScannerConnection.connect:()V
5: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/media/RingtoneManager$NewRingtoneScanner;
0 6 2 file Ljava/io/File;
MethodParameters:
Name Flags
this$0 final
file
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.RingtoneManager$NewRingtoneScanner.mMediaScannerConnection:Landroid/media/MediaScannerConnection;
invokevirtual android.media.MediaScannerConnection.disconnect:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/RingtoneManager$NewRingtoneScanner;
public void onMediaScannerConnected();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.RingtoneManager$NewRingtoneScanner.mMediaScannerConnection:Landroid/media/MediaScannerConnection;
aload 0
getfield android.media.RingtoneManager$NewRingtoneScanner.mFile:Ljava/io/File;
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aconst_null
invokevirtual android.media.MediaScannerConnection.scanFile:(Ljava/lang/String;Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/RingtoneManager$NewRingtoneScanner;
public void onScanCompleted(java.lang.String, android.net.Uri);
descriptor: (Ljava/lang/String;Landroid/net/Uri;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 3
1: aload 0
getfield android.media.RingtoneManager$NewRingtoneScanner.mFile:Ljava/io/File;
invokevirtual java.io.File.delete:()Z
pop
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield android.media.RingtoneManager$NewRingtoneScanner.mQueue:Ljava/util/concurrent/LinkedBlockingQueue;
aload 2
invokevirtual java.util.concurrent.LinkedBlockingQueue.put:(Ljava/lang/Object;)V
4: goto 7
StackMap locals:
StackMap stack: java.lang.InterruptedException
5: astore 3
start local 3 6: ldc "RingtoneManager"
ldc "Unable to put new ringtone Uri in queue"
aload 3
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 3 7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/media/RingtoneManager$NewRingtoneScanner;
0 8 1 path Ljava/lang/String;
0 8 2 uri Landroid/net/Uri;
6 7 3 e Ljava/lang/InterruptedException;
Exception table:
from to target type
3 4 5 Class java.lang.InterruptedException
MethodParameters:
Name Flags
path
uri
public android.net.Uri take();
descriptor: ()Landroid/net/Uri;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.RingtoneManager$NewRingtoneScanner.mQueue:Ljava/util/concurrent/LinkedBlockingQueue;
invokevirtual java.util.concurrent.LinkedBlockingQueue.take:()Ljava/lang/Object;
checkcast android.net.Uri
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/RingtoneManager$NewRingtoneScanner;
Exceptions:
throws java.lang.InterruptedException
}
SourceFile: "RingtoneManager.java"
NestHost: android.media.RingtoneManager
InnerClasses:
public abstract MediaScannerConnectionClient = android.media.MediaScannerConnection$MediaScannerConnectionClient of android.media.MediaScannerConnection
private NewRingtoneScanner = android.media.RingtoneManager$NewRingtoneScanner of android.media.RingtoneManager