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

  public void <init>(android.media.ImageReader, android.os.Looper);
    descriptor: (Landroid/media/ImageReader;Landroid/os/Looper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.media.ImageReader$ListenerHandler this
        start local 2 // android.os.Looper looper
         0: .line 782
            aload 0 /* this */
            aload 1
            putfield android.media.ImageReader$ListenerHandler.this$0:Landroid/media/ImageReader;
         1: .line 783
            aload 0 /* this */
            aload 2 /* looper */
            aconst_null
            iconst_1
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;Landroid/os/Handler$Callback;Z)V
         2: .line 784
            return
        end local 2 // android.os.Looper looper
        end local 0 // android.media.ImageReader$ListenerHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/media/ImageReader$ListenerHandler;
            0    3     2  looper  Landroid/os/Looper;
    MethodParameters:
        Name  Flags
      this$0  final
      looper  

  public void handleMessage(android.os.Message);
    descriptor: (Landroid/os/Message;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // android.media.ImageReader$ListenerHandler this
        start local 1 // android.os.Message msg
         0: .line 789
            aload 0 /* this */
            getfield android.media.ImageReader$ListenerHandler.this$0:Landroid/media/ImageReader;
            getfield android.media.ImageReader.mListenerLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 790
            aload 0 /* this */
            getfield android.media.ImageReader$ListenerHandler.this$0:Landroid/media/ImageReader;
            getfield android.media.ImageReader.mListener:Landroid/media/ImageReader$OnImageAvailableListener;
            astore 2 /* listener */
        start local 2 // android.media.ImageReader$OnImageAvailableListener listener
         2: .line 789
            aload 3
            monitorexit
         3: goto 6
        end local 2 // android.media.ImageReader$OnImageAvailableListener listener
      StackMap locals: android.media.ImageReader$ListenerHandler android.os.Message top java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 3
            monitorexit
         5: athrow
        start local 2 // android.media.ImageReader$OnImageAvailableListener listener
         6: .line 795
      StackMap locals: android.media.ImageReader$ListenerHandler android.os.Message android.media.ImageReader$OnImageAvailableListener
      StackMap stack:
            iconst_0
            istore 3 /* isReaderValid */
        start local 3 // boolean isReaderValid
         7: .line 796
            aload 0 /* this */
            getfield android.media.ImageReader$ListenerHandler.this$0:Landroid/media/ImageReader;
            getfield android.media.ImageReader.mCloseLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         8: .line 797
            aload 0 /* this */
            getfield android.media.ImageReader$ListenerHandler.this$0:Landroid/media/ImageReader;
            getfield android.media.ImageReader.mIsReaderValid:Z
            istore 3 /* isReaderValid */
         9: .line 796
            aload 4
            monitorexit
        10: goto 13
      StackMap locals: android.media.ImageReader$ListenerHandler android.os.Message android.media.ImageReader$OnImageAvailableListener int java.lang.Object
      StackMap stack: java.lang.Throwable
        11: aload 4
            monitorexit
        12: athrow
        13: .line 799
      StackMap locals:
      StackMap stack:
            aload 2 /* listener */
            ifnull 15
            iload 3 /* isReaderValid */
            ifeq 15
        14: .line 800
            aload 2 /* listener */
            aload 0 /* this */
            getfield android.media.ImageReader$ListenerHandler.this$0:Landroid/media/ImageReader;
            invokeinterface android.media.ImageReader$OnImageAvailableListener.onImageAvailable:(Landroid/media/ImageReader;)V
        15: .line 802
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean isReaderValid
        end local 2 // android.media.ImageReader$OnImageAvailableListener listener
        end local 1 // android.os.Message msg
        end local 0 // android.media.ImageReader$ListenerHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Landroid/media/ImageReader$ListenerHandler;
            0   16     1            msg  Landroid/os/Message;
            2    4     2       listener  Landroid/media/ImageReader$OnImageAvailableListener;
            6   16     2       listener  Landroid/media/ImageReader$OnImageAvailableListener;
            7   16     3  isReaderValid  Z
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           8    10      11  any
          11    12      11  any
    MethodParameters:
      Name  Flags
      msg   
}
SourceFile: "ImageReader.java"
NestHost: android.media.ImageReader
InnerClasses:
  private final ListenerHandler = android.media.ImageReader$ListenerHandler of android.media.ImageReader
  public abstract OnImageAvailableListener = android.media.ImageReader$OnImageAvailableListener of android.media.ImageReader
  public abstract Callback = android.os.Handler$Callback of android.os.Handler