final class android.media.AsyncPlayer$Thread extends java.lang.Thread
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: android.media.AsyncPlayer$Thread
super_class: java.lang.Thread
{
final android.media.AsyncPlayer this$0;
descriptor: Landroid/media/AsyncPlayer;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(android.media.AsyncPlayer);
descriptor: (Landroid/media/AsyncPlayer;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 // android.media.AsyncPlayer$Thread this
0: .line 81
aload 0 /* this */
aload 1
putfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
1: .line 82
aload 0 /* this */
new java.lang.StringBuilder
dup
ldc "AsyncPlayer-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield android.media.AsyncPlayer.mTag:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Thread.<init>:(Ljava/lang/String;)V
2: .line 83
return
end local 0 // android.media.AsyncPlayer$Thread this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/AsyncPlayer$Thread;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 // android.media.AsyncPlayer$Thread this
0: .line 87
StackMap locals:
StackMap stack:
aconst_null
astore 1 /* cmd */
start local 1 // android.media.AsyncPlayer$Command cmd
1: .line 89
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
getfield android.media.AsyncPlayer.mCmdQueue:Ljava/util/LinkedList;
dup
astore 2
monitorenter
2: .line 91
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
getfield android.media.AsyncPlayer.mCmdQueue:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
checkcast android.media.AsyncPlayer$Command
astore 1 /* cmd */
3: .line 89
aload 2
monitorexit
4: goto 7
StackMap locals: android.media.AsyncPlayer$Thread android.media.AsyncPlayer$Command java.util.LinkedList
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: .line 94
StackMap locals:
StackMap stack:
aload 1 /* cmd */
getfield android.media.AsyncPlayer$Command.code:I
tableswitch { // 1 - 2
1: 8
2: 10
default: 19
}
8: .line 97
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
aload 1 /* cmd */
invokevirtual android.media.AsyncPlayer.startSound:(Landroid/media/AsyncPlayer$Command;)V
9: .line 98
goto 19
10: .line 101
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
getfield android.media.AsyncPlayer.mPlayer:Landroid/media/MediaPlayer;
ifnull 18
11: .line 102
invokestatic android.os.SystemClock.uptimeMillis:()J
aload 1 /* cmd */
getfield android.media.AsyncPlayer$Command.requestTime:J
lsub
lstore 2 /* delay */
start local 2 // long delay
12: .line 103
lload 2 /* delay */
ldc 1000
lcmp
ifle 14
13: .line 104
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
getfield android.media.AsyncPlayer.mTag:Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "Notification stop delayed by "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 2 /* delay */
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "msecs"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
14: .line 106
StackMap locals: long
StackMap stack:
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
getfield android.media.AsyncPlayer.mPlayer:Landroid/media/MediaPlayer;
invokevirtual android.media.MediaPlayer.stop:()V
15: .line 107
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
getfield android.media.AsyncPlayer.mPlayer:Landroid/media/MediaPlayer;
invokevirtual android.media.MediaPlayer.release:()V
16: .line 108
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
aconst_null
putfield android.media.AsyncPlayer.mPlayer:Landroid/media/MediaPlayer;
end local 2 // long delay
17: .line 109
goto 19
18: .line 110
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
getfield android.media.AsyncPlayer.mTag:Ljava/lang/String;
ldc "STOP command without a player"
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
19: .line 115
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
getfield android.media.AsyncPlayer.mCmdQueue:Ljava/util/LinkedList;
dup
astore 2
monitorenter
20: .line 116
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
getfield android.media.AsyncPlayer.mCmdQueue:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.size:()I
ifne 25
21: .line 121
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
aconst_null
putfield android.media.AsyncPlayer.mThread:Landroid/media/AsyncPlayer$Thread;
22: .line 122
aload 0 /* this */
getfield android.media.AsyncPlayer$Thread.this$0:Landroid/media/AsyncPlayer;
invokevirtual android.media.AsyncPlayer.releaseWakeLock:()V
23: .line 123
aload 2
monitorexit
24: return
25: .line 115
StackMap locals: java.util.LinkedList
StackMap stack:
aload 2
monitorexit
26: goto 0
StackMap locals:
StackMap stack: java.lang.Throwable
27: aload 2
monitorexit
28: athrow
end local 1 // android.media.AsyncPlayer$Command cmd
end local 0 // android.media.AsyncPlayer$Thread this
LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Landroid/media/AsyncPlayer$Thread;
1 29 1 cmd Landroid/media/AsyncPlayer$Command;
12 17 2 delay J
Exception table:
from to target type
2 4 5 any
5 6 5 any
20 24 27 any
25 26 27 any
27 28 27 any
}
SourceFile: "AsyncPlayer.java"
NestHost: android.media.AsyncPlayer
InnerClasses:
private final Command = android.media.AsyncPlayer$Command of android.media.AsyncPlayer
private final Thread = android.media.AsyncPlayer$Thread of android.media.AsyncPlayer