public class android.view.TextureView extends android.view.View
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.view.TextureView
  super_class: android.view.View
{
  private static final java.lang.String LOG_TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "TextureView"

  private android.view.TextureLayer mLayer;
    descriptor: Landroid/view/TextureLayer;
    flags: (0x0002) ACC_PRIVATE

  private android.graphics.SurfaceTexture mSurface;
    descriptor: Landroid/graphics/SurfaceTexture;
    flags: (0x0002) ACC_PRIVATE

  private android.view.TextureView$SurfaceTextureListener mListener;
    descriptor: Landroid/view/TextureView$SurfaceTextureListener;
    flags: (0x0002) ACC_PRIVATE

  private boolean mHadSurface;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mOpaque;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final android.graphics.Matrix mMatrix;
    descriptor: Landroid/graphics/Matrix;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean mMatrixChanged;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object[] mLock;
    descriptor: [Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean mUpdateLayer;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mUpdateSurface;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private android.graphics.Canvas mCanvas;
    descriptor: Landroid/graphics/Canvas;
    flags: (0x0002) ACC_PRIVATE

  private int mSaveCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object[] mNativeWindowLock;
    descriptor: [Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long mNativeWindow;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final android.graphics.SurfaceTexture$OnFrameAvailableListener mUpdateListener;
    descriptor: Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.content.Context context
         0: .line 136
            aload 0 /* this */
            aload 1 /* context */
            invokespecial android.view.View.<init>:(Landroid/content/Context;)V
         1: .line 114
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mOpaque:Z
         2: .line 116
            aload 0 /* this */
            new android.graphics.Matrix
            dup
            invokespecial android.graphics.Matrix.<init>:()V
            putfield android.view.TextureView.mMatrix:Landroid/graphics/Matrix;
         3: .line 119
            aload 0 /* this */
            iconst_0
            anewarray java.lang.Object
            putfield android.view.TextureView.mLock:[Ljava/lang/Object;
         4: .line 126
            aload 0 /* this */
            iconst_0
            anewarray java.lang.Object
            putfield android.view.TextureView.mNativeWindowLock:[Ljava/lang/Object;
         5: .line 789
            aload 0 /* this */
         6: .line 790
            new android.view.TextureView$1
            dup
            aload 0 /* this */
            invokespecial android.view.TextureView$1.<init>:(Landroid/view/TextureView;)V
            putfield android.view.TextureView.mUpdateListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
         7: .line 137
            return
        end local 1 // android.content.Context context
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Landroid/view/TextureView;
            0    8     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  public void <init>(android.content.Context, android.util.AttributeSet);
    descriptor: (Landroid/content/Context;Landroid/util/AttributeSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.view.TextureView this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
         0: .line 146
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            invokespecial android.view.View.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;)V
         1: .line 114
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mOpaque:Z
         2: .line 116
            aload 0 /* this */
            new android.graphics.Matrix
            dup
            invokespecial android.graphics.Matrix.<init>:()V
            putfield android.view.TextureView.mMatrix:Landroid/graphics/Matrix;
         3: .line 119
            aload 0 /* this */
            iconst_0
            anewarray java.lang.Object
            putfield android.view.TextureView.mLock:[Ljava/lang/Object;
         4: .line 126
            aload 0 /* this */
            iconst_0
            anewarray java.lang.Object
            putfield android.view.TextureView.mNativeWindowLock:[Ljava/lang/Object;
         5: .line 789
            aload 0 /* this */
         6: .line 790
            new android.view.TextureView$1
            dup
            aload 0 /* this */
            invokespecial android.view.TextureView$1.<init>:(Landroid/view/TextureView;)V
            putfield android.view.TextureView.mUpdateListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
         7: .line 147
            return
        end local 2 // android.util.AttributeSet attrs
        end local 1 // android.content.Context context
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Landroid/view/TextureView;
            0    8     1  context  Landroid/content/Context;
            0    8     2    attrs  Landroid/util/AttributeSet;
    MethodParameters:
         Name  Flags
      context  
      attrs    

  public void <init>(android.content.Context, android.util.AttributeSet, int);
    descriptor: (Landroid/content/Context;Landroid/util/AttributeSet;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.view.TextureView this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
        start local 3 // int defStyleAttr
         0: .line 159
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            iload 3 /* defStyleAttr */
            invokespecial android.view.View.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;I)V
         1: .line 114
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mOpaque:Z
         2: .line 116
            aload 0 /* this */
            new android.graphics.Matrix
            dup
            invokespecial android.graphics.Matrix.<init>:()V
            putfield android.view.TextureView.mMatrix:Landroid/graphics/Matrix;
         3: .line 119
            aload 0 /* this */
            iconst_0
            anewarray java.lang.Object
            putfield android.view.TextureView.mLock:[Ljava/lang/Object;
         4: .line 126
            aload 0 /* this */
            iconst_0
            anewarray java.lang.Object
            putfield android.view.TextureView.mNativeWindowLock:[Ljava/lang/Object;
         5: .line 789
            aload 0 /* this */
         6: .line 790
            new android.view.TextureView$1
            dup
            aload 0 /* this */
            invokespecial android.view.TextureView$1.<init>:(Landroid/view/TextureView;)V
            putfield android.view.TextureView.mUpdateListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
         7: .line 160
            return
        end local 3 // int defStyleAttr
        end local 2 // android.util.AttributeSet attrs
        end local 1 // android.content.Context context
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Landroid/view/TextureView;
            0    8     1       context  Landroid/content/Context;
            0    8     2         attrs  Landroid/util/AttributeSet;
            0    8     3  defStyleAttr  I
    MethodParameters:
              Name  Flags
      context       
      attrs         
      defStyleAttr  

  public void <init>(android.content.Context, android.util.AttributeSet, int, int);
    descriptor: (Landroid/content/Context;Landroid/util/AttributeSet;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // android.view.TextureView this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
        start local 3 // int defStyleAttr
        start local 4 // int defStyleRes
         0: .line 176
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            iload 3 /* defStyleAttr */
            iload 4 /* defStyleRes */
            invokespecial android.view.View.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;II)V
         1: .line 114
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mOpaque:Z
         2: .line 116
            aload 0 /* this */
            new android.graphics.Matrix
            dup
            invokespecial android.graphics.Matrix.<init>:()V
            putfield android.view.TextureView.mMatrix:Landroid/graphics/Matrix;
         3: .line 119
            aload 0 /* this */
            iconst_0
            anewarray java.lang.Object
            putfield android.view.TextureView.mLock:[Ljava/lang/Object;
         4: .line 126
            aload 0 /* this */
            iconst_0
            anewarray java.lang.Object
            putfield android.view.TextureView.mNativeWindowLock:[Ljava/lang/Object;
         5: .line 789
            aload 0 /* this */
         6: .line 790
            new android.view.TextureView$1
            dup
            aload 0 /* this */
            invokespecial android.view.TextureView$1.<init>:(Landroid/view/TextureView;)V
            putfield android.view.TextureView.mUpdateListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
         7: .line 177
            return
        end local 4 // int defStyleRes
        end local 3 // int defStyleAttr
        end local 2 // android.util.AttributeSet attrs
        end local 1 // android.content.Context context
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Landroid/view/TextureView;
            0    8     1       context  Landroid/content/Context;
            0    8     2         attrs  Landroid/util/AttributeSet;
            0    8     3  defStyleAttr  I
            0    8     4   defStyleRes  I
    MethodParameters:
              Name  Flags
      context       
      attrs         
      defStyleAttr  
      defStyleRes   

  public boolean isOpaque();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 184
            aload 0 /* this */
            getfield android.view.TextureView.mOpaque:Z
            ireturn
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/TextureView;

  public void setOpaque(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // boolean opaque
         0: .line 195
            iload 1 /* opaque */
            aload 0 /* this */
            getfield android.view.TextureView.mOpaque:Z
            if_icmpeq 4
         1: .line 196
            aload 0 /* this */
            iload 1 /* opaque */
            putfield android.view.TextureView.mOpaque:Z
         2: .line 197
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            ifnull 4
         3: .line 198
            aload 0 /* this */
            invokevirtual android.view.TextureView.updateLayerAndInvalidate:()V
         4: .line 201
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean opaque
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/TextureView;
            0    5     1  opaque  Z
    MethodParameters:
        Name  Flags
      opaque  

  protected void onAttachedToWindow();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 205
            aload 0 /* this */
            invokespecial android.view.View.onAttachedToWindow:()V
         1: .line 207
            aload 0 /* this */
            invokevirtual android.view.TextureView.isHardwareAccelerated:()Z
            ifne 3
         2: .line 208
            ldc "TextureView"
            ldc "A TextureView or a subclass can only be used with hardware acceleration enabled."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mHadSurface:Z
            ifeq 6
         4: .line 213
            aload 0 /* this */
            iconst_1
            invokevirtual android.view.TextureView.invalidate:(Z)V
         5: .line 214
            aload 0 /* this */
            iconst_0
            putfield android.view.TextureView.mHadSurface:Z
         6: .line 216
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/view/TextureView;

  protected void onDetachedFromWindowInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 221
            aload 0 /* this */
            invokevirtual android.view.TextureView.destroyHardwareLayer:()V
         1: .line 222
            aload 0 /* this */
            invokevirtual android.view.TextureView.releaseSurfaceTexture:()V
         2: .line 223
            aload 0 /* this */
            invokespecial android.view.View.onDetachedFromWindowInternal:()V
         3: .line 224
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/view/TextureView;

  protected void destroyHardwareResources();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 231
            aload 0 /* this */
            invokespecial android.view.View.destroyHardwareResources:()V
         1: .line 232
            aload 0 /* this */
            invokevirtual android.view.TextureView.destroyHardwareLayer:()V
         2: .line 233
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/view/TextureView;

  private void destroyHardwareLayer();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 236
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            ifnull 5
         1: .line 237
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            invokevirtual android.view.TextureLayer.detachSurfaceTexture:()V
         2: .line 238
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            invokevirtual android.view.TextureLayer.destroy:()V
         3: .line 239
            aload 0 /* this */
            aconst_null
            putfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
         4: .line 240
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mMatrixChanged:Z
         5: .line 242
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/view/TextureView;

  private void releaseSurfaceTexture();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 245
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            ifnull 14
         1: .line 246
            iconst_1
            istore 1 /* shouldRelease */
        start local 1 // boolean shouldRelease
         2: .line 248
            aload 0 /* this */
            getfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
            ifnull 4
         3: .line 249
            aload 0 /* this */
            getfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            invokeinterface android.view.TextureView$SurfaceTextureListener.onSurfaceTextureDestroyed:(Landroid/graphics/SurfaceTexture;)Z
            istore 1 /* shouldRelease */
         4: .line 252
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mNativeWindowLock:[Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         5: .line 253
            aload 0 /* this */
            invokevirtual android.view.TextureView.nDestroyNativeWindow:()V
         6: .line 252
            aload 2
            monitorexit
         7: goto 10
      StackMap locals: android.view.TextureView int java.lang.Object[]
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 256
      StackMap locals:
      StackMap stack:
            iload 1 /* shouldRelease */
            ifeq 12
        11: .line 257
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            invokevirtual android.graphics.SurfaceTexture.release:()V
        12: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
        13: .line 260
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mHadSurface:Z
        end local 1 // boolean shouldRelease
        14: .line 262
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Landroid/view/TextureView;
            2   14     1  shouldRelease  Z
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any

  public void setLayerType(int, android.graphics.Paint);
    descriptor: (ILandroid/graphics/Paint;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.view.TextureView this
        start local 1 // int layerType
        start local 2 // android.graphics.Paint paint
         0: .line 279
            aload 0 /* this */
            aload 2 /* paint */
            invokevirtual android.view.TextureView.setLayerPaint:(Landroid/graphics/Paint;)V
         1: .line 280
            return
        end local 2 // android.graphics.Paint paint
        end local 1 // int layerType
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Landroid/view/TextureView;
            0    2     1  layerType  I
            0    2     2      paint  Landroid/graphics/Paint;
    MethodParameters:
           Name  Flags
      layerType  
      paint      

  public void setLayerPaint(android.graphics.Paint);
    descriptor: (Landroid/graphics/Paint;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.Paint paint
         0: .line 284
            aload 1 /* paint */
            aload 0 /* this */
            getfield android.view.TextureView.mLayerPaint:Landroid/graphics/Paint;
            if_acmpeq 3
         1: .line 285
            aload 0 /* this */
            aload 1 /* paint */
            putfield android.view.TextureView.mLayerPaint:Landroid/graphics/Paint;
         2: .line 286
            aload 0 /* this */
            invokevirtual android.view.TextureView.invalidate:()V
         3: .line 288
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.graphics.Paint paint
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Landroid/view/TextureView;
            0    4     1  paint  Landroid/graphics/Paint;
    MethodParameters:
       Name  Flags
      paint  

  public int getLayerType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 295
            iconst_2
            ireturn
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/TextureView;

  public void buildLayer();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 303
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/TextureView;

  public void setForeground(android.graphics.drawable.Drawable);
    descriptor: (Landroid/graphics/drawable/Drawable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.drawable.Drawable foreground
         0: .line 307
            aload 1 /* foreground */
            ifnull 4
            getstatic android.view.TextureView.sTextureViewIgnoresDrawableSetters:Z
            ifne 4
         1: .line 308
            new java.lang.UnsupportedOperationException
            dup
         2: .line 309
            ldc "TextureView doesn't support displaying a foreground drawable"
         3: .line 308
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 311
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.graphics.drawable.Drawable foreground
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/view/TextureView;
            0    5     1  foreground  Landroid/graphics/drawable/Drawable;
    MethodParameters:
            Name  Flags
      foreground  

  public void setBackgroundDrawable(android.graphics.drawable.Drawable);
    descriptor: (Landroid/graphics/drawable/Drawable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.drawable.Drawable background
         0: .line 315
            aload 1 /* background */
            ifnull 4
            getstatic android.view.TextureView.sTextureViewIgnoresDrawableSetters:Z
            ifne 4
         1: .line 316
            new java.lang.UnsupportedOperationException
            dup
         2: .line 317
            ldc "TextureView doesn't support displaying a background drawable"
         3: .line 316
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 319
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.graphics.drawable.Drawable background
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/view/TextureView;
            0    5     1  background  Landroid/graphics/drawable/Drawable;
    MethodParameters:
            Name  Flags
      background  

  public final void draw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.Canvas canvas
         0: .line 330
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.TextureView.mPrivateFlags:I
            ldc -6291457
            iand
            bipush 32
            ior
            putfield android.view.TextureView.mPrivateFlags:I
         1: .line 336
            aload 1 /* canvas */
            invokevirtual android.graphics.Canvas.isHardwareAccelerated:()Z
            ifeq 9
         2: .line 337
            aload 1 /* canvas */
            checkcast android.view.DisplayListCanvas
            astore 2 /* displayListCanvas */
        start local 2 // android.view.DisplayListCanvas displayListCanvas
         3: .line 339
            aload 0 /* this */
            invokevirtual android.view.TextureView.getTextureLayer:()Landroid/view/TextureLayer;
            astore 3 /* layer */
        start local 3 // android.view.TextureLayer layer
         4: .line 340
            aload 3 /* layer */
            ifnull 9
         5: .line 341
            aload 0 /* this */
            invokevirtual android.view.TextureView.applyUpdate:()V
         6: .line 342
            aload 0 /* this */
            invokevirtual android.view.TextureView.applyTransformMatrix:()V
         7: .line 344
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            aload 0 /* this */
            getfield android.view.TextureView.mLayerPaint:Landroid/graphics/Paint;
            invokevirtual android.view.TextureLayer.setLayerPaint:(Landroid/graphics/Paint;)V
         8: .line 345
            aload 2 /* displayListCanvas */
            aload 3 /* layer */
            invokevirtual android.view.DisplayListCanvas.drawTextureLayer:(Landroid/view/TextureLayer;)V
        end local 3 // android.view.TextureLayer layer
        end local 2 // android.view.DisplayListCanvas displayListCanvas
         9: .line 348
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Landroid/view/TextureView;
            0   10     1             canvas  Landroid/graphics/Canvas;
            3    9     2  displayListCanvas  Landroid/view/DisplayListCanvas;
            4    9     3              layer  Landroid/view/TextureLayer;
    MethodParameters:
        Name  Flags
      canvas  

  protected final void onDraw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.Canvas canvas
         0: .line 358
            return
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/view/TextureView;
            0    1     1  canvas  Landroid/graphics/Canvas;
    MethodParameters:
        Name  Flags
      canvas  

  protected void onSizeChanged(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // android.view.TextureView this
        start local 1 // int w
        start local 2 // int h
        start local 3 // int oldw
        start local 4 // int oldh
         0: .line 362
            aload 0 /* this */
            iload 1 /* w */
            iload 2 /* h */
            iload 3 /* oldw */
            iload 4 /* oldh */
            invokespecial android.view.View.onSizeChanged:(IIII)V
         1: .line 363
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            ifnull 6
         2: .line 364
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            aload 0 /* this */
            invokevirtual android.view.TextureView.getWidth:()I
            aload 0 /* this */
            invokevirtual android.view.TextureView.getHeight:()I
            invokevirtual android.graphics.SurfaceTexture.setDefaultBufferSize:(II)V
         3: .line 365
            aload 0 /* this */
            invokevirtual android.view.TextureView.updateLayer:()V
         4: .line 366
            aload 0 /* this */
            getfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
            ifnull 6
         5: .line 367
            aload 0 /* this */
            getfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            aload 0 /* this */
            invokevirtual android.view.TextureView.getWidth:()I
            aload 0 /* this */
            invokevirtual android.view.TextureView.getHeight:()I
            invokeinterface android.view.TextureView$SurfaceTextureListener.onSurfaceTextureSizeChanged:(Landroid/graphics/SurfaceTexture;II)V
         6: .line 370
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int oldh
        end local 3 // int oldw
        end local 2 // int h
        end local 1 // int w
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/view/TextureView;
            0    7     1     w  I
            0    7     2     h  I
            0    7     3  oldw  I
            0    7     4  oldh  I
    MethodParameters:
      Name  Flags
      w     
      h     
      oldw  
      oldh  

  android.view.TextureLayer getTextureLayer();
    descriptor: ()Landroid/view/TextureLayer;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 373
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            ifnonnull 16
         1: .line 374
            aload 0 /* this */
            getfield android.view.TextureView.mAttachInfo:Landroid/view/View$AttachInfo;
            ifnull 2
            aload 0 /* this */
            getfield android.view.TextureView.mAttachInfo:Landroid/view/View$AttachInfo;
            getfield android.view.View$AttachInfo.mThreadedRenderer:Landroid/view/ThreadedRenderer;
            ifnonnull 3
         2: .line 375
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         3: .line 378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.TextureView.mAttachInfo:Landroid/view/View$AttachInfo;
            getfield android.view.View$AttachInfo.mThreadedRenderer:Landroid/view/ThreadedRenderer;
            invokevirtual android.view.ThreadedRenderer.createTextureLayer:()Landroid/view/TextureLayer;
            putfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
         4: .line 379
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            ifnonnull 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 1 /* createNewSurface */
        start local 1 // boolean createNewSurface
         7: .line 380
            iload 1 /* createNewSurface */
            ifeq 10
         8: .line 382
            aload 0 /* this */
            new android.graphics.SurfaceTexture
            dup
            iconst_0
            invokespecial android.graphics.SurfaceTexture.<init>:(Z)V
            putfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
         9: .line 383
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            invokevirtual android.view.TextureView.nCreateNativeWindow:(Landroid/graphics/SurfaceTexture;)V
        10: .line 385
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            invokevirtual android.view.TextureLayer.setSurfaceTexture:(Landroid/graphics/SurfaceTexture;)V
        11: .line 386
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            aload 0 /* this */
            invokevirtual android.view.TextureView.getWidth:()I
            aload 0 /* this */
            invokevirtual android.view.TextureView.getHeight:()I
            invokevirtual android.graphics.SurfaceTexture.setDefaultBufferSize:(II)V
        12: .line 387
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            aload 0 /* this */
            getfield android.view.TextureView.mUpdateListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
            aload 0 /* this */
            getfield android.view.TextureView.mAttachInfo:Landroid/view/View$AttachInfo;
            getfield android.view.View$AttachInfo.mHandler:Landroid/os/Handler;
            invokevirtual android.graphics.SurfaceTexture.setOnFrameAvailableListener:(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V
        13: .line 389
            aload 0 /* this */
            getfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
            ifnull 15
            iload 1 /* createNewSurface */
            ifeq 15
        14: .line 390
            aload 0 /* this */
            getfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            aload 0 /* this */
            invokevirtual android.view.TextureView.getWidth:()I
            aload 0 /* this */
            invokevirtual android.view.TextureView.getHeight:()I
            invokeinterface android.view.TextureView$SurfaceTextureListener.onSurfaceTextureAvailable:(Landroid/graphics/SurfaceTexture;II)V
        15: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            aload 0 /* this */
            getfield android.view.TextureView.mLayerPaint:Landroid/graphics/Paint;
            invokevirtual android.view.TextureLayer.setLayerPaint:(Landroid/graphics/Paint;)V
        end local 1 // boolean createNewSurface
        16: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mUpdateSurface:Z
            ifeq 22
        17: .line 399
            aload 0 /* this */
            iconst_0
            putfield android.view.TextureView.mUpdateSurface:Z
        18: .line 403
            aload 0 /* this */
            invokevirtual android.view.TextureView.updateLayer:()V
        19: .line 404
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mMatrixChanged:Z
        20: .line 406
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            invokevirtual android.view.TextureLayer.setSurfaceTexture:(Landroid/graphics/SurfaceTexture;)V
        21: .line 407
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            aload 0 /* this */
            invokevirtual android.view.TextureView.getWidth:()I
            aload 0 /* this */
            invokevirtual android.view.TextureView.getHeight:()I
            invokevirtual android.graphics.SurfaceTexture.setDefaultBufferSize:(II)V
        22: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            areturn
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   23     0              this  Landroid/view/TextureView;
            7   16     1  createNewSurface  Z

  protected void onVisibilityChanged(android.view.View, int);
    descriptor: (Landroid/view/View;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.view.TextureView this
        start local 1 // android.view.View changedView
        start local 2 // int visibility
         0: .line 415
            aload 0 /* this */
            aload 1 /* changedView */
            iload 2 /* visibility */
            invokespecial android.view.View.onVisibilityChanged:(Landroid/view/View;I)V
         1: .line 417
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            ifnull 8
         2: .line 421
            iload 2 /* visibility */
            ifne 7
         3: .line 422
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            ifnull 5
         4: .line 423
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            aload 0 /* this */
            getfield android.view.TextureView.mUpdateListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
            aload 0 /* this */
            getfield android.view.TextureView.mAttachInfo:Landroid/view/View$AttachInfo;
            getfield android.view.View$AttachInfo.mHandler:Landroid/os/Handler;
            invokevirtual android.graphics.SurfaceTexture.setOnFrameAvailableListener:(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V
         5: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.view.TextureView.updateLayerAndInvalidate:()V
         6: .line 426
            goto 8
         7: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            aconst_null
            invokevirtual android.graphics.SurfaceTexture.setOnFrameAvailableListener:(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
         8: .line 430
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int visibility
        end local 1 // android.view.View changedView
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Landroid/view/TextureView;
            0    9     1  changedView  Landroid/view/View;
            0    9     2   visibility  I
    MethodParameters:
             Name  Flags
      changedView  
      visibility   

  private void updateLayer();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 433
            aload 0 /* this */
            getfield android.view.TextureView.mLock:[Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 434
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mUpdateLayer:Z
         2: .line 433
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: android.view.TextureView java.lang.Object[]
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 436
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/view/TextureView;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  private void updateLayerAndInvalidate();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 439
            aload 0 /* this */
            getfield android.view.TextureView.mLock:[Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 440
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mUpdateLayer:Z
         2: .line 439
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: android.view.TextureView java.lang.Object[]
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.view.TextureView.invalidate:()V
         7: .line 443
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/view/TextureView;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  private void applyUpdate();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 446
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            ifnonnull 2
         1: .line 447
            return
         2: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mLock:[Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 451
            aload 0 /* this */
            getfield android.view.TextureView.mUpdateLayer:Z
            ifeq 6
         4: .line 452
            aload 0 /* this */
            iconst_0
            putfield android.view.TextureView.mUpdateLayer:Z
         5: .line 453
            goto 8
         6: .line 454
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 1
            monitorexit
         7: return
         8: .line 450
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 458
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            aload 0 /* this */
            invokevirtual android.view.TextureView.getWidth:()I
            aload 0 /* this */
            invokevirtual android.view.TextureView.getHeight:()I
            aload 0 /* this */
            getfield android.view.TextureView.mOpaque:Z
            invokevirtual android.view.TextureLayer.prepare:(IIZ)Z
            pop
        13: .line 459
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            invokevirtual android.view.TextureLayer.updateSurfaceTexture:()V
        14: .line 461
            aload 0 /* this */
            getfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
            ifnull 16
        15: .line 462
            aload 0 /* this */
            getfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            invokeinterface android.view.TextureView$SurfaceTextureListener.onSurfaceTextureUpdated:(Landroid/graphics/SurfaceTexture;)V
        16: .line 464
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Landroid/view/TextureView;
      Exception table:
        from    to  target  type
           3     7      10  any
           8     9      10  any
          10    11      10  any

  public void setTransform(android.graphics.Matrix);
    descriptor: (Landroid/graphics/Matrix;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.Matrix transform
         0: .line 484
            aload 0 /* this */
            getfield android.view.TextureView.mMatrix:Landroid/graphics/Matrix;
            aload 1 /* transform */
            invokevirtual android.graphics.Matrix.set:(Landroid/graphics/Matrix;)V
         1: .line 485
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mMatrixChanged:Z
         2: .line 486
            aload 0 /* this */
            invokevirtual android.view.TextureView.invalidateParentIfNeeded:()V
         3: .line 487
            return
        end local 1 // android.graphics.Matrix transform
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Landroid/view/TextureView;
            0    4     1  transform  Landroid/graphics/Matrix;
    MethodParameters:
           Name  Flags
      transform  

  public android.graphics.Matrix getTransform(android.graphics.Matrix);
    descriptor: (Landroid/graphics/Matrix;)Landroid/graphics/Matrix;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.Matrix transform
         0: .line 501
            aload 1 /* transform */
            ifnonnull 2
         1: .line 502
            new android.graphics.Matrix
            dup
            invokespecial android.graphics.Matrix.<init>:()V
            astore 1 /* transform */
         2: .line 505
      StackMap locals:
      StackMap stack:
            aload 1 /* transform */
            aload 0 /* this */
            getfield android.view.TextureView.mMatrix:Landroid/graphics/Matrix;
            invokevirtual android.graphics.Matrix.set:(Landroid/graphics/Matrix;)V
         3: .line 507
            aload 1 /* transform */
            areturn
        end local 1 // android.graphics.Matrix transform
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Landroid/view/TextureView;
            0    4     1  transform  Landroid/graphics/Matrix;
    MethodParameters:
           Name  Flags
      transform  

  private void applyTransformMatrix();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 511
            aload 0 /* this */
            getfield android.view.TextureView.mMatrixChanged:Z
            ifeq 3
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            ifnull 3
         1: .line 512
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            aload 0 /* this */
            getfield android.view.TextureView.mMatrix:Landroid/graphics/Matrix;
            invokevirtual android.view.TextureLayer.setTransform:(Landroid/graphics/Matrix;)V
         2: .line 513
            aload 0 /* this */
            iconst_0
            putfield android.view.TextureView.mMatrixChanged:Z
         3: .line 515
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/view/TextureView;

  public android.graphics.Bitmap getBitmap();
    descriptor: ()Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 538
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual android.view.TextureView.getWidth:()I
            aload 0 /* this */
            invokevirtual android.view.TextureView.getHeight:()I
            invokevirtual android.view.TextureView.getBitmap:(II)Landroid/graphics/Bitmap;
            areturn
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/TextureView;

  public android.graphics.Bitmap getBitmap(int, int);
    descriptor: (II)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.view.TextureView this
        start local 1 // int width
        start local 2 // int height
         0: .line 565
            aload 0 /* this */
            invokevirtual android.view.TextureView.isAvailable:()Z
            ifeq 4
            iload 1 /* width */
            ifle 4
            iload 2 /* height */
            ifle 4
         1: .line 566
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual android.view.TextureView.getResources:()Landroid/content/res/Resources;
            invokevirtual android.content.res.Resources.getDisplayMetrics:()Landroid/util/DisplayMetrics;
         2: .line 567
            iload 1 /* width */
            iload 2 /* height */
            getstatic android.graphics.Bitmap$Config.ARGB_8888:Landroid/graphics/Bitmap$Config;
         3: .line 566
            invokestatic android.graphics.Bitmap.createBitmap:(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
            invokevirtual android.view.TextureView.getBitmap:(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
            areturn
         4: .line 569
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/TextureView;
            0    5     1   width  I
            0    5     2  height  I
    MethodParameters:
        Name  Flags
      width   
      height  

  public android.graphics.Bitmap getBitmap(android.graphics.Bitmap);
    descriptor: (Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.Bitmap bitmap
         0: .line 596
            aload 1 /* bitmap */
            ifnull 7
            aload 0 /* this */
            invokevirtual android.view.TextureView.isAvailable:()Z
            ifeq 7
         1: .line 597
            aload 0 /* this */
            invokevirtual android.view.TextureView.applyUpdate:()V
         2: .line 598
            aload 0 /* this */
            invokevirtual android.view.TextureView.applyTransformMatrix:()V
         3: .line 604
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            ifnonnull 5
            aload 0 /* this */
            getfield android.view.TextureView.mUpdateSurface:Z
            ifeq 5
         4: .line 605
            aload 0 /* this */
            invokevirtual android.view.TextureView.getTextureLayer:()Landroid/view/TextureLayer;
            pop
         5: .line 608
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            ifnull 7
         6: .line 609
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            aload 1 /* bitmap */
            invokevirtual android.view.TextureLayer.copyInto:(Landroid/graphics/Bitmap;)Z
            pop
         7: .line 612
      StackMap locals:
      StackMap stack:
            aload 1 /* bitmap */
            areturn
        end local 1 // android.graphics.Bitmap bitmap
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Landroid/view/TextureView;
            0    8     1  bitmap  Landroid/graphics/Bitmap;
    MethodParameters:
        Name  Flags
      bitmap  

  public boolean isAvailable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 621
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/TextureView;

  public android.graphics.Canvas lockCanvas();
    descriptor: ()Landroid/graphics/Canvas;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 648
            aload 0 /* this */
            aconst_null
            invokevirtual android.view.TextureView.lockCanvas:(Landroid/graphics/Rect;)Landroid/graphics/Canvas;
            areturn
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/TextureView;

  public android.graphics.Canvas lockCanvas(android.graphics.Rect);
    descriptor: (Landroid/graphics/Rect;)Landroid/graphics/Canvas;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.Rect dirty
         0: .line 671
            aload 0 /* this */
            invokevirtual android.view.TextureView.isAvailable:()Z
            ifne 1
            aconst_null
            areturn
         1: .line 673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mCanvas:Landroid/graphics/Canvas;
            ifnonnull 3
         2: .line 674
            aload 0 /* this */
            new android.graphics.Canvas
            dup
            invokespecial android.graphics.Canvas.<init>:()V
            putfield android.view.TextureView.mCanvas:Landroid/graphics/Canvas;
         3: .line 677
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mNativeWindowLock:[Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 678
            aload 0 /* this */
            getfield android.view.TextureView.mNativeWindow:J
            aload 0 /* this */
            getfield android.view.TextureView.mCanvas:Landroid/graphics/Canvas;
            aload 1 /* dirty */
            invokestatic android.view.TextureView.nLockCanvas:(JLandroid/graphics/Canvas;Landroid/graphics/Rect;)Z
            ifne 7
         5: .line 679
            aload 2
            monitorexit
         6: aconst_null
            areturn
         7: .line 677
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 682
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.TextureView.mCanvas:Landroid/graphics/Canvas;
            invokevirtual android.graphics.Canvas.save:()I
            putfield android.view.TextureView.mSaveCount:I
        12: .line 684
            aload 0 /* this */
            getfield android.view.TextureView.mCanvas:Landroid/graphics/Canvas;
            areturn
        end local 1 // android.graphics.Rect dirty
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Landroid/view/TextureView;
            0   13     1  dirty  Landroid/graphics/Rect;
      Exception table:
        from    to  target  type
           4     6       9  any
           7     8       9  any
           9    10       9  any
    MethodParameters:
       Name  Flags
      dirty  

  public void unlockCanvasAndPost(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.Canvas canvas
         0: .line 699
            aload 0 /* this */
            getfield android.view.TextureView.mCanvas:Landroid/graphics/Canvas;
            ifnull 9
            aload 1 /* canvas */
            aload 0 /* this */
            getfield android.view.TextureView.mCanvas:Landroid/graphics/Canvas;
            if_acmpne 9
         1: .line 700
            aload 1 /* canvas */
            aload 0 /* this */
            getfield android.view.TextureView.mSaveCount:I
            invokevirtual android.graphics.Canvas.restoreToCount:(I)V
         2: .line 701
            aload 0 /* this */
            iconst_0
            putfield android.view.TextureView.mSaveCount:I
         3: .line 703
            aload 0 /* this */
            getfield android.view.TextureView.mNativeWindowLock:[Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 704
            aload 0 /* this */
            getfield android.view.TextureView.mNativeWindow:J
            aload 0 /* this */
            getfield android.view.TextureView.mCanvas:Landroid/graphics/Canvas;
            invokestatic android.view.TextureView.nUnlockCanvasAndPost:(JLandroid/graphics/Canvas;)V
         5: .line 703
            aload 2
            monitorexit
         6: goto 9
      StackMap locals: android.view.TextureView android.graphics.Canvas java.lang.Object[]
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 707
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Landroid/view/TextureView;
            0   10     1  canvas  Landroid/graphics/Canvas;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
    MethodParameters:
        Name  Flags
      canvas  

  public android.graphics.SurfaceTexture getSurfaceTexture();
    descriptor: ()Landroid/graphics/SurfaceTexture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 717
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            areturn
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/TextureView;

  public void setSurfaceTexture(android.graphics.SurfaceTexture);
    descriptor: (Landroid/graphics/SurfaceTexture;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.graphics.SurfaceTexture surfaceTexture
         0: .line 736
            aload 1 /* surfaceTexture */
            ifnonnull 2
         1: .line 737
            new java.lang.NullPointerException
            dup
            ldc "surfaceTexture must not be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 739
      StackMap locals:
      StackMap stack:
            aload 1 /* surfaceTexture */
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            if_acmpne 4
         3: .line 740
            new java.lang.IllegalArgumentException
            dup
            ldc "Trying to setSurfaceTexture to the same SurfaceTexture that's already set."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 743
      StackMap locals:
      StackMap stack:
            aload 1 /* surfaceTexture */
            invokevirtual android.graphics.SurfaceTexture.isReleased:()Z
            ifeq 6
         5: .line 744
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot setSurfaceTexture to a released SurfaceTexture"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 747
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            ifnull 9
         7: .line 748
            aload 0 /* this */
            invokevirtual android.view.TextureView.nDestroyNativeWindow:()V
         8: .line 749
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            invokevirtual android.graphics.SurfaceTexture.release:()V
         9: .line 751
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* surfaceTexture */
            putfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
        10: .line 752
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            invokevirtual android.view.TextureView.nCreateNativeWindow:(Landroid/graphics/SurfaceTexture;)V
        11: .line 760
            aload 0 /* this */
            getfield android.view.TextureView.mViewFlags:I
            bipush 12
            iand
            ifne 13
            aload 0 /* this */
            getfield android.view.TextureView.mLayer:Landroid/view/TextureLayer;
            ifnull 13
        12: .line 761
            aload 0 /* this */
            getfield android.view.TextureView.mSurface:Landroid/graphics/SurfaceTexture;
            aload 0 /* this */
            getfield android.view.TextureView.mUpdateListener:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
            aload 0 /* this */
            getfield android.view.TextureView.mAttachInfo:Landroid/view/View$AttachInfo;
            getfield android.view.View$AttachInfo.mHandler:Landroid/os/Handler;
            invokevirtual android.graphics.SurfaceTexture.setOnFrameAvailableListener:(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V
        13: .line 763
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.view.TextureView.mUpdateSurface:Z
        14: .line 764
            aload 0 /* this */
            invokevirtual android.view.TextureView.invalidateParentIfNeeded:()V
        15: .line 765
            return
        end local 1 // android.graphics.SurfaceTexture surfaceTexture
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Landroid/view/TextureView;
            0   16     1  surfaceTexture  Landroid/graphics/SurfaceTexture;
    MethodParameters:
                Name  Flags
      surfaceTexture  

  public android.view.TextureView$SurfaceTextureListener getSurfaceTextureListener();
    descriptor: ()Landroid/view/TextureView$SurfaceTextureListener;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.TextureView this
         0: .line 775
            aload 0 /* this */
            getfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
            areturn
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/TextureView;

  public void setSurfaceTextureListener(android.view.TextureView$SurfaceTextureListener);
    descriptor: (Landroid/view/TextureView$SurfaceTextureListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.TextureView this
        start local 1 // android.view.TextureView$SurfaceTextureListener listener
         0: .line 786
            aload 0 /* this */
            aload 1 /* listener */
            putfield android.view.TextureView.mListener:Landroid/view/TextureView$SurfaceTextureListener;
         1: .line 787
            return
        end local 1 // android.view.TextureView$SurfaceTextureListener listener
        end local 0 // android.view.TextureView this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/view/TextureView;
            0    2     1  listener  Landroid/view/TextureView$SurfaceTextureListener;
    MethodParameters:
          Name  Flags
      listener  

  private native void nCreateNativeWindow(android.graphics.SurfaceTexture);
    descriptor: (Landroid/graphics/SurfaceTexture;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
         Name  Flags
      surface  

  private native void nDestroyNativeWindow();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private static native boolean nLockCanvas(long, android.graphics.Canvas, android.graphics.Rect);
    descriptor: (JLandroid/graphics/Canvas;Landroid/graphics/Rect;)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
              Name  Flags
      nativeWindow  
      canvas        
      dirty         

  private static native void nUnlockCanvasAndPost(long, android.graphics.Canvas);
    descriptor: (JLandroid/graphics/Canvas;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
              Name  Flags
      nativeWindow  
      canvas        
}
SourceFile: "TextureView.java"
NestMembers:
  android.view.TextureView$1  android.view.TextureView$SurfaceTextureListener
InnerClasses:
  public final Config = android.graphics.Bitmap$Config of android.graphics.Bitmap
  public abstract OnFrameAvailableListener = android.graphics.SurfaceTexture$OnFrameAvailableListener of android.graphics.SurfaceTexture
  android.view.TextureView$1
  public abstract SurfaceTextureListener = android.view.TextureView$SurfaceTextureListener of android.view.TextureView
  final AttachInfo = android.view.View$AttachInfo of android.view.View