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

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  final java.util.ArrayList<android.view.SurfaceHolder$Callback> mCallbacks;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/ArrayList<Landroid/view/SurfaceHolder$Callback;>;

  final int[] mLocation;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  final java.util.concurrent.locks.ReentrantLock mSurfaceLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0010) ACC_FINAL

  final android.view.Surface mSurface;
    descriptor: Landroid/view/Surface;
    flags: (0x0010) ACC_FINAL

  boolean mDrawingStopped;
    descriptor: Z
    flags: (0x0000) 

  boolean mDrawFinished;
    descriptor: Z
    flags: (0x0000) 

  final android.graphics.Rect mScreenRect;
    descriptor: Landroid/graphics/Rect;
    flags: (0x0010) ACC_FINAL

  android.view.SurfaceSession mSurfaceSession;
    descriptor: Landroid/view/SurfaceSession;
    flags: (0x0000) 

  android.view.SurfaceView$SurfaceControlWithBackground mSurfaceControl;
    descriptor: Landroid/view/SurfaceView$SurfaceControlWithBackground;
    flags: (0x0000) 

  android.view.SurfaceControl mDeferredDestroySurfaceControl;
    descriptor: Landroid/view/SurfaceControl;
    flags: (0x0000) 

  final android.graphics.Rect mTmpRect;
    descriptor: Landroid/graphics/Rect;
    flags: (0x0010) ACC_FINAL

  final android.content.res.Configuration mConfiguration;
    descriptor: Landroid/content/res/Configuration;
    flags: (0x0010) ACC_FINAL

  int mSubLayer;
    descriptor: I
    flags: (0x0000) 

  boolean mIsCreating;
    descriptor: Z
    flags: (0x0000) 

  private volatile boolean mRtHandlingPositionUpdates;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final android.view.ViewTreeObserver$OnScrollChangedListener mScrollChangedListener;
    descriptor: Landroid/view/ViewTreeObserver$OnScrollChangedListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.view.ViewTreeObserver$OnPreDrawListener mDrawListener;
    descriptor: Landroid/view/ViewTreeObserver$OnPreDrawListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  boolean mRequestedVisible;
    descriptor: Z
    flags: (0x0000) 

  boolean mWindowVisibility;
    descriptor: Z
    flags: (0x0000) 

  boolean mLastWindowVisibility;
    descriptor: Z
    flags: (0x0000) 

  boolean mViewVisibility;
    descriptor: Z
    flags: (0x0000) 

  boolean mWindowStopped;
    descriptor: Z
    flags: (0x0000) 

  int mRequestedWidth;
    descriptor: I
    flags: (0x0000) 

  int mRequestedHeight;
    descriptor: I
    flags: (0x0000) 

  int mRequestedFormat;
    descriptor: I
    flags: (0x0000) 

  boolean mHaveFrame;
    descriptor: Z
    flags: (0x0000) 

  boolean mSurfaceCreated;
    descriptor: Z
    flags: (0x0000) 

  long mLastLockTime;
    descriptor: J
    flags: (0x0000) 

  boolean mVisible;
    descriptor: Z
    flags: (0x0000) 

  int mWindowSpaceLeft;
    descriptor: I
    flags: (0x0000) 

  int mWindowSpaceTop;
    descriptor: I
    flags: (0x0000) 

  int mSurfaceWidth;
    descriptor: I
    flags: (0x0000) 

  int mSurfaceHeight;
    descriptor: I
    flags: (0x0000) 

  int mFormat;
    descriptor: I
    flags: (0x0000) 

  final android.graphics.Rect mSurfaceFrame;
    descriptor: Landroid/graphics/Rect;
    flags: (0x0010) ACC_FINAL

  int mLastSurfaceWidth;
    descriptor: I
    flags: (0x0000) 

  int mLastSurfaceHeight;
    descriptor: I
    flags: (0x0000) 

  private android.content.res.CompatibilityInfo$Translator mTranslator;
    descriptor: Landroid/content/res/CompatibilityInfo$Translator;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

  private android.view.SurfaceControl$Transaction mRtTransaction;
    descriptor: Landroid/view/SurfaceControl$Transaction;
    flags: (0x0002) ACC_PRIVATE

  private android.graphics.Rect mRTLastReportedPosition;
    descriptor: Landroid/graphics/Rect;
    flags: (0x0002) ACC_PRIVATE

  private final android.view.SurfaceHolder mSurfaceHolder;
    descriptor: Landroid/view/SurfaceHolder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // android.content.Context context
         0: .line 185
            aload 0 /* this */
            aload 1 /* context */
            aconst_null
            invokespecial android.view.SurfaceView.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;)V
         1: .line 186
            return
        end local 1 // android.content.Context context
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/view/SurfaceView;
            0    2     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.SurfaceView this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
         0: .line 189
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            iconst_0
            invokespecial android.view.SurfaceView.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;I)V
         1: .line 190
            return
        end local 2 // android.util.AttributeSet attrs
        end local 1 // android.content.Context context
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/view/SurfaceView;
            0    2     1  context  Landroid/content/Context;
            0    2     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=5, locals=4, args_size=4
        start local 0 // android.view.SurfaceView this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
        start local 3 // int defStyleAttr
         0: .line 193
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            iload 3 /* defStyleAttr */
            iconst_0
            invokespecial android.view.SurfaceView.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;II)V
         1: .line 194
            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.SurfaceView this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Landroid/view/SurfaceView;
            0    2     1       context  Landroid/content/Context;
            0    2     2         attrs  Landroid/util/AttributeSet;
            0    2     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.SurfaceView 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 197
            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 101
            aload 0 /* this */
         2: .line 102
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.view.SurfaceView.mCallbacks:Ljava/util/ArrayList;
         3: .line 104
            aload 0 /* this */
            iconst_2
            newarray 10
            putfield android.view.SurfaceView.mLocation:[I
         4: .line 106
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield android.view.SurfaceView.mSurfaceLock:Ljava/util/concurrent/locks/ReentrantLock;
         5: .line 107
            aload 0 /* this */
            new android.view.Surface
            dup
            invokespecial android.view.Surface.<init>:()V
            putfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
         6: .line 108
            aload 0 /* this */
            iconst_1
            putfield android.view.SurfaceView.mDrawingStopped:Z
         7: .line 112
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mDrawFinished:Z
         8: .line 114
            aload 0 /* this */
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            putfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
         9: .line 121
            aload 0 /* this */
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            putfield android.view.SurfaceView.mTmpRect:Landroid/graphics/Rect;
        10: .line 122
            aload 0 /* this */
            new android.content.res.Configuration
            dup
            invokespecial android.content.res.Configuration.<init>:()V
            putfield android.view.SurfaceView.mConfiguration:Landroid/content/res/Configuration;
        11: .line 124
            aload 0 /* this */
            bipush -2
            putfield android.view.SurfaceView.mSubLayer:I
        12: .line 126
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mIsCreating:Z
        13: .line 127
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mRtHandlingPositionUpdates:Z
        14: .line 129
            aload 0 /* this */
        15: .line 130
            new android.view.SurfaceView$1
            dup
            aload 0 /* this */
            invokespecial android.view.SurfaceView$1.<init>:(Landroid/view/SurfaceView;)V
            putfield android.view.SurfaceView.mScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
        16: .line 137
            aload 0 /* this */
        17: .line 138
            new android.view.SurfaceView$2
            dup
            aload 0 /* this */
            invokespecial android.view.SurfaceView$2.<init>:(Landroid/view/SurfaceView;)V
            putfield android.view.SurfaceView.mDrawListener:Landroid/view/ViewTreeObserver$OnPreDrawListener;
        18: .line 148
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mRequestedVisible:Z
        19: .line 149
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mWindowVisibility:Z
        20: .line 150
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mLastWindowVisibility:Z
        21: .line 151
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mViewVisibility:Z
        22: .line 152
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mWindowStopped:Z
        23: .line 154
            aload 0 /* this */
            iconst_m1
            putfield android.view.SurfaceView.mRequestedWidth:I
        24: .line 155
            aload 0 /* this */
            iconst_m1
            putfield android.view.SurfaceView.mRequestedHeight:I
        25: .line 159
            aload 0 /* this */
            iconst_4
            putfield android.view.SurfaceView.mRequestedFormat:I
        26: .line 161
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mHaveFrame:Z
        27: .line 162
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mSurfaceCreated:Z
        28: .line 163
            aload 0 /* this */
            lconst_0
            putfield android.view.SurfaceView.mLastLockTime:J
        29: .line 165
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mVisible:Z
        30: .line 166
            aload 0 /* this */
            iconst_m1
            putfield android.view.SurfaceView.mWindowSpaceLeft:I
        31: .line 167
            aload 0 /* this */
            iconst_m1
            putfield android.view.SurfaceView.mWindowSpaceTop:I
        32: .line 168
            aload 0 /* this */
            iconst_m1
            putfield android.view.SurfaceView.mSurfaceWidth:I
        33: .line 169
            aload 0 /* this */
            iconst_m1
            putfield android.view.SurfaceView.mSurfaceHeight:I
        34: .line 170
            aload 0 /* this */
            iconst_m1
            putfield android.view.SurfaceView.mFormat:I
        35: .line 171
            aload 0 /* this */
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            putfield android.view.SurfaceView.mSurfaceFrame:Landroid/graphics/Rect;
        36: .line 172
            aload 0 /* this */
            iconst_m1
            putfield android.view.SurfaceView.mLastSurfaceWidth:I
            aload 0 /* this */
            iconst_m1
            putfield android.view.SurfaceView.mLastSurfaceHeight:I
        37: .line 178
            aload 0 /* this */
            iconst_4
            putfield android.view.SurfaceView.mSurfaceFlags:I
        38: .line 182
            aload 0 /* this */
            new android.view.SurfaceControl$Transaction
            dup
            invokespecial android.view.SurfaceControl$Transaction.<init>:()V
            putfield android.view.SurfaceView.mRtTransaction:Landroid/view/SurfaceControl$Transaction;
        39: .line 811
            aload 0 /* this */
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            putfield android.view.SurfaceView.mRTLastReportedPosition:Landroid/graphics/Rect;
        40: .line 931
            aload 0 /* this */
            new android.view.SurfaceView$3
            dup
            aload 0 /* this */
            invokespecial android.view.SurfaceView$3.<init>:(Landroid/view/SurfaceView;)V
            putfield android.view.SurfaceView.mSurfaceHolder:Landroid/view/SurfaceHolder;
        41: .line 198
            aload 0 /* this */
            getfield android.view.SurfaceView.mRenderNode:Landroid/view/RenderNode;
            aload 0 /* this */
            invokevirtual android.view.RenderNode.requestPositionUpdates:(Landroid/view/SurfaceView;)V
        42: .line 200
            aload 0 /* this */
            iconst_1
            invokevirtual android.view.SurfaceView.setWillNotDraw:(Z)V
        43: .line 201
            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.SurfaceView this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   44     0          this  Landroid/view/SurfaceView;
            0   44     1       context  Landroid/content/Context;
            0   44     2         attrs  Landroid/util/AttributeSet;
            0   44     3  defStyleAttr  I
            0   44     4   defStyleRes  I
    MethodParameters:
              Name  Flags
      context       
      attrs         
      defStyleAttr  
      defStyleRes   

  public android.view.SurfaceHolder getHolder();
    descriptor: ()Landroid/view/SurfaceHolder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 210
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHolder:Landroid/view/SurfaceHolder;
            areturn
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/SurfaceView;

  private void updateRequestedVisibility();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 214
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mViewVisibility:Z
            ifeq 1
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowVisibility:Z
            ifeq 1
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowStopped:Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: android.view.SurfaceView
         1: iconst_0
      StackMap locals: android.view.SurfaceView
      StackMap stack: android.view.SurfaceView int
         2: putfield android.view.SurfaceView.mRequestedVisible:Z
         3: .line 215
            return
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/view/SurfaceView;

  public void windowStopped(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // boolean stopped
         0: .line 220
            aload 0 /* this */
            iload 1 /* stopped */
            putfield android.view.SurfaceView.mWindowStopped:Z
         1: .line 221
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.updateRequestedVisibility:()V
         2: .line 222
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.updateSurface:()V
         3: .line 223
            return
        end local 1 // boolean stopped
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/view/SurfaceView;
            0    4     1  stopped  Z
    MethodParameters:
         Name  Flags
      stopped  

  protected void onAttachedToWindow();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 227
            aload 0 /* this */
            invokespecial android.view.View.onAttachedToWindow:()V
         1: .line 229
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getViewRootImpl:()Landroid/view/ViewRootImpl;
            aload 0 /* this */
            invokevirtual android.view.ViewRootImpl.addWindowStoppedCallback:(Landroid/view/ViewRootImpl$WindowStoppedCallback;)V
         2: .line 230
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mWindowStopped:Z
         3: .line 232
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getVisibility:()I
            ifne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: android.view.SurfaceView
         4: iconst_0
      StackMap locals: android.view.SurfaceView
      StackMap stack: android.view.SurfaceView int
         5: putfield android.view.SurfaceView.mViewVisibility:Z
         6: .line 233
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.updateRequestedVisibility:()V
         7: .line 235
            aload 0 /* this */
            iconst_1
            putfield android.view.SurfaceView.mAttachedToWindow:Z
         8: .line 236
            aload 0 /* this */
            getfield android.view.SurfaceView.mParent:Landroid/view/ViewParent;
            aload 0 /* this */
            invokeinterface android.view.ViewParent.requestTransparentRegion:(Landroid/view/View;)V
         9: .line 237
            aload 0 /* this */
            getfield android.view.SurfaceView.mGlobalListenersAdded:Z
            ifne 14
        10: .line 238
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getViewTreeObserver:()Landroid/view/ViewTreeObserver;
            astore 1 /* observer */
        start local 1 // android.view.ViewTreeObserver observer
        11: .line 239
            aload 1 /* observer */
            aload 0 /* this */
            getfield android.view.SurfaceView.mScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
            invokevirtual android.view.ViewTreeObserver.addOnScrollChangedListener:(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
        12: .line 240
            aload 1 /* observer */
            aload 0 /* this */
            getfield android.view.SurfaceView.mDrawListener:Landroid/view/ViewTreeObserver$OnPreDrawListener;
            invokevirtual android.view.ViewTreeObserver.addOnPreDrawListener:(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
        13: .line 241
            aload 0 /* this */
            iconst_1
            putfield android.view.SurfaceView.mGlobalListenersAdded:Z
        end local 1 // android.view.ViewTreeObserver observer
        14: .line 243
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Landroid/view/SurfaceView;
           11   14     1  observer  Landroid/view/ViewTreeObserver;

  protected void onWindowVisibilityChanged(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // int visibility
         0: .line 247
            aload 0 /* this */
            iload 1 /* visibility */
            invokespecial android.view.View.onWindowVisibilityChanged:(I)V
         1: .line 248
            aload 0 /* this */
            iload 1 /* visibility */
            ifne 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: android.view.SurfaceView
         2: iconst_0
      StackMap locals: android.view.SurfaceView int
      StackMap stack: android.view.SurfaceView int
         3: putfield android.view.SurfaceView.mWindowVisibility:Z
         4: .line 249
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.updateRequestedVisibility:()V
         5: .line 250
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.updateSurface:()V
         6: .line 251
            return
        end local 1 // int visibility
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Landroid/view/SurfaceView;
            0    7     1  visibility  I
    MethodParameters:
            Name  Flags
      visibility  

  public void setVisibility(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // int visibility
         0: .line 255
            aload 0 /* this */
            iload 1 /* visibility */
            invokespecial android.view.View.setVisibility:(I)V
         1: .line 256
            aload 0 /* this */
            iload 1 /* visibility */
            ifne 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: android.view.SurfaceView
         2: iconst_0
      StackMap locals: android.view.SurfaceView int
      StackMap stack: android.view.SurfaceView int
         3: putfield android.view.SurfaceView.mViewVisibility:Z
         4: .line 257
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowVisibility:Z
            ifeq 5
            aload 0 /* this */
            getfield android.view.SurfaceView.mViewVisibility:Z
            ifeq 5
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowStopped:Z
            ifne 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 2 /* newRequestedVisible */
        start local 2 // boolean newRequestedVisible
         7: .line 258
            iload 2 /* newRequestedVisible */
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedVisible:Z
            if_icmpeq 9
         8: .line 265
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.requestLayout:()V
         9: .line 267
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* newRequestedVisible */
            putfield android.view.SurfaceView.mRequestedVisible:Z
        10: .line 268
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.updateSurface:()V
        11: .line 269
            return
        end local 2 // boolean newRequestedVisible
        end local 1 // int visibility
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0                 this  Landroid/view/SurfaceView;
            0   12     1           visibility  I
            7   12     2  newRequestedVisible  Z
    MethodParameters:
            Name  Flags
      visibility  

  private void performDrawFinished();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 272
            aload 0 /* this */
            getfield android.view.SurfaceView.mPendingReportDraws:I
            ifle 6
         1: .line 273
            aload 0 /* this */
            iconst_1
            putfield android.view.SurfaceView.mDrawFinished:Z
         2: .line 274
            aload 0 /* this */
            getfield android.view.SurfaceView.mAttachedToWindow:Z
            ifeq 10
         3: .line 275
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.notifyDrawFinished:()V
         4: .line 276
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.invalidate:()V
         5: .line 278
            goto 10
         6: .line 279
      StackMap locals:
      StackMap stack:
            ldc "SurfaceView"
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "finished drawing"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 280
            ldc " but no pending report draw (extra call"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 281
            ldc " to draw completion runnable?)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 279
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        10: .line 283
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Landroid/view/SurfaceView;

  void notifyDrawFinished();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 286
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getViewRootImpl:()Landroid/view/ViewRootImpl;
            astore 1 /* viewRoot */
        start local 1 // android.view.ViewRootImpl viewRoot
         1: .line 287
            aload 1 /* viewRoot */
            ifnull 3
         2: .line 288
            aload 1 /* viewRoot */
            invokevirtual android.view.ViewRootImpl.pendingDrawFinished:()V
         3: .line 290
      StackMap locals: android.view.ViewRootImpl
      StackMap stack:
            aload 0 /* this */
            dup
            getfield android.view.SurfaceView.mPendingReportDraws:I
            iconst_1
            isub
            putfield android.view.SurfaceView.mPendingReportDraws:I
         4: .line 291
            return
        end local 1 // android.view.ViewRootImpl viewRoot
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/view/SurfaceView;
            1    5     1  viewRoot  Landroid/view/ViewRootImpl;

  protected void onDetachedFromWindow();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 295
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getViewRootImpl:()Landroid/view/ViewRootImpl;
            astore 1 /* viewRoot */
        start local 1 // android.view.ViewRootImpl viewRoot
         1: .line 301
            aload 1 /* viewRoot */
            ifnull 3
         2: .line 302
            aload 1 /* viewRoot */
            aload 0 /* this */
            invokevirtual android.view.ViewRootImpl.removeWindowStoppedCallback:(Landroid/view/ViewRootImpl$WindowStoppedCallback;)V
         3: .line 305
      StackMap locals: android.view.ViewRootImpl
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mAttachedToWindow:Z
         4: .line 306
            aload 0 /* this */
            getfield android.view.SurfaceView.mGlobalListenersAdded:Z
            ifeq 11
         5: .line 307
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getViewTreeObserver:()Landroid/view/ViewTreeObserver;
            astore 2 /* observer */
        start local 2 // android.view.ViewTreeObserver observer
         6: .line 308
            aload 2 /* observer */
            aload 0 /* this */
            getfield android.view.SurfaceView.mScrollChangedListener:Landroid/view/ViewTreeObserver$OnScrollChangedListener;
            invokevirtual android.view.ViewTreeObserver.removeOnScrollChangedListener:(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
         7: .line 309
            aload 2 /* observer */
            aload 0 /* this */
            getfield android.view.SurfaceView.mDrawListener:Landroid/view/ViewTreeObserver$OnPreDrawListener;
            invokevirtual android.view.ViewTreeObserver.removeOnPreDrawListener:(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
         8: .line 310
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mGlobalListenersAdded:Z
        end local 2 // android.view.ViewTreeObserver observer
         9: .line 313
            goto 11
        10: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.notifyDrawFinished:()V
        11: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mPendingReportDraws:I
            ifgt 10
        12: .line 317
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mRequestedVisible:Z
        13: .line 319
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.updateSurface:()V
        14: .line 320
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            ifnull 16
        15: .line 321
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.destroy:()V
        16: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
        17: .line 325
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mHaveFrame:Z
        18: .line 327
            aload 0 /* this */
            invokespecial android.view.View.onDetachedFromWindow:()V
        19: .line 328
            return
        end local 1 // android.view.ViewRootImpl viewRoot
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Landroid/view/SurfaceView;
            1   20     1  viewRoot  Landroid/view/ViewRootImpl;
            6    9     2  observer  Landroid/view/ViewTreeObserver;

  protected void onMeasure(int, int);
    descriptor: (II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.view.SurfaceView this
        start local 1 // int widthMeasureSpec
        start local 2 // int heightMeasureSpec
         0: .line 332
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedWidth:I
            iflt 2
         1: .line 333
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedWidth:I
            iload 1 /* widthMeasureSpec */
            iconst_0
            invokestatic android.view.SurfaceView.resolveSizeAndState:(III)I
            goto 3
         2: .line 334
      StackMap locals:
      StackMap stack:
            iconst_0
            iload 1 /* widthMeasureSpec */
            invokestatic android.view.SurfaceView.getDefaultSize:(II)I
         3: .line 332
      StackMap locals:
      StackMap stack: int
            istore 3 /* width */
        start local 3 // int width
         4: .line 335
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedHeight:I
            iflt 6
         5: .line 336
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedHeight:I
            iload 2 /* heightMeasureSpec */
            iconst_0
            invokestatic android.view.SurfaceView.resolveSizeAndState:(III)I
            goto 7
         6: .line 337
      StackMap locals: int
      StackMap stack:
            iconst_0
            iload 2 /* heightMeasureSpec */
            invokestatic android.view.SurfaceView.getDefaultSize:(II)I
         7: .line 335
      StackMap locals:
      StackMap stack: int
            istore 4 /* height */
        start local 4 // int height
         8: .line 338
            aload 0 /* this */
            iload 3 /* width */
            iload 4 /* height */
            invokevirtual android.view.SurfaceView.setMeasuredDimension:(II)V
         9: .line 339
            return
        end local 4 // int height
        end local 3 // int width
        end local 2 // int heightMeasureSpec
        end local 1 // int widthMeasureSpec
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Landroid/view/SurfaceView;
            0   10     1   widthMeasureSpec  I
            0   10     2  heightMeasureSpec  I
            4   10     3              width  I
            8   10     4             height  I
    MethodParameters:
                   Name  Flags
      widthMeasureSpec   
      heightMeasureSpec  

  protected boolean setFrame(int, int, int, int);
    descriptor: (IIII)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // android.view.SurfaceView this
        start local 1 // int left
        start local 2 // int top
        start local 3 // int right
        start local 4 // int bottom
         0: .line 344
            aload 0 /* this */
            iload 1 /* left */
            iload 2 /* top */
            iload 3 /* right */
            iload 4 /* bottom */
            invokespecial android.view.View.setFrame:(IIII)Z
            istore 5 /* result */
        start local 5 // boolean result
         1: .line 345
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.updateSurface:()V
         2: .line 346
            iload 5 /* result */
            ireturn
        end local 5 // boolean result
        end local 4 // int bottom
        end local 3 // int right
        end local 2 // int top
        end local 1 // int left
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/view/SurfaceView;
            0    3     1    left  I
            0    3     2     top  I
            0    3     3   right  I
            0    3     4  bottom  I
            1    3     5  result  Z
    MethodParameters:
        Name  Flags
      left    
      top     
      right   
      bottom  

  public boolean gatherTransparentRegion(android.graphics.Region);
    descriptor: (Landroid/graphics/Region;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // android.graphics.Region region
         0: .line 351
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.isAboveParent:()Z
            ifne 1
            aload 0 /* this */
            getfield android.view.SurfaceView.mDrawFinished:Z
            ifne 2
         1: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* region */
            invokespecial android.view.View.gatherTransparentRegion:(Landroid/graphics/Region;)Z
            ireturn
         2: .line 355
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* opaque */
        start local 2 // boolean opaque
         3: .line 356
            aload 0 /* this */
            getfield android.view.SurfaceView.mPrivateFlags:I
            sipush 128
            iand
            ifne 6
         4: .line 358
            aload 0 /* this */
            aload 1 /* region */
            invokespecial android.view.View.gatherTransparentRegion:(Landroid/graphics/Region;)Z
            istore 2 /* opaque */
         5: .line 359
            goto 14
      StackMap locals: int
      StackMap stack:
         6: aload 1 /* region */
            ifnull 14
         7: .line 360
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getWidth:()I
            istore 3 /* w */
        start local 3 // int w
         8: .line 361
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getHeight:()I
            istore 4 /* h */
        start local 4 // int h
         9: .line 362
            iload 3 /* w */
            ifle 14
            iload 4 /* h */
            ifle 14
        10: .line 363
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            invokevirtual android.view.SurfaceView.getLocationInWindow:([I)V
        11: .line 365
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_0
            iaload
            istore 5 /* l */
        start local 5 // int l
        12: .line 366
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_1
            iaload
            istore 6 /* t */
        start local 6 // int t
        13: .line 367
            aload 1 /* region */
            iload 5 /* l */
            iload 6 /* t */
            iload 5 /* l */
            iload 3 /* w */
            iadd
            iload 6 /* t */
            iload 4 /* h */
            iadd
            getstatic android.graphics.Region$Op.UNION:Landroid/graphics/Region$Op;
            invokevirtual android.graphics.Region.op:(IIIILandroid/graphics/Region$Op;)Z
            pop
        end local 6 // int t
        end local 5 // int l
        end local 4 // int h
        end local 3 // int w
        14: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedFormat:I
            invokestatic android.graphics.PixelFormat.formatHasAlpha:(I)Z
            ifeq 16
        15: .line 371
            iconst_0
            istore 2 /* opaque */
        16: .line 373
      StackMap locals:
      StackMap stack:
            iload 2 /* opaque */
            ireturn
        end local 2 // boolean opaque
        end local 1 // android.graphics.Region region
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Landroid/view/SurfaceView;
            0   17     1  region  Landroid/graphics/Region;
            3   17     2  opaque  Z
            8   14     3       w  I
            9   14     4       h  I
           12   14     5       l  I
           13   14     6       t  I
    MethodParameters:
        Name  Flags
      region  

  public void draw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // android.graphics.Canvas canvas
         0: .line 378
            aload 0 /* this */
            getfield android.view.SurfaceView.mDrawFinished:Z
            ifeq 3
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.isAboveParent:()Z
            ifne 3
         1: .line 380
            aload 0 /* this */
            getfield android.view.SurfaceView.mPrivateFlags:I
            sipush 128
            iand
            ifne 3
         2: .line 382
            aload 1 /* canvas */
            iconst_0
            getstatic android.graphics.PorterDuff$Mode.CLEAR:Landroid/graphics/PorterDuff$Mode;
            invokevirtual android.graphics.Canvas.drawColor:(ILandroid/graphics/PorterDuff$Mode;)V
         3: .line 385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* canvas */
            invokespecial android.view.View.draw:(Landroid/graphics/Canvas;)V
         4: .line 386
            return
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/SurfaceView;
            0    5     1  canvas  Landroid/graphics/Canvas;
    MethodParameters:
        Name  Flags
      canvas  

  protected void dispatchDraw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // android.graphics.Canvas canvas
         0: .line 390
            aload 0 /* this */
            getfield android.view.SurfaceView.mDrawFinished:Z
            ifeq 3
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.isAboveParent:()Z
            ifne 3
         1: .line 392
            aload 0 /* this */
            getfield android.view.SurfaceView.mPrivateFlags:I
            sipush 128
            iand
            sipush 128
            if_icmpne 3
         2: .line 394
            aload 1 /* canvas */
            iconst_0
            getstatic android.graphics.PorterDuff$Mode.CLEAR:Landroid/graphics/PorterDuff$Mode;
            invokevirtual android.graphics.Canvas.drawColor:(ILandroid/graphics/PorterDuff$Mode;)V
         3: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* canvas */
            invokespecial android.view.View.dispatchDraw:(Landroid/graphics/Canvas;)V
         4: .line 398
            return
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/SurfaceView;
            0    5     1  canvas  Landroid/graphics/Canvas;
    MethodParameters:
        Name  Flags
      canvas  

  public void setZOrderMediaOverlay(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // boolean isMediaOverlay
         0: .line 412
            aload 0 /* this */
            iload 1 /* isMediaOverlay */
            ifeq 2
         1: .line 413
            iconst_m1
            goto 3
      StackMap locals:
      StackMap stack: android.view.SurfaceView
         2: bipush -2
         3: .line 412
      StackMap locals: android.view.SurfaceView int
      StackMap stack: android.view.SurfaceView int
            putfield android.view.SurfaceView.mSubLayer:I
         4: .line 414
            return
        end local 1 // boolean isMediaOverlay
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Landroid/view/SurfaceView;
            0    5     1  isMediaOverlay  Z
    MethodParameters:
                Name  Flags
      isMediaOverlay  

  public void setZOrderOnTop(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // boolean onTop
         0: .line 430
            iload 1 /* onTop */
            ifeq 3
         1: .line 431
            aload 0 /* this */
            iconst_1
            putfield android.view.SurfaceView.mSubLayer:I
         2: .line 432
            goto 4
         3: .line 433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush -2
            putfield android.view.SurfaceView.mSubLayer:I
         4: .line 435
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean onTop
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Landroid/view/SurfaceView;
            0    5     1  onTop  Z
    MethodParameters:
       Name  Flags
      onTop  

  public void setSecure(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // boolean isSecure
         0: .line 450
            iload 1 /* isSecure */
            ifeq 3
         1: .line 451
            aload 0 /* this */
            dup
            getfield android.view.SurfaceView.mSurfaceFlags:I
            sipush 128
            ior
            putfield android.view.SurfaceView.mSurfaceFlags:I
         2: .line 452
            goto 4
         3: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield android.view.SurfaceView.mSurfaceFlags:I
            sipush -129
            iand
            putfield android.view.SurfaceView.mSurfaceFlags:I
         4: .line 455
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean isSecure
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/view/SurfaceView;
            0    5     1  isSecure  Z
    MethodParameters:
          Name  Flags
      isSecure  

  private void updateOpaqueFlag();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 458
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedFormat:I
            invokestatic android.graphics.PixelFormat.formatHasAlpha:(I)Z
            ifne 3
         1: .line 459
            aload 0 /* this */
            dup
            getfield android.view.SurfaceView.mSurfaceFlags:I
            sipush 1024
            ior
            putfield android.view.SurfaceView.mSurfaceFlags:I
         2: .line 460
            goto 4
         3: .line 461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield android.view.SurfaceView.mSurfaceFlags:I
            sipush -1025
            iand
            putfield android.view.SurfaceView.mSurfaceFlags:I
         4: .line 463
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/view/SurfaceView;

  private android.graphics.Rect getParentSurfaceInsets();
    descriptor: ()Landroid/graphics/Rect;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 466
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getViewRootImpl:()Landroid/view/ViewRootImpl;
            astore 1 /* root */
        start local 1 // android.view.ViewRootImpl root
         1: .line 467
            aload 1 /* root */
            ifnonnull 3
         2: .line 468
            aconst_null
            areturn
         3: .line 470
      StackMap locals: android.view.ViewRootImpl
      StackMap stack:
            aload 1 /* root */
            getfield android.view.ViewRootImpl.mWindowAttributes:Landroid/view/WindowManager$LayoutParams;
            getfield android.view.WindowManager$LayoutParams.surfaceInsets:Landroid/graphics/Rect;
            areturn
        end local 1 // android.view.ViewRootImpl root
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/view/SurfaceView;
            1    4     1  root  Landroid/view/ViewRootImpl;

  protected void updateSurface();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=20, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 476
            aload 0 /* this */
            getfield android.view.SurfaceView.mHaveFrame:Z
            ifne 2
         1: .line 477
            return
         2: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getViewRootImpl:()Landroid/view/ViewRootImpl;
            astore 1 /* viewRoot */
        start local 1 // android.view.ViewRootImpl viewRoot
         3: .line 480
            aload 1 /* viewRoot */
            ifnull 4
            aload 1 /* viewRoot */
            getfield android.view.ViewRootImpl.mSurface:Landroid/view/Surface;
            ifnull 4
            aload 1 /* viewRoot */
            getfield android.view.ViewRootImpl.mSurface:Landroid/view/Surface;
            invokevirtual android.view.Surface.isValid:()Z
            ifne 5
         4: .line 481
      StackMap locals: android.view.ViewRootImpl
      StackMap stack:
            return
         5: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* viewRoot */
            getfield android.view.ViewRootImpl.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
            putfield android.view.SurfaceView.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
         6: .line 485
            aload 0 /* this */
            getfield android.view.SurfaceView.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
            ifnull 8
         7: .line 486
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
            aload 0 /* this */
            getfield android.view.SurfaceView.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
            invokevirtual android.view.Surface.setCompatibilityTranslator:(Landroid/content/res/CompatibilityInfo$Translator;)V
         8: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedWidth:I
            istore 2 /* myWidth */
        start local 2 // int myWidth
         9: .line 490
            iload 2 /* myWidth */
            ifgt 10
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getWidth:()I
            istore 2 /* myWidth */
        10: .line 491
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedHeight:I
            istore 3 /* myHeight */
        start local 3 // int myHeight
        11: .line 492
            iload 3 /* myHeight */
            ifgt 12
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getHeight:()I
            istore 3 /* myHeight */
        12: .line 494
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mFormat:I
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedFormat:I
            if_icmpeq 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 4 /* formatChanged */
        start local 4 // boolean formatChanged
        15: .line 495
            aload 0 /* this */
            getfield android.view.SurfaceView.mVisible:Z
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedVisible:Z
            ixor
            istore 5 /* visibleChanged */
        start local 5 // boolean visibleChanged
        16: .line 496
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            ifnull 17
            iload 4 /* formatChanged */
            ifne 17
            iload 5 /* visibleChanged */
            ifeq 19
        17: .line 497
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedVisible:Z
            ifeq 19
        18: .line 496
            iconst_1
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: istore 6 /* creating */
        start local 6 // boolean creating
        21: .line 498
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceWidth:I
            iload 2 /* myWidth */
            if_icmpne 22
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHeight:I
            iload 3 /* myHeight */
            if_icmpne 22
            iconst_0
            goto 23
      StackMap locals: int
      StackMap stack:
        22: iconst_1
      StackMap locals:
      StackMap stack: int
        23: istore 7 /* sizeChanged */
        start local 7 // boolean sizeChanged
        24: .line 499
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowVisibility:Z
            aload 0 /* this */
            getfield android.view.SurfaceView.mLastWindowVisibility:Z
            ixor
            istore 8 /* windowVisibleChanged */
        start local 8 // boolean windowVisibleChanged
        25: .line 500
            iconst_0
            istore 9 /* redrawNeeded */
        start local 9 // boolean redrawNeeded
        26: .line 502
            iload 6 /* creating */
            ifne 27
            iload 4 /* formatChanged */
            ifne 27
            iload 7 /* sizeChanged */
            ifne 27
            iload 5 /* visibleChanged */
            ifne 27
            iload 8 /* windowVisibleChanged */
            ifeq 176
        27: .line 503
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            invokevirtual android.view.SurfaceView.getLocationInWindow:([I)V
        28: .line 513
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedVisible:Z
            dup_x1
            putfield android.view.SurfaceView.mVisible:Z
            istore 10 /* visible */
        start local 10 // boolean visible
        29: .line 514
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_0
            iaload
            putfield android.view.SurfaceView.mWindowSpaceLeft:I
        30: .line 515
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_1
            iaload
            putfield android.view.SurfaceView.mWindowSpaceTop:I
        31: .line 516
            aload 0 /* this */
            iload 2 /* myWidth */
            putfield android.view.SurfaceView.mSurfaceWidth:I
        32: .line 517
            aload 0 /* this */
            iload 3 /* myHeight */
            putfield android.view.SurfaceView.mSurfaceHeight:I
        33: .line 518
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedFormat:I
            putfield android.view.SurfaceView.mFormat:I
        34: .line 519
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowVisibility:Z
            putfield android.view.SurfaceView.mLastWindowVisibility:Z
        35: .line 521
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceLeft:I
            putfield android.graphics.Rect.left:I
        36: .line 522
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceTop:I
            putfield android.graphics.Rect.top:I
        37: .line 523
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceLeft:I
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getWidth:()I
            iadd
            putfield android.graphics.Rect.right:I
        38: .line 524
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceTop:I
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getHeight:()I
            iadd
            putfield android.graphics.Rect.bottom:I
        39: .line 525
            aload 0 /* this */
            getfield android.view.SurfaceView.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
            ifnull 41
        40: .line 526
            aload 0 /* this */
            getfield android.view.SurfaceView.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            invokevirtual android.content.res.CompatibilityInfo$Translator.translateRectInAppWindowToScreen:(Landroid/graphics/Rect;)V
        41: .line 529
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getParentSurfaceInsets:()Landroid/graphics/Rect;
            astore 11 /* surfaceInsets */
        start local 11 // android.graphics.Rect surfaceInsets
        42: .line 530
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            aload 11 /* surfaceInsets */
            getfield android.graphics.Rect.left:I
            aload 11 /* surfaceInsets */
            getfield android.graphics.Rect.top:I
            invokevirtual android.graphics.Rect.offset:(II)V
        43: .line 532
            iload 6 /* creating */
            ifeq 59
        44: .line 533
            aload 0 /* this */
            new android.view.SurfaceSession
            dup
            aload 1 /* viewRoot */
            getfield android.view.ViewRootImpl.mSurface:Landroid/view/Surface;
            invokespecial android.view.SurfaceSession.<init>:(Landroid/view/Surface;)V
            putfield android.view.SurfaceView.mSurfaceSession:Landroid/view/SurfaceSession;
        45: .line 534
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            putfield android.view.SurfaceView.mDeferredDestroySurfaceControl:Landroid/view/SurfaceControl;
        46: .line 536
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.updateOpaqueFlag:()V
        47: .line 537
            new java.lang.StringBuilder
            dup
            ldc "SurfaceView - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* viewRoot */
            invokevirtual android.view.ViewRootImpl.getTitle:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 12 /* name */
        start local 12 // java.lang.String name
        48: .line 539
            aload 0 /* this */
        49: new android.view.SurfaceView$SurfaceControlWithBackground
            dup
            aload 0 /* this */
        50: .line 540
            aload 12 /* name */
        51: .line 541
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFlags:I
            sipush 1024
            iand
            ifeq 52
            iconst_1
            goto 53
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect java.lang.String
      StackMap stack: android.view.SurfaceView new 49 new 49 android.view.SurfaceView java.lang.String
        52: iconst_0
        53: .line 542
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect java.lang.String
      StackMap stack: android.view.SurfaceView new 49 new 49 android.view.SurfaceView java.lang.String int
            new android.view.SurfaceControl$Builder
            dup
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceSession:Landroid/view/SurfaceSession;
            invokespecial android.view.SurfaceControl$Builder.<init>:(Landroid/view/SurfaceSession;)V
        54: .line 543
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceWidth:I
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHeight:I
            invokevirtual android.view.SurfaceControl$Builder.setSize:(II)Landroid/view/SurfaceControl$Builder;
        55: .line 544
            aload 0 /* this */
            getfield android.view.SurfaceView.mFormat:I
            invokevirtual android.view.SurfaceControl$Builder.setFormat:(I)Landroid/view/SurfaceControl$Builder;
        56: .line 545
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFlags:I
            invokevirtual android.view.SurfaceControl$Builder.setFlags:(I)Landroid/view/SurfaceControl$Builder;
            invokespecial android.view.SurfaceView$SurfaceControlWithBackground.<init>:(Landroid/view/SurfaceView;Ljava/lang/String;ZLandroid/view/SurfaceControl$Builder;)V
        57: .line 539
            putfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
        end local 12 // java.lang.String name
        58: .line 546
            goto 61
      StackMap locals:
      StackMap stack:
        59: aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            ifnonnull 61
        60: .line 547
            return
        61: .line 550
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 12 /* realSizeChanged */
        start local 12 // boolean realSizeChanged
        62: .line 552
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        63: .line 554
            aload 0 /* this */
            iload 10 /* visible */
            ifeq 64
            iconst_0
            goto 65
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int
      StackMap stack: android.view.SurfaceView
        64: iconst_1
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int
      StackMap stack: android.view.SurfaceView int
        65: putfield android.view.SurfaceView.mDrawingStopped:Z
        66: .line 559
            invokestatic android.view.SurfaceControl.openTransaction:()V
        67: .line 561
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            aload 0 /* this */
            getfield android.view.SurfaceView.mSubLayer:I
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.setLayer:(I)V
        68: .line 562
            aload 0 /* this */
            getfield android.view.SurfaceView.mViewVisibility:Z
            ifeq 71
        69: .line 563
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.show:()V
        70: .line 564
            goto 72
        71: .line 565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.hide:()V
        72: .line 576
      StackMap locals:
      StackMap stack:
            iload 7 /* sizeChanged */
            ifne 73
            iload 6 /* creating */
            ifne 73
            aload 0 /* this */
            getfield android.view.SurfaceView.mRtHandlingPositionUpdates:Z
            ifne 78
        73: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            getfield android.graphics.Rect.left:I
            i2f
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            getfield android.graphics.Rect.top:I
            i2f
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.setPosition:(FF)V
        74: .line 578
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.width:()I
            i2f
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceWidth:I
            i2f
            fdiv
        75: .line 579
            fconst_0
            fconst_0
        76: .line 580
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.height:()I
            i2f
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHeight:I
            i2f
            fdiv
        77: .line 578
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.setMatrix:(FFFF)V
        78: .line 582
      StackMap locals:
      StackMap stack:
            iload 7 /* sizeChanged */
            ifeq 84
        79: .line 583
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceWidth:I
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHeight:I
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.setSize:(II)V
        80: .line 585
            goto 84
      StackMap locals:
      StackMap stack: java.lang.Throwable
        81: astore 13
        82: .line 586
            invokestatic android.view.SurfaceControl.closeTransaction:()V
        83: .line 587
            aload 13
            athrow
        84: .line 586
      StackMap locals:
      StackMap stack:
            invokestatic android.view.SurfaceControl.closeTransaction:()V
        85: .line 589
            iload 7 /* sizeChanged */
            ifne 86
            iload 6 /* creating */
            ifeq 87
        86: .line 590
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 9 /* redrawNeeded */
        87: .line 593
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFrame:Landroid/graphics/Rect;
            iconst_0
            putfield android.graphics.Rect.left:I
        88: .line 594
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFrame:Landroid/graphics/Rect;
            iconst_0
            putfield android.graphics.Rect.top:I
        89: .line 595
            aload 0 /* this */
            getfield android.view.SurfaceView.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
            ifnonnull 93
        90: .line 596
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFrame:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceWidth:I
            putfield android.graphics.Rect.right:I
        91: .line 597
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFrame:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHeight:I
            putfield android.graphics.Rect.bottom:I
        92: .line 598
            goto 96
        93: .line 599
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
            getfield android.content.res.CompatibilityInfo$Translator.applicationInvertedScale:F
            fstore 13 /* appInvertedScale */
        start local 13 // float appInvertedScale
        94: .line 600
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFrame:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceWidth:I
            i2f
            fload 13 /* appInvertedScale */
            fmul
            ldc 0.5
            fadd
            f2i
            putfield android.graphics.Rect.right:I
        95: .line 601
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFrame:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHeight:I
            i2f
            fload 13 /* appInvertedScale */
            fmul
            ldc 0.5
            fadd
            f2i
            putfield android.graphics.Rect.bottom:I
        end local 13 // float appInvertedScale
        96: .line 604
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFrame:Landroid/graphics/Rect;
            getfield android.graphics.Rect.right:I
            istore 13 /* surfaceWidth */
        start local 13 // int surfaceWidth
        97: .line 605
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceFrame:Landroid/graphics/Rect;
            getfield android.graphics.Rect.bottom:I
            istore 14 /* surfaceHeight */
        start local 14 // int surfaceHeight
        98: .line 606
            aload 0 /* this */
            getfield android.view.SurfaceView.mLastSurfaceWidth:I
            iload 13 /* surfaceWidth */
            if_icmpne 101
        99: .line 607
            aload 0 /* this */
            getfield android.view.SurfaceView.mLastSurfaceHeight:I
            iload 14 /* surfaceHeight */
            if_icmpne 101
       100: .line 606
            iconst_0
            goto 102
      StackMap locals: int int
      StackMap stack:
       101: iconst_1
      StackMap locals:
      StackMap stack: int
       102: istore 12 /* realSizeChanged */
       103: .line 608
            aload 0 /* this */
            iload 13 /* surfaceWidth */
            putfield android.view.SurfaceView.mLastSurfaceWidth:I
       104: .line 609
            aload 0 /* this */
            iload 14 /* surfaceHeight */
            putfield android.view.SurfaceView.mLastSurfaceHeight:I
        end local 14 // int surfaceHeight
        end local 13 // int surfaceWidth
       105: .line 610
            goto 109
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int
      StackMap stack: java.lang.Throwable
       106: astore 15
       107: .line 611
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
       108: .line 612
            aload 15
            athrow
       109: .line 611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
       110: .line 615
            iload 9 /* redrawNeeded */
            iload 10 /* visible */
            ifeq 111
            aload 0 /* this */
            getfield android.view.SurfaceView.mDrawFinished:Z
            ifne 111
            iconst_1
            goto 112
      StackMap locals:
      StackMap stack: int
       111: iconst_0
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int
      StackMap stack: int int
       112: ior
            istore 9 /* redrawNeeded */
       113: .line 617
            aconst_null
            astore 13 /* callbacks */
        start local 13 // android.view.SurfaceHolder$Callback[] callbacks
       114: .line 619
            iload 6 /* creating */
            istore 14 /* surfaceChanged */
        start local 14 // boolean surfaceChanged
       115: .line 620
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceCreated:Z
            ifeq 126
            iload 14 /* surfaceChanged */
            ifne 116
            iload 10 /* visible */
            ifne 126
            iload 5 /* visibleChanged */
            ifeq 126
       116: .line 621
      StackMap locals: android.view.SurfaceHolder$Callback[] int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mSurfaceCreated:Z
       117: .line 622
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
            invokevirtual android.view.Surface.isValid:()Z
            ifeq 126
       118: .line 625
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getSurfaceCallbacks:()[Landroid/view/SurfaceHolder$Callback;
            astore 13 /* callbacks */
       119: .line 626
            aload 13 /* callbacks */
            dup
            astore 18
            arraylength
            istore 17
            iconst_0
            istore 16
            goto 123
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int android.view.SurfaceHolder$Callback[] int top int int android.view.SurfaceHolder$Callback[]
      StackMap stack:
       120: aload 18
            iload 16
            aaload
            astore 15 /* c */
        start local 15 // android.view.SurfaceHolder$Callback c
       121: .line 627
            aload 15 /* c */
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHolder:Landroid/view/SurfaceHolder;
            invokeinterface android.view.SurfaceHolder$Callback.surfaceDestroyed:(Landroid/view/SurfaceHolder;)V
        end local 15 // android.view.SurfaceHolder$Callback c
       122: .line 626
            iinc 16 1
      StackMap locals:
      StackMap stack:
       123: iload 16
            iload 17
            if_icmplt 120
       124: .line 640
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
            invokevirtual android.view.Surface.isValid:()Z
            ifeq 126
       125: .line 641
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
            invokevirtual android.view.Surface.forceScopedDisconnect:()V
       126: .line 646
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int android.view.SurfaceHolder$Callback[] int
      StackMap stack:
            iload 6 /* creating */
            ifeq 128
       127: .line 647
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            invokevirtual android.view.Surface.copyFrom:(Landroid/view/SurfaceControl;)V
       128: .line 650
      StackMap locals:
      StackMap stack:
            iload 7 /* sizeChanged */
            ifeq 131
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
       129: .line 651
            bipush 26
            if_icmpge 131
       130: .line 657
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            invokevirtual android.view.Surface.createFrom:(Landroid/view/SurfaceControl;)V
       131: .line 660
      StackMap locals:
      StackMap stack:
            iload 10 /* visible */
            ifeq 167
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
            invokevirtual android.view.Surface.isValid:()Z
            ifeq 167
       132: .line 661
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceCreated:Z
            ifne 142
            iload 14 /* surfaceChanged */
            ifne 133
            iload 5 /* visibleChanged */
            ifeq 142
       133: .line 662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.view.SurfaceView.mSurfaceCreated:Z
       134: .line 663
            aload 0 /* this */
            iconst_1
            putfield android.view.SurfaceView.mIsCreating:Z
       135: .line 666
            aload 13 /* callbacks */
            ifnonnull 137
       136: .line 667
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getSurfaceCallbacks:()[Landroid/view/SurfaceHolder$Callback;
            astore 13 /* callbacks */
       137: .line 669
      StackMap locals:
      StackMap stack:
            aload 13 /* callbacks */
            dup
            astore 18
            arraylength
            istore 17
            iconst_0
            istore 16
            goto 141
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int android.view.SurfaceHolder$Callback[] int top int int android.view.SurfaceHolder$Callback[]
      StackMap stack:
       138: aload 18
            iload 16
            aaload
            astore 15 /* c */
        start local 15 // android.view.SurfaceHolder$Callback c
       139: .line 670
            aload 15 /* c */
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHolder:Landroid/view/SurfaceHolder;
            invokeinterface android.view.SurfaceHolder$Callback.surfaceCreated:(Landroid/view/SurfaceHolder;)V
        end local 15 // android.view.SurfaceHolder$Callback c
       140: .line 669
            iinc 16 1
      StackMap locals:
      StackMap stack:
       141: iload 16
            iload 17
            if_icmplt 138
       142: .line 673
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int android.view.SurfaceHolder$Callback[] int
      StackMap stack:
            iload 6 /* creating */
            ifne 144
            iload 4 /* formatChanged */
            ifne 144
            iload 7 /* sizeChanged */
            ifne 144
       143: .line 674
            iload 5 /* visibleChanged */
            ifne 144
            iload 12 /* realSizeChanged */
            ifeq 151
       144: .line 678
      StackMap locals:
      StackMap stack:
            aload 13 /* callbacks */
            ifnonnull 146
       145: .line 679
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getSurfaceCallbacks:()[Landroid/view/SurfaceHolder$Callback;
            astore 13 /* callbacks */
       146: .line 681
      StackMap locals:
      StackMap stack:
            aload 13 /* callbacks */
            dup
            astore 18
            arraylength
            istore 17
            iconst_0
            istore 16
            goto 150
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int android.view.SurfaceHolder$Callback[] int top int int android.view.SurfaceHolder$Callback[]
      StackMap stack:
       147: aload 18
            iload 16
            aaload
            astore 15 /* c */
        start local 15 // android.view.SurfaceHolder$Callback c
       148: .line 682
            aload 15 /* c */
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHolder:Landroid/view/SurfaceHolder;
            aload 0 /* this */
            getfield android.view.SurfaceView.mFormat:I
            iload 2 /* myWidth */
            iload 3 /* myHeight */
            invokeinterface android.view.SurfaceHolder$Callback.surfaceChanged:(Landroid/view/SurfaceHolder;III)V
        end local 15 // android.view.SurfaceHolder$Callback c
       149: .line 681
            iinc 16 1
      StackMap locals:
      StackMap stack:
       150: iload 16
            iload 17
            if_icmplt 147
       151: .line 685
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int android.view.SurfaceHolder$Callback[] int
      StackMap stack:
            iload 9 /* redrawNeeded */
            ifeq 167
       152: .line 688
            aload 13 /* callbacks */
            ifnonnull 154
       153: .line 689
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getSurfaceCallbacks:()[Landroid/view/SurfaceHolder$Callback;
            astore 13 /* callbacks */
       154: .line 692
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield android.view.SurfaceView.mPendingReportDraws:I
            iconst_1
            iadd
            putfield android.view.SurfaceView.mPendingReportDraws:I
       155: .line 693
            aload 1 /* viewRoot */
            invokevirtual android.view.ViewRootImpl.drawPending:()V
       156: .line 695
            new com.android.internal.view.SurfaceCallbackHelper
            dup
            aload 0 /* this */
            invokedynamic run(Landroid/view/SurfaceView;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  android/view/SurfaceView.onDrawFinished()V (7)
                  ()V
            invokespecial com.android.internal.view.SurfaceCallbackHelper.<init>:(Ljava/lang/Runnable;)V
       157: .line 694
            astore 15 /* sch */
        start local 15 // com.android.internal.view.SurfaceCallbackHelper sch
       158: .line 696
            aload 15 /* sch */
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHolder:Landroid/view/SurfaceHolder;
            aload 13 /* callbacks */
            invokevirtual com.android.internal.view.SurfaceCallbackHelper.dispatchSurfaceRedrawNeededAsync:(Landroid/view/SurfaceHolder;[Landroid/view/SurfaceHolder$Callback;)V
        end local 15 // com.android.internal.view.SurfaceCallbackHelper sch
        end local 14 // boolean surfaceChanged
        end local 13 // android.view.SurfaceHolder$Callback[] callbacks
       159: .line 699
            goto 167
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int
      StackMap stack: java.lang.Throwable
       160: astore 19
       161: .line 700
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mIsCreating:Z
       162: .line 701
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            ifnull 166
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceCreated:Z
            ifne 166
       163: .line 702
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
            invokevirtual android.view.Surface.release:()V
       164: .line 704
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.destroy:()V
       165: .line 705
            aload 0 /* this */
            aconst_null
            putfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
       166: .line 707
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int top top top top top top java.lang.Throwable
      StackMap stack:
            aload 19
            athrow
       167: .line 700
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int int android.graphics.Rect int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mIsCreating:Z
       168: .line 701
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            ifnull 204
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceCreated:Z
            ifne 204
       169: .line 702
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurface:Landroid/view/Surface;
            invokevirtual android.view.Surface.release:()V
       170: .line 704
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.destroy:()V
       171: .line 705
            aload 0 /* this */
            aconst_null
            putfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
        end local 12 // boolean realSizeChanged
        end local 11 // android.graphics.Rect surfaceInsets
        end local 10 // boolean visible
       172: .line 708
            goto 204
      StackMap locals: android.view.SurfaceView android.view.ViewRootImpl int int int int int int int int
      StackMap stack: java.lang.Exception
       173: astore 10 /* ex */
        start local 10 // java.lang.Exception ex
       174: .line 709
            ldc "SurfaceView"
            ldc "Exception configuring surface"
            aload 10 /* ex */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 10 // java.lang.Exception ex
       175: .line 715
            goto 204
       176: .line 718
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            invokevirtual android.view.SurfaceView.getLocationInSurface:([I)V
       177: .line 719
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceLeft:I
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_0
            iaload
            if_icmpne 180
       178: .line 720
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceTop:I
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_1
            iaload
            if_icmpne 180
       179: .line 719
            iconst_0
            goto 181
      StackMap locals:
      StackMap stack:
       180: iconst_1
      StackMap locals:
      StackMap stack: int
       181: istore 10 /* positionChanged */
        start local 10 // boolean positionChanged
       182: .line 721
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getWidth:()I
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.width:()I
            if_icmpne 185
       183: .line 722
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getHeight:()I
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.height:()I
            if_icmpne 185
       184: .line 721
            iconst_0
            goto 186
      StackMap locals: int
      StackMap stack:
       185: iconst_1
      StackMap locals:
      StackMap stack: int
       186: istore 11 /* layoutSizeChanged */
        start local 11 // boolean layoutSizeChanged
       187: .line 723
            iload 10 /* positionChanged */
            ifne 188
            iload 11 /* layoutSizeChanged */
            ifeq 204
       188: .line 724
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_0
            iaload
            putfield android.view.SurfaceView.mWindowSpaceLeft:I
       189: .line 725
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_1
            iaload
            putfield android.view.SurfaceView.mWindowSpaceTop:I
       190: .line 728
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_0
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getWidth:()I
            iastore
       191: .line 729
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_1
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getHeight:()I
            iastore
       192: .line 731
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceLeft:I
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceTop:I
       193: .line 732
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceLeft:I
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_0
            iaload
            iadd
            aload 0 /* this */
            getfield android.view.SurfaceView.mWindowSpaceTop:I
            aload 0 /* this */
            getfield android.view.SurfaceView.mLocation:[I
            iconst_1
            iaload
            iadd
       194: .line 731
            invokevirtual android.graphics.Rect.set:(IIII)V
       195: .line 734
            aload 0 /* this */
            getfield android.view.SurfaceView.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
            ifnull 197
       196: .line 735
            aload 0 /* this */
            getfield android.view.SurfaceView.mTranslator:Landroid/content/res/CompatibilityInfo$Translator;
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            invokevirtual android.content.res.CompatibilityInfo$Translator.translateRectInAppWindowToScreen:(Landroid/graphics/Rect;)V
       197: .line 738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            ifnonnull 199
       198: .line 739
            return
       199: .line 742
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.isHardwareAccelerated:()Z
            ifeq 200
            aload 0 /* this */
            getfield android.view.SurfaceView.mRtHandlingPositionUpdates:Z
            ifne 204
       200: .line 748
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            ldc -1
            invokevirtual android.view.SurfaceView.setParentSpaceRectangle:(Landroid/graphics/Rect;J)V
       201: .line 749
            goto 204
      StackMap locals:
      StackMap stack: java.lang.Exception
       202: astore 12 /* ex */
        start local 12 // java.lang.Exception ex
       203: .line 750
            ldc "SurfaceView"
            ldc "Exception configuring surface"
            aload 12 /* ex */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 12 // java.lang.Exception ex
        end local 11 // boolean layoutSizeChanged
        end local 10 // boolean positionChanged
       204: .line 755
      StackMap locals:
      StackMap stack:
            return
        end local 9 // boolean redrawNeeded
        end local 8 // boolean windowVisibleChanged
        end local 7 // boolean sizeChanged
        end local 6 // boolean creating
        end local 5 // boolean visibleChanged
        end local 4 // boolean formatChanged
        end local 3 // int myHeight
        end local 2 // int myWidth
        end local 1 // android.view.ViewRootImpl viewRoot
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0  205     0                  this  Landroid/view/SurfaceView;
            3  205     1              viewRoot  Landroid/view/ViewRootImpl;
            9  205     2               myWidth  I
           11  205     3              myHeight  I
           15  205     4         formatChanged  Z
           16  205     5        visibleChanged  Z
           21  205     6              creating  Z
           24  205     7           sizeChanged  Z
           25  205     8  windowVisibleChanged  Z
           26  205     9          redrawNeeded  Z
           29  172    10               visible  Z
           42  172    11         surfaceInsets  Landroid/graphics/Rect;
           48   58    12                  name  Ljava/lang/String;
           62  172    12       realSizeChanged  Z
           94   96    13      appInvertedScale  F
           97  105    13          surfaceWidth  I
           98  105    14         surfaceHeight  I
          114  159    13             callbacks  [Landroid/view/SurfaceHolder$Callback;
          115  159    14        surfaceChanged  Z
          121  122    15                     c  Landroid/view/SurfaceHolder$Callback;
          139  140    15                     c  Landroid/view/SurfaceHolder$Callback;
          148  149    15                     c  Landroid/view/SurfaceHolder$Callback;
          158  159    15                   sch  Lcom/android/internal/view/SurfaceCallbackHelper;
          174  175    10                    ex  Ljava/lang/Exception;
          182  204    10       positionChanged  Z
          187  204    11     layoutSizeChanged  Z
          203  204    12                    ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          67    81      81  any
          63   106     106  any
         110   160     160  any
          28    60     173  Class java.lang.Exception
          61   172     173  Class java.lang.Exception
         200   201     202  Class java.lang.Exception

  private void onDrawFinished();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 763
            aload 0 /* this */
            getfield android.view.SurfaceView.mDeferredDestroySurfaceControl:Landroid/view/SurfaceControl;
            ifnull 3
         1: .line 764
            aload 0 /* this */
            getfield android.view.SurfaceView.mDeferredDestroySurfaceControl:Landroid/view/SurfaceControl;
            invokevirtual android.view.SurfaceControl.destroy:()V
         2: .line 765
            aload 0 /* this */
            aconst_null
            putfield android.view.SurfaceView.mDeferredDestroySurfaceControl:Landroid/view/SurfaceControl;
         3: .line 768
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic run(Landroid/view/SurfaceView;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  android/view/SurfaceView.lambda$1()V (7)
                  ()V
            invokevirtual android.view.SurfaceView.runOnUiThread:(Ljava/lang/Runnable;)V
         4: .line 771
            return
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/view/SurfaceView;

  protected void applyChildSurfaceTransaction_renderWorker(android.view.SurfaceControl$Transaction, android.view.Surface, long);
    descriptor: (Landroid/view/SurfaceControl$Transaction;Landroid/view/Surface;J)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=5, args_size=4
        start local 0 // android.view.SurfaceView this
        start local 1 // android.view.SurfaceControl$Transaction t
        start local 2 // android.view.Surface viewRootSurface
        start local 3 // long nextViewRootFrameNumber
         0: .line 782
            return
        end local 3 // long nextViewRootFrameNumber
        end local 2 // android.view.Surface viewRootSurface
        end local 1 // android.view.SurfaceControl$Transaction t
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Landroid/view/SurfaceView;
            0    1     1                        t  Landroid/view/SurfaceControl$Transaction;
            0    1     2          viewRootSurface  Landroid/view/Surface;
            0    1     3  nextViewRootFrameNumber  J
    MethodParameters:
                         Name  Flags
      t                        
      viewRootSurface          
      nextViewRootFrameNumber  

  private void applySurfaceTransforms(android.view.SurfaceControl, android.graphics.Rect, long);
    descriptor: (Landroid/view/SurfaceControl;Landroid/graphics/Rect;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // android.view.SurfaceView this
        start local 1 // android.view.SurfaceControl surface
        start local 2 // android.graphics.Rect position
        start local 3 // long frameNumber
         0: .line 785
            lload 3 /* frameNumber */
            lconst_0
            lcmp
            ifle 5
         1: .line 786
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getViewRootImpl:()Landroid/view/ViewRootImpl;
            astore 5 /* viewRoot */
        start local 5 // android.view.ViewRootImpl viewRoot
         2: .line 788
            aload 0 /* this */
            getfield android.view.SurfaceView.mRtTransaction:Landroid/view/SurfaceControl$Transaction;
            aload 1 /* surface */
            aload 5 /* viewRoot */
            getfield android.view.ViewRootImpl.mSurface:Landroid/view/Surface;
         3: .line 789
            lload 3 /* frameNumber */
         4: .line 788
            invokevirtual android.view.SurfaceControl$Transaction.deferTransactionUntilSurface:(Landroid/view/SurfaceControl;Landroid/view/Surface;J)Landroid/view/SurfaceControl$Transaction;
            pop
        end local 5 // android.view.ViewRootImpl viewRoot
         5: .line 792
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mRtTransaction:Landroid/view/SurfaceControl$Transaction;
            aload 1 /* surface */
            aload 2 /* position */
            getfield android.graphics.Rect.left:I
            i2f
            aload 2 /* position */
            getfield android.graphics.Rect.top:I
            i2f
            invokevirtual android.view.SurfaceControl$Transaction.setPosition:(Landroid/view/SurfaceControl;FF)Landroid/view/SurfaceControl$Transaction;
            pop
         6: .line 793
            aload 0 /* this */
            getfield android.view.SurfaceView.mRtTransaction:Landroid/view/SurfaceControl$Transaction;
            aload 1 /* surface */
         7: .line 794
            aload 2 /* position */
            invokevirtual android.graphics.Rect.width:()I
            i2f
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceWidth:I
            i2f
            fdiv
         8: .line 795
            fconst_0
            fconst_0
         9: .line 796
            aload 2 /* position */
            invokevirtual android.graphics.Rect.height:()I
            i2f
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceHeight:I
            i2f
            fdiv
        10: .line 793
            invokevirtual android.view.SurfaceControl$Transaction.setMatrix:(Landroid/view/SurfaceControl;FFFF)Landroid/view/SurfaceControl$Transaction;
            pop
        11: .line 797
            return
        end local 3 // long frameNumber
        end local 2 // android.graphics.Rect position
        end local 1 // android.view.SurfaceControl surface
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Landroid/view/SurfaceView;
            0   12     1      surface  Landroid/view/SurfaceControl;
            0   12     2     position  Landroid/graphics/Rect;
            0   12     3  frameNumber  J
            2    5     5     viewRoot  Landroid/view/ViewRootImpl;
    MethodParameters:
             Name  Flags
      surface      
      position     
      frameNumber  

  private void setParentSpaceRectangle(android.graphics.Rect, long);
    descriptor: (Landroid/graphics/Rect;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.view.SurfaceView this
        start local 1 // android.graphics.Rect position
        start local 2 // long frameNumber
         0: .line 800
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getViewRootImpl:()Landroid/view/ViewRootImpl;
            astore 4 /* viewRoot */
        start local 4 // android.view.ViewRootImpl viewRoot
         1: .line 802
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            aload 1 /* position */
            lload 2 /* frameNumber */
            invokevirtual android.view.SurfaceView.applySurfaceTransforms:(Landroid/view/SurfaceControl;Landroid/graphics/Rect;J)V
         2: .line 803
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            getfield android.view.SurfaceView$SurfaceControlWithBackground.mBackgroundControl:Landroid/view/SurfaceControl;
            aload 1 /* position */
            lload 2 /* frameNumber */
            invokevirtual android.view.SurfaceView.applySurfaceTransforms:(Landroid/view/SurfaceControl;Landroid/graphics/Rect;J)V
         3: .line 805
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mRtTransaction:Landroid/view/SurfaceControl$Transaction;
            aload 4 /* viewRoot */
            getfield android.view.ViewRootImpl.mSurface:Landroid/view/Surface;
         4: .line 806
            lload 2 /* frameNumber */
         5: .line 805
            invokevirtual android.view.SurfaceView.applyChildSurfaceTransaction_renderWorker:(Landroid/view/SurfaceControl$Transaction;Landroid/view/Surface;J)V
         6: .line 808
            aload 0 /* this */
            getfield android.view.SurfaceView.mRtTransaction:Landroid/view/SurfaceControl$Transaction;
            invokevirtual android.view.SurfaceControl$Transaction.apply:()V
         7: .line 809
            return
        end local 4 // android.view.ViewRootImpl viewRoot
        end local 2 // long frameNumber
        end local 1 // android.graphics.Rect position
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Landroid/view/SurfaceView;
            0    8     1     position  Landroid/graphics/Rect;
            0    8     2  frameNumber  J
            1    8     4     viewRoot  Landroid/view/ViewRootImpl;
    MethodParameters:
             Name  Flags
      position     
      frameNumber  

  public final void updateSurfacePosition_renderWorker(long, int, int, int, int);
    descriptor: (JIIII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // android.view.SurfaceView this
        start local 1 // long frameNumber
        start local 3 // int left
        start local 4 // int top
        start local 5 // int right
        start local 6 // int bottom
         0: .line 819
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            ifnonnull 2
         1: .line 820
            return
         2: .line 831
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.view.SurfaceView.mRtHandlingPositionUpdates:Z
         3: .line 832
            aload 0 /* this */
            getfield android.view.SurfaceView.mRTLastReportedPosition:Landroid/graphics/Rect;
            getfield android.graphics.Rect.left:I
            iload 3 /* left */
            if_icmpne 8
         4: .line 833
            aload 0 /* this */
            getfield android.view.SurfaceView.mRTLastReportedPosition:Landroid/graphics/Rect;
            getfield android.graphics.Rect.top:I
            iload 4 /* top */
            if_icmpne 8
         5: .line 834
            aload 0 /* this */
            getfield android.view.SurfaceView.mRTLastReportedPosition:Landroid/graphics/Rect;
            getfield android.graphics.Rect.right:I
            iload 5 /* right */
            if_icmpne 8
         6: .line 835
            aload 0 /* this */
            getfield android.view.SurfaceView.mRTLastReportedPosition:Landroid/graphics/Rect;
            getfield android.graphics.Rect.bottom:I
            iload 6 /* bottom */
            if_icmpne 8
         7: .line 836
            return
         8: .line 844
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mRTLastReportedPosition:Landroid/graphics/Rect;
            iload 3 /* left */
            iload 4 /* top */
            iload 5 /* right */
            iload 6 /* bottom */
            invokevirtual android.graphics.Rect.set:(IIII)V
         9: .line 845
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mRTLastReportedPosition:Landroid/graphics/Rect;
            lload 1 /* frameNumber */
            invokevirtual android.view.SurfaceView.setParentSpaceRectangle:(Landroid/graphics/Rect;J)V
        10: .line 847
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Exception
        11: astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        12: .line 848
            ldc "SurfaceView"
            ldc "Exception from repositionChild"
            aload 7 /* ex */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 7 // java.lang.Exception ex
        13: .line 850
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int bottom
        end local 5 // int right
        end local 4 // int top
        end local 3 // int left
        end local 1 // long frameNumber
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Landroid/view/SurfaceView;
            0   14     1  frameNumber  J
            0   14     3         left  I
            0   14     4          top  I
            0   14     5        right  I
            0   14     6       bottom  I
           12   13     7           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8    10      11  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      frameNumber  
      left         
      top          
      right        
      bottom       

  public final void surfacePositionLost_uiRtSync(long);
    descriptor: (J)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // long frameNumber
         0: .line 862
            aload 0 /* this */
            getfield android.view.SurfaceView.mRTLastReportedPosition:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.setEmpty:()V
         1: .line 864
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            ifnonnull 3
         2: .line 865
            return
         3: .line 867
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.SurfaceView.mRtHandlingPositionUpdates:Z
            ifeq 10
         4: .line 868
            aload 0 /* this */
            iconst_0
            putfield android.view.SurfaceView.mRtHandlingPositionUpdates:Z
         5: .line 873
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.isEmpty:()Z
            ifne 10
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            aload 0 /* this */
            getfield android.view.SurfaceView.mRTLastReportedPosition:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.equals:(Ljava/lang/Object;)Z
            ifne 10
         6: .line 879
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.SurfaceView.mScreenRect:Landroid/graphics/Rect;
            lload 1 /* frameNumber */
            invokevirtual android.view.SurfaceView.setParentSpaceRectangle:(Landroid/graphics/Rect;J)V
         7: .line 880
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Exception
         8: astore 3 /* ex */
        start local 3 // java.lang.Exception ex
         9: .line 881
            ldc "SurfaceView"
            ldc "Exception configuring surface"
            aload 3 /* ex */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 3 // java.lang.Exception ex
        10: .line 885
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long frameNumber
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Landroid/view/SurfaceView;
            0   11     1  frameNumber  J
            9   10     3           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      frameNumber  

  private android.view.SurfaceHolder$Callback[] getSurfaceCallbacks();
    descriptor: ()[Landroid/view/SurfaceHolder$Callback;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 889
            aload 0 /* this */
            getfield android.view.SurfaceView.mCallbacks:Ljava/util/ArrayList;
            dup
            astore 2
            monitorenter
         1: .line 890
            aload 0 /* this */
            getfield android.view.SurfaceView.mCallbacks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            anewarray android.view.SurfaceHolder$Callback
            astore 1 /* callbacks */
        start local 1 // android.view.SurfaceHolder$Callback[] callbacks
         2: .line 891
            aload 0 /* this */
            getfield android.view.SurfaceView.mCallbacks:Ljava/util/ArrayList;
            aload 1 /* callbacks */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
         3: .line 889
            aload 2
            monitorexit
         4: goto 7
        end local 1 // android.view.SurfaceHolder$Callback[] callbacks
      StackMap locals: android.view.SurfaceView top java.util.ArrayList
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
        start local 1 // android.view.SurfaceHolder$Callback[] callbacks
         7: .line 893
      StackMap locals: android.view.SurfaceView android.view.SurfaceHolder$Callback[]
      StackMap stack:
            aload 1 /* callbacks */
            areturn
        end local 1 // android.view.SurfaceHolder$Callback[] callbacks
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/view/SurfaceView;
            2    5     1  callbacks  [Landroid/view/SurfaceHolder$Callback;
            7    8     1  callbacks  [Landroid/view/SurfaceHolder$Callback;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  private void runOnUiThread(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // java.lang.Runnable runnable
         0: .line 897
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.getHandler:()Landroid/os/Handler;
            astore 2 /* handler */
        start local 2 // android.os.Handler handler
         1: .line 898
            aload 2 /* handler */
            ifnull 4
            aload 2 /* handler */
            invokevirtual android.os.Handler.getLooper:()Landroid/os/Looper;
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            if_acmpeq 4
         2: .line 899
            aload 2 /* handler */
            aload 1 /* runnable */
            invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
            pop
         3: .line 900
            goto 5
         4: .line 901
      StackMap locals: android.os.Handler
      StackMap stack:
            aload 1 /* runnable */
            invokeinterface java.lang.Runnable.run:()V
         5: .line 903
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // java.lang.Runnable runnable
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Landroid/view/SurfaceView;
            0    6     1  runnable  Ljava/lang/Runnable;
            1    6     2   handler  Landroid/os/Handler;
    MethodParameters:
          Name  Flags
      runnable  

  public boolean isFixedSize();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 913
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedWidth:I
            iconst_m1
            if_icmpne 1
            aload 0 /* this */
            getfield android.view.SurfaceView.mRequestedHeight:I
            iconst_m1
            if_icmpne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/SurfaceView;

  private boolean isAboveParent();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 917
            aload 0 /* this */
            getfield android.view.SurfaceView.mSubLayer:I
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/SurfaceView;

  public void setResizeBackgroundColor(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.SurfaceView this
        start local 1 // int bgColor
         0: .line 928
            aload 0 /* this */
            getfield android.view.SurfaceView.mSurfaceControl:Landroid/view/SurfaceView$SurfaceControlWithBackground;
            iload 1 /* bgColor */
            invokevirtual android.view.SurfaceView$SurfaceControlWithBackground.setBackgroundColor:(I)V
         1: .line 929
            return
        end local 1 // int bgColor
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/view/SurfaceView;
            0    2     1  bgColor  I
    MethodParameters:
         Name  Flags
      bgColor  

  private void lambda$1();
    descriptor: ()V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.SurfaceView this
         0: .line 769
            aload 0 /* this */
            invokevirtual android.view.SurfaceView.performDrawFinished:()V
         1: .line 770
            return
        end local 0 // android.view.SurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/SurfaceView;
}
SourceFile: "SurfaceView.java"
NestMembers:
  android.view.SurfaceView$1  android.view.SurfaceView$2  android.view.SurfaceView$3  android.view.SurfaceView$SurfaceControlWithBackground
InnerClasses:
  public Translator = android.content.res.CompatibilityInfo$Translator of android.content.res.CompatibilityInfo
  public final Mode = android.graphics.PorterDuff$Mode of android.graphics.PorterDuff
  public final Op = android.graphics.Region$Op of android.graphics.Region
  public Builder = android.view.SurfaceControl$Builder of android.view.SurfaceControl
  public Transaction = android.view.SurfaceControl$Transaction of android.view.SurfaceControl
  public abstract Callback = android.view.SurfaceHolder$Callback of android.view.SurfaceHolder
  android.view.SurfaceView$1
  android.view.SurfaceView$2
  android.view.SurfaceView$3
  SurfaceControlWithBackground = android.view.SurfaceView$SurfaceControlWithBackground of android.view.SurfaceView
  abstract WindowStoppedCallback = android.view.ViewRootImpl$WindowStoppedCallback of android.view.ViewRootImpl
  public abstract OnPreDrawListener = android.view.ViewTreeObserver$OnPreDrawListener of android.view.ViewTreeObserver
  public abstract OnScrollChangedListener = android.view.ViewTreeObserver$OnScrollChangedListener of android.view.ViewTreeObserver
  public LayoutParams = android.view.WindowManager$LayoutParams of android.view.WindowManager
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles