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