class android.media.AudioPortEventHandler$1 extends android.os.Handler
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: android.media.AudioPortEventHandler$1
  super_class: android.os.Handler
{
  final android.media.AudioPortEventHandler this$0;
    descriptor: Landroid/media/AudioPortEventHandler;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(android.media.AudioPortEventHandler, android.os.Looper);
    descriptor: (Landroid/media/AudioPortEventHandler;Landroid/os/Looper;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.media.AudioPortEventHandler$1 this
        start local 2 // android.os.Looper $anonymous0
         0: .line 63
            aload 0 /* this */
            aload 1
            putfield android.media.AudioPortEventHandler$1.this$0:Landroid/media/AudioPortEventHandler;
            aload 0 /* this */
            aload 2 /* $anonymous0 */
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
            return
        end local 2 // android.os.Looper $anonymous0
        end local 0 // android.media.AudioPortEventHandler$1 this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Landroid/media/AudioPortEventHandler$1;
            0    1     2  $anonymous0  Landroid/os/Looper;
    MethodParameters:
             Name  Flags
      this$0       final
      $anonymous0  

  public void handleMessage(android.os.Message);
    descriptor: (Landroid/os/Message;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // android.media.AudioPortEventHandler$1 this
        start local 1 // android.os.Message msg
         0: .line 67
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 68
            aload 1 /* msg */
            getfield android.os.Message.what:I
            iconst_4
            if_icmpne 6
         2: .line 69
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* listeners */
        start local 2 // java.util.ArrayList listeners
         3: .line 70
            aload 0 /* this */
            getfield android.media.AudioPortEventHandler$1.this$0:Landroid/media/AudioPortEventHandler;
            getfield android.media.AudioPortEventHandler.mListeners:Ljava/util/ArrayList;
            aload 1 /* msg */
            getfield android.os.Message.obj:Ljava/lang/Object;
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 71
            aload 2 /* listeners */
            aload 1 /* msg */
            getfield android.os.Message.obj:Ljava/lang/Object;
            checkcast android.media.AudioManager$OnAudioPortUpdateListener
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 73
            goto 7
        end local 2 // java.util.ArrayList listeners
         6: .line 74
      StackMap locals: android.media.AudioPortEventHandler$1 android.os.Message top android.media.AudioPortEventHandler$1
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioPortEventHandler$1.this$0:Landroid/media/AudioPortEventHandler;
            getfield android.media.AudioPortEventHandler.mListeners:Ljava/util/ArrayList;
            astore 2 /* listeners */
        start local 2 // java.util.ArrayList listeners
         7: .line 67
      StackMap locals: android.media.AudioPortEventHandler$1 android.os.Message java.util.ArrayList android.media.AudioPortEventHandler$1
      StackMap stack:
            aload 3
            monitorexit
         8: goto 11
        end local 2 // java.util.ArrayList listeners
      StackMap locals: android.media.AudioPortEventHandler$1 android.os.Message top android.media.AudioPortEventHandler$1
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        start local 2 // java.util.ArrayList listeners
        11: .line 79
      StackMap locals: android.media.AudioPortEventHandler$1 android.os.Message java.util.ArrayList
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.what:I
            iconst_1
            if_icmpeq 14
        12: .line 80
            aload 1 /* msg */
            getfield android.os.Message.what:I
            iconst_2
            if_icmpeq 14
        13: .line 81
            aload 1 /* msg */
            getfield android.os.Message.what:I
            iconst_3
            if_icmpne 15
        14: .line 82
      StackMap locals:
      StackMap stack:
            invokestatic android.media.AudioManager.resetAudioPortGeneration:()I
            pop
        15: .line 85
      StackMap locals:
      StackMap stack:
            aload 2 /* listeners */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 17
        16: .line 86
            return
        17: .line 89
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* ports */
        start local 3 // java.util.ArrayList ports
        18: .line 90
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* patches */
        start local 4 // java.util.ArrayList patches
        19: .line 91
            aload 1 /* msg */
            getfield android.os.Message.what:I
            iconst_3
            if_icmpeq 26
        20: .line 92
            aload 3 /* ports */
            aload 4 /* patches */
            aconst_null
            invokestatic android.media.AudioManager.updateAudioPortCache:(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
            istore 5 /* status */
        start local 5 // int status
        21: .line 93
            iload 5 /* status */
            ifeq 26
        22: .line 98
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* msg */
            getfield android.os.Message.what:I
            aload 1 /* msg */
            getfield android.os.Message.obj:Ljava/lang/Object;
            invokevirtual android.media.AudioPortEventHandler$1.obtainMessage:(ILjava/lang/Object;)Landroid/os/Message;
        23: .line 99
            ldc 100
        24: .line 98
            invokevirtual android.media.AudioPortEventHandler$1.sendMessageDelayed:(Landroid/os/Message;J)Z
            pop
        25: .line 100
            return
        end local 5 // int status
        26: .line 104
      StackMap locals: java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 1 /* msg */
            getfield android.os.Message.what:I
            tableswitch { // 1 - 4
                    1: 27
                    2: 35
                    3: 42
                    4: 27
              default: 48
          }
        27: .line 107
      StackMap locals:
      StackMap stack:
            aload 3 /* ports */
            iconst_0
            anewarray android.media.AudioPort
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast android.media.AudioPort[]
            astore 5 /* portList */
        start local 5 // android.media.AudioPort[] portList
        28: .line 108
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        29: goto 32
        30: .line 109
      StackMap locals: android.media.AudioPort[] int
      StackMap stack:
            aload 2 /* listeners */
            iload 6 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioManager$OnAudioPortUpdateListener
            aload 5 /* portList */
            invokeinterface android.media.AudioManager$OnAudioPortUpdateListener.onAudioPortListUpdate:([Landroid/media/AudioPort;)V
        31: .line 108
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 6 /* i */
            aload 2 /* listeners */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 30
        end local 6 // int i
        33: .line 111
            aload 1 /* msg */
            getfield android.os.Message.what:I
            iconst_1
            if_icmpne 35
        34: .line 112
            goto 48
        end local 5 // android.media.AudioPort[] portList
        35: .line 117
      StackMap locals:
      StackMap stack:
            aload 4 /* patches */
            iconst_0
            anewarray android.media.AudioPatch
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast android.media.AudioPatch[]
            astore 6 /* patchList */
        start local 6 // android.media.AudioPatch[] patchList
        36: .line 118
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        37: goto 40
        38: .line 119
      StackMap locals: android.media.AudioPortEventHandler$1 android.os.Message java.util.ArrayList java.util.ArrayList java.util.ArrayList top android.media.AudioPatch[] int
      StackMap stack:
            aload 2 /* listeners */
            iload 7 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioManager$OnAudioPortUpdateListener
            aload 6 /* patchList */
            invokeinterface android.media.AudioManager$OnAudioPortUpdateListener.onAudioPatchListUpdate:([Landroid/media/AudioPatch;)V
        39: .line 118
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 7 /* i */
            aload 2 /* listeners */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 38
        end local 7 // int i
        41: .line 121
            goto 48
        end local 6 // android.media.AudioPatch[] patchList
        42: .line 124
      StackMap locals: android.media.AudioPortEventHandler$1 android.os.Message java.util.ArrayList java.util.ArrayList java.util.ArrayList
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        43: goto 46
        44: .line 125
      StackMap locals: android.media.AudioPortEventHandler$1 android.os.Message java.util.ArrayList java.util.ArrayList java.util.ArrayList top top int
      StackMap stack:
            aload 2 /* listeners */
            iload 7 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioManager$OnAudioPortUpdateListener
            invokeinterface android.media.AudioManager$OnAudioPortUpdateListener.onServiceDied:()V
        45: .line 124
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 7 /* i */
            aload 2 /* listeners */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 44
        end local 7 // int i
        47: .line 127
            goto 48
        48: .line 132
      StackMap locals: android.media.AudioPortEventHandler$1 android.os.Message java.util.ArrayList java.util.ArrayList java.util.ArrayList
      StackMap stack:
            return
        end local 4 // java.util.ArrayList patches
        end local 3 // java.util.ArrayList ports
        end local 2 // java.util.ArrayList listeners
        end local 1 // android.os.Message msg
        end local 0 // android.media.AudioPortEventHandler$1 this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   49     0       this  Landroid/media/AudioPortEventHandler$1;
            0   49     1        msg  Landroid/os/Message;
            3    6     2  listeners  Ljava/util/ArrayList<Landroid/media/AudioManager$OnAudioPortUpdateListener;>;
            7    9     2  listeners  Ljava/util/ArrayList<Landroid/media/AudioManager$OnAudioPortUpdateListener;>;
           11   49     2  listeners  Ljava/util/ArrayList<Landroid/media/AudioManager$OnAudioPortUpdateListener;>;
           18   49     3      ports  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
           19   49     4    patches  Ljava/util/ArrayList<Landroid/media/AudioPatch;>;
           21   26     5     status  I
           28   35     5   portList  [Landroid/media/AudioPort;
           29   33     6          i  I
           36   42     6  patchList  [Landroid/media/AudioPatch;
           37   41     7          i  I
           43   47     7          i  I
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    MethodParameters:
      Name  Flags
      msg   
}
SourceFile: "AudioPortEventHandler.java"
EnclosingMethod: android.media.AudioPortEventHandler.init:()V
NestHost: android.media.AudioPortEventHandler
InnerClasses:
  public abstract OnAudioPortUpdateListener = android.media.AudioManager$OnAudioPortUpdateListener of android.media.AudioManager
  android.media.AudioPortEventHandler$1