public final class android.view.PixelCopy
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.view.PixelCopy
  super_class: java.lang.Object
{
  public static final int SUCCESS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int ERROR_UNKNOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int ERROR_TIMEOUT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int ERROR_SOURCE_NO_DATA;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int ERROR_SOURCE_INVALID;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int ERROR_DESTINATION_INVALID;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static void request(android.view.SurfaceView, android.graphics.Bitmap, android.view.PixelCopy$OnPixelCopyFinishedListener, android.os.Handler);
    descriptor: (Landroid/view/SurfaceView;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.view.SurfaceView source
        start local 1 // android.graphics.Bitmap dest
        start local 2 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        start local 3 // android.os.Handler listenerThread
         0: .line 107
            aload 0 /* source */
            invokevirtual android.view.SurfaceView.getHolder:()Landroid/view/SurfaceHolder;
            invokeinterface android.view.SurfaceHolder.getSurface:()Landroid/view/Surface;
            aload 1 /* dest */
            aload 2 /* listener */
            aload 3 /* listenerThread */
            invokestatic android.view.PixelCopy.request:(Landroid/view/Surface;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
         1: .line 108
            return
        end local 3 // android.os.Handler listenerThread
        end local 2 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        end local 1 // android.graphics.Bitmap dest
        end local 0 // android.view.SurfaceView source
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0          source  Landroid/view/SurfaceView;
            0    2     1            dest  Landroid/graphics/Bitmap;
            0    2     2        listener  Landroid/view/PixelCopy$OnPixelCopyFinishedListener;
            0    2     3  listenerThread  Landroid/os/Handler;
    MethodParameters:
                Name  Flags
      source          
      dest            
      listener        
      listenerThread  

  public static void request(android.view.SurfaceView, android.graphics.Rect, android.graphics.Bitmap, android.view.PixelCopy$OnPixelCopyFinishedListener, android.os.Handler);
    descriptor: (Landroid/view/SurfaceView;Landroid/graphics/Rect;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // android.view.SurfaceView source
        start local 1 // android.graphics.Rect srcRect
        start local 2 // android.graphics.Bitmap dest
        start local 3 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        start local 4 // android.os.Handler listenerThread
         0: .line 132
            aload 0 /* source */
            invokevirtual android.view.SurfaceView.getHolder:()Landroid/view/SurfaceHolder;
            invokeinterface android.view.SurfaceHolder.getSurface:()Landroid/view/Surface;
            aload 1 /* srcRect */
         1: .line 133
            aload 2 /* dest */
            aload 3 /* listener */
            aload 4 /* listenerThread */
         2: .line 132
            invokestatic android.view.PixelCopy.request:(Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
         3: .line 134
            return
        end local 4 // android.os.Handler listenerThread
        end local 3 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        end local 2 // android.graphics.Bitmap dest
        end local 1 // android.graphics.Rect srcRect
        end local 0 // android.view.SurfaceView source
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0          source  Landroid/view/SurfaceView;
            0    4     1         srcRect  Landroid/graphics/Rect;
            0    4     2            dest  Landroid/graphics/Bitmap;
            0    4     3        listener  Landroid/view/PixelCopy$OnPixelCopyFinishedListener;
            0    4     4  listenerThread  Landroid/os/Handler;
    MethodParameters:
                Name  Flags
      source          
      srcRect         
      dest            
      listener        
      listenerThread  

  public static void request(android.view.Surface, android.graphics.Bitmap, android.view.PixelCopy$OnPixelCopyFinishedListener, android.os.Handler);
    descriptor: (Landroid/view/Surface;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.view.Surface source
        start local 1 // android.graphics.Bitmap dest
        start local 2 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        start local 3 // android.os.Handler listenerThread
         0: .line 154
            aload 0 /* source */
            aconst_null
            aload 1 /* dest */
            aload 2 /* listener */
            aload 3 /* listenerThread */
            invokestatic android.view.PixelCopy.request:(Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
         1: .line 155
            return
        end local 3 // android.os.Handler listenerThread
        end local 2 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        end local 1 // android.graphics.Bitmap dest
        end local 0 // android.view.Surface source
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0          source  Landroid/view/Surface;
            0    2     1            dest  Landroid/graphics/Bitmap;
            0    2     2        listener  Landroid/view/PixelCopy$OnPixelCopyFinishedListener;
            0    2     3  listenerThread  Landroid/os/Handler;
    MethodParameters:
                Name  Flags
      source          
      dest            
      listener        
      listenerThread  

  public static void request(android.view.Surface, android.graphics.Rect, android.graphics.Bitmap, android.view.PixelCopy$OnPixelCopyFinishedListener, android.os.Handler);
    descriptor: (Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // android.view.Surface source
        start local 1 // android.graphics.Rect srcRect
        start local 2 // android.graphics.Bitmap dest
        start local 3 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        start local 4 // android.os.Handler listenerThread
         0: .line 179
            aload 2 /* dest */
            invokestatic android.view.PixelCopy.validateBitmapDest:(Landroid/graphics/Bitmap;)V
         1: .line 180
            aload 0 /* source */
            invokevirtual android.view.Surface.isValid:()Z
            ifne 3
         2: .line 181
            new java.lang.IllegalArgumentException
            dup
            ldc "Surface isn't valid, source.isValid() == false"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 183
      StackMap locals:
      StackMap stack:
            aload 1 /* srcRect */
            ifnull 5
            aload 1 /* srcRect */
            invokevirtual android.graphics.Rect.isEmpty:()Z
            ifeq 5
         4: .line 184
            new java.lang.IllegalArgumentException
            dup
            ldc "sourceRect is empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            aload 1 /* srcRect */
            aload 2 /* dest */
            invokestatic android.view.ThreadedRenderer.copySurfaceInto:(Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;)I
            istore 5 /* result */
        start local 5 // int result
         6: .line 188
            aload 4 /* listenerThread */
            new android.view.PixelCopy$1
            dup
            aload 3 /* listener */
            iload 5 /* result */
            invokespecial android.view.PixelCopy$1.<init>:(Landroid/view/PixelCopy$OnPixelCopyFinishedListener;I)V
            invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
            pop
         7: .line 194
            return
        end local 5 // int result
        end local 4 // android.os.Handler listenerThread
        end local 3 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        end local 2 // android.graphics.Bitmap dest
        end local 1 // android.graphics.Rect srcRect
        end local 0 // android.view.Surface source
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0          source  Landroid/view/Surface;
            0    8     1         srcRect  Landroid/graphics/Rect;
            0    8     2            dest  Landroid/graphics/Bitmap;
            0    8     3        listener  Landroid/view/PixelCopy$OnPixelCopyFinishedListener;
            0    8     4  listenerThread  Landroid/os/Handler;
            6    8     5          result  I
    MethodParameters:
                Name  Flags
      source          
      srcRect         
      dest            
      listener        
      listenerThread  

  public static void request(android.view.Window, android.graphics.Bitmap, android.view.PixelCopy$OnPixelCopyFinishedListener, android.os.Handler);
    descriptor: (Landroid/view/Window;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.view.Window source
        start local 1 // android.graphics.Bitmap dest
        start local 2 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        start local 3 // android.os.Handler listenerThread
         0: .line 223
            aload 0 /* source */
            aconst_null
            aload 1 /* dest */
            aload 2 /* listener */
            aload 3 /* listenerThread */
            invokestatic android.view.PixelCopy.request:(Landroid/view/Window;Landroid/graphics/Rect;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
         1: .line 224
            return
        end local 3 // android.os.Handler listenerThread
        end local 2 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        end local 1 // android.graphics.Bitmap dest
        end local 0 // android.view.Window source
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0          source  Landroid/view/Window;
            0    2     1            dest  Landroid/graphics/Bitmap;
            0    2     2        listener  Landroid/view/PixelCopy$OnPixelCopyFinishedListener;
            0    2     3  listenerThread  Landroid/os/Handler;
    MethodParameters:
                Name  Flags
      source          
      dest            
      listener        
      listenerThread  

  public static void request(android.view.Window, android.graphics.Rect, android.graphics.Bitmap, android.view.PixelCopy$OnPixelCopyFinishedListener, android.os.Handler);
    descriptor: (Landroid/view/Window;Landroid/graphics/Rect;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // android.view.Window source
        start local 1 // android.graphics.Rect srcRect
        start local 2 // android.graphics.Bitmap dest
        start local 3 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        start local 4 // android.os.Handler listenerThread
         0: .line 257
            aload 2 /* dest */
            invokestatic android.view.PixelCopy.validateBitmapDest:(Landroid/graphics/Bitmap;)V
         1: .line 258
            aload 0 /* source */
            ifnonnull 3
         2: .line 259
            new java.lang.IllegalArgumentException
            dup
            ldc "source is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual android.view.Window.peekDecorView:()Landroid/view/View;
            ifnonnull 7
         4: .line 262
            new java.lang.IllegalArgumentException
            dup
         5: .line 263
            ldc "Only able to copy windows with decor views"
         6: .line 262
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 265
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* surface */
        start local 5 // android.view.Surface surface
         8: .line 266
            aload 0 /* source */
            invokevirtual android.view.Window.peekDecorView:()Landroid/view/View;
            invokevirtual android.view.View.getViewRootImpl:()Landroid/view/ViewRootImpl;
            astore 6 /* root */
        start local 6 // android.view.ViewRootImpl root
         9: .line 267
            aload 6 /* root */
            ifnull 18
        10: .line 268
            aload 6 /* root */
            getfield android.view.ViewRootImpl.mSurface:Landroid/view/Surface;
            astore 5 /* surface */
        11: .line 269
            aload 6 /* root */
            getfield android.view.ViewRootImpl.mWindowAttributes:Landroid/view/WindowManager$LayoutParams;
            getfield android.view.WindowManager$LayoutParams.surfaceInsets:Landroid/graphics/Rect;
            astore 7 /* surfaceInsets */
        start local 7 // android.graphics.Rect surfaceInsets
        12: .line 270
            aload 1 /* srcRect */
            ifnonnull 17
        13: .line 271
            new android.graphics.Rect
            dup
            aload 7 /* surfaceInsets */
            getfield android.graphics.Rect.left:I
            aload 7 /* surfaceInsets */
            getfield android.graphics.Rect.top:I
        14: .line 272
            aload 6 /* root */
            getfield android.view.ViewRootImpl.mWidth:I
            aload 7 /* surfaceInsets */
            getfield android.graphics.Rect.left:I
            iadd
            aload 6 /* root */
            getfield android.view.ViewRootImpl.mHeight:I
            aload 7 /* surfaceInsets */
            getfield android.graphics.Rect.top:I
            iadd
        15: .line 271
            invokespecial android.graphics.Rect.<init>:(IIII)V
            astore 1 /* srcRect */
        16: .line 273
            goto 18
        17: .line 274
      StackMap locals: android.view.Surface android.view.ViewRootImpl android.graphics.Rect
      StackMap stack:
            aload 1 /* srcRect */
            aload 7 /* surfaceInsets */
            getfield android.graphics.Rect.left:I
            aload 7 /* surfaceInsets */
            getfield android.graphics.Rect.top:I
            invokevirtual android.graphics.Rect.offset:(II)V
        end local 7 // android.graphics.Rect surfaceInsets
        18: .line 277
      StackMap locals:
      StackMap stack:
            aload 5 /* surface */
            ifnull 19
            aload 5 /* surface */
            invokevirtual android.view.Surface.isValid:()Z
            ifne 22
        19: .line 278
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        20: .line 279
            ldc "Window doesn't have a backing surface!"
        21: .line 278
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 281
      StackMap locals:
      StackMap stack:
            aload 5 /* surface */
            aload 1 /* srcRect */
            aload 2 /* dest */
            aload 3 /* listener */
            aload 4 /* listenerThread */
            invokestatic android.view.PixelCopy.request:(Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
        23: .line 282
            return
        end local 6 // android.view.ViewRootImpl root
        end local 5 // android.view.Surface surface
        end local 4 // android.os.Handler listenerThread
        end local 3 // android.view.PixelCopy$OnPixelCopyFinishedListener listener
        end local 2 // android.graphics.Bitmap dest
        end local 1 // android.graphics.Rect srcRect
        end local 0 // android.view.Window source
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0          source  Landroid/view/Window;
            0   24     1         srcRect  Landroid/graphics/Rect;
            0   24     2            dest  Landroid/graphics/Bitmap;
            0   24     3        listener  Landroid/view/PixelCopy$OnPixelCopyFinishedListener;
            0   24     4  listenerThread  Landroid/os/Handler;
            8   24     5         surface  Landroid/view/Surface;
            9   24     6            root  Landroid/view/ViewRootImpl;
           12   18     7   surfaceInsets  Landroid/graphics/Rect;
    MethodParameters:
                Name  Flags
      source          
      srcRect         
      dest            
      listener        
      listenerThread  

  private static void validateBitmapDest(android.graphics.Bitmap);
    descriptor: (Landroid/graphics/Bitmap;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.graphics.Bitmap bitmap
         0: .line 286
            aload 0 /* bitmap */
            ifnonnull 2
         1: .line 287
            new java.lang.IllegalArgumentException
            dup
            ldc "Bitmap cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* bitmap */
            invokevirtual android.graphics.Bitmap.isRecycled:()Z
            ifeq 4
         3: .line 290
            new java.lang.IllegalArgumentException
            dup
            ldc "Bitmap is recycled"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* bitmap */
            invokevirtual android.graphics.Bitmap.isMutable:()Z
            ifne 6
         5: .line 293
            new java.lang.IllegalArgumentException
            dup
            ldc "Bitmap is immutable"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 295
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.graphics.Bitmap bitmap
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  bitmap  Landroid/graphics/Bitmap;
    MethodParameters:
        Name  Flags
      bitmap  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.PixelCopy this
         0: .line 297
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.view.PixelCopy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/PixelCopy;
}
SourceFile: "PixelCopy.java"
NestMembers:
  android.view.PixelCopy$1  android.view.PixelCopy$CopyResultStatus  android.view.PixelCopy$OnPixelCopyFinishedListener
InnerClasses:
  android.view.PixelCopy$1
  public abstract CopyResultStatus = android.view.PixelCopy$CopyResultStatus of android.view.PixelCopy
  public abstract OnPixelCopyFinishedListener = android.view.PixelCopy$OnPixelCopyFinishedListener of android.view.PixelCopy
  public LayoutParams = android.view.WindowManager$LayoutParams of android.view.WindowManager