final class android.view.ViewRootImpl$InvalidateOnAnimationRunnable implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: android.view.ViewRootImpl$InvalidateOnAnimationRunnable
  super_class: java.lang.Object
{
  private boolean mPosted;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final java.util.ArrayList<android.view.View> mViews;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Landroid/view/View;>;

  private final java.util.ArrayList<android.view.View$AttachInfo$InvalidateInfo> mViewRects;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Landroid/view/View$AttachInfo$InvalidateInfo;>;

  private android.view.View[] mTempViews;
    descriptor: [Landroid/view/View;
    flags: (0x0002) ACC_PRIVATE

  private android.view.View$AttachInfo$InvalidateInfo[] mTempViewRects;
    descriptor: [Landroid/view/View$AttachInfo$InvalidateInfo;
    flags: (0x0002) ACC_PRIVATE

  final android.view.ViewRootImpl this$0;
    descriptor: Landroid/view/ViewRootImpl;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(android.view.ViewRootImpl);
    descriptor: (Landroid/view/ViewRootImpl;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
         0: .line 7235
            aload 0 /* this */
            aload 1
            putfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.this$0:Landroid/view/ViewRootImpl;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 7237
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViews:Ljava/util/ArrayList;
         2: .line 7238
            aload 0 /* this */
         3: .line 7239
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViewRects:Ljava/util/ArrayList;
         4: .line 7235
            return
        end local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
    MethodParameters:
        Name  Flags
      this$0  final

  public void addView(android.view.View);
    descriptor: (Landroid/view/View;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
        start local 1 // android.view.View view
         0: .line 7244
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 7245
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViews:Ljava/util/ArrayList;
            aload 1 /* view */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 7246
            aload 0 /* this */
            invokevirtual android.view.ViewRootImpl$InvalidateOnAnimationRunnable.postIfNeededLocked:()V
         3: .line 7244
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: android.view.ViewRootImpl$InvalidateOnAnimationRunnable android.view.View android.view.ViewRootImpl$InvalidateOnAnimationRunnable
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 7248
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.View view
        end local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
            0    8     1  view  Landroid/view/View;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
      Name  Flags
      view  

  public void addViewRect(android.view.View$AttachInfo$InvalidateInfo);
    descriptor: (Landroid/view/View$AttachInfo$InvalidateInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
        start local 1 // android.view.View$AttachInfo$InvalidateInfo info
         0: .line 7251
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 7252
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViewRects:Ljava/util/ArrayList;
            aload 1 /* info */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 7253
            aload 0 /* this */
            invokevirtual android.view.ViewRootImpl$InvalidateOnAnimationRunnable.postIfNeededLocked:()V
         3: .line 7251
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: android.view.ViewRootImpl$InvalidateOnAnimationRunnable android.view.View$AttachInfo$InvalidateInfo android.view.ViewRootImpl$InvalidateOnAnimationRunnable
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 7255
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.View$AttachInfo$InvalidateInfo info
        end local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
            0    8     1  info  Landroid/view/View$AttachInfo$InvalidateInfo;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
      Name  Flags
      info  

  public void removeView(android.view.View);
    descriptor: (Landroid/view/View;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
        start local 1 // android.view.View view
         0: .line 7258
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 7259
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViews:Ljava/util/ArrayList;
            aload 1 /* view */
            invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 7261
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViewRects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 7262
      StackMap locals: android.view.ViewRootImpl$InvalidateOnAnimationRunnable int
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViewRects:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.view.View$AttachInfo$InvalidateInfo
            astore 4 /* info */
        start local 4 // android.view.View$AttachInfo$InvalidateInfo info
         5: .line 7263
            aload 4 /* info */
            getfield android.view.View$AttachInfo$InvalidateInfo.target:Landroid/view/View;
            aload 1 /* view */
            if_acmpne 8
         6: .line 7264
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViewRects:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
         7: .line 7265
            aload 4 /* info */
            invokevirtual android.view.View$AttachInfo$InvalidateInfo.recycle:()V
        end local 4 // android.view.View$AttachInfo$InvalidateInfo info
         8: .line 7261
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iinc 3 /* i */ -1
            ifgt 4
        end local 3 // int i
         9: .line 7269
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mPosted:Z
            ifeq 12
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViews:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 12
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViewRects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 12
        10: .line 7270
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.this$0:Landroid/view/ViewRootImpl;
            getfield android.view.ViewRootImpl.mChoreographer:Landroid/view/Choreographer;
            iconst_1
            aload 0 /* this */
            aconst_null
            invokevirtual android.view.Choreographer.removeCallbacks:(ILjava/lang/Runnable;Ljava/lang/Object;)V
        11: .line 7271
            aload 0 /* this */
            iconst_0
            putfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mPosted:Z
        12: .line 7258
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 2
            monitorexit
        15: athrow
        16: .line 7274
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.View view
        end local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
            0   17     1  view  Landroid/view/View;
            3    9     3     i  I
            5    8     4  info  Landroid/view/View$AttachInfo$InvalidateInfo;
      Exception table:
        from    to  target  type
           1    13      14  any
          14    15      14  any
    MethodParameters:
      Name  Flags
      view  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
         0: .line 7280
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 7281
            aload 0 /* this */
            iconst_0
            putfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mPosted:Z
         2: .line 7283
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViews:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 1 /* viewCount */
        start local 1 // int viewCount
         3: .line 7284
            iload 1 /* viewCount */
            ifeq 9
         4: .line 7285
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViews:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mTempViews:[Landroid/view/View;
            ifnull 6
         5: .line 7286
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mTempViews:[Landroid/view/View;
            goto 7
      StackMap locals: android.view.ViewRootImpl$InvalidateOnAnimationRunnable int top android.view.ViewRootImpl$InvalidateOnAnimationRunnable
      StackMap stack: android.view.ViewRootImpl$InvalidateOnAnimationRunnable java.util.ArrayList
         6: iload 1 /* viewCount */
            anewarray android.view.View
         7: .line 7285
      StackMap locals: android.view.ViewRootImpl$InvalidateOnAnimationRunnable int top android.view.ViewRootImpl$InvalidateOnAnimationRunnable
      StackMap stack: android.view.ViewRootImpl$InvalidateOnAnimationRunnable java.util.ArrayList android.view.View[]
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast android.view.View[]
            putfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mTempViews:[Landroid/view/View;
         8: .line 7287
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViews:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         9: .line 7290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViewRects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* viewRectCount */
        start local 2 // int viewRectCount
        10: .line 7291
            iload 2 /* viewRectCount */
            ifeq 16
        11: .line 7292
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViewRects:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mTempViewRects:[Landroid/view/View$AttachInfo$InvalidateInfo;
            ifnull 13
        12: .line 7293
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mTempViewRects:[Landroid/view/View$AttachInfo$InvalidateInfo;
            goto 14
      StackMap locals: android.view.ViewRootImpl$InvalidateOnAnimationRunnable int int android.view.ViewRootImpl$InvalidateOnAnimationRunnable
      StackMap stack: android.view.ViewRootImpl$InvalidateOnAnimationRunnable java.util.ArrayList
        13: iload 2 /* viewRectCount */
            anewarray android.view.View$AttachInfo$InvalidateInfo
        14: .line 7292
      StackMap locals: android.view.ViewRootImpl$InvalidateOnAnimationRunnable int int android.view.ViewRootImpl$InvalidateOnAnimationRunnable
      StackMap stack: android.view.ViewRootImpl$InvalidateOnAnimationRunnable java.util.ArrayList android.view.View$AttachInfo$InvalidateInfo[]
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast android.view.View$AttachInfo$InvalidateInfo[]
            putfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mTempViewRects:[Landroid/view/View$AttachInfo$InvalidateInfo;
        15: .line 7294
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mViewRects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
        16: .line 7280
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        17: goto 20
        end local 2 // int viewRectCount
        end local 1 // int viewCount
      StackMap locals: android.view.ViewRootImpl$InvalidateOnAnimationRunnable top top android.view.ViewRootImpl$InvalidateOnAnimationRunnable
      StackMap stack: java.lang.Throwable
        18: aload 3
            monitorexit
        19: athrow
        start local 1 // int viewCount
        start local 2 // int viewRectCount
        20: .line 7298
      StackMap locals: android.view.ViewRootImpl$InvalidateOnAnimationRunnable int int
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        21: goto 25
        22: .line 7299
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mTempViews:[Landroid/view/View;
            iload 3 /* i */
            aaload
            invokevirtual android.view.View.invalidate:()V
        23: .line 7300
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mTempViews:[Landroid/view/View;
            iload 3 /* i */
            aconst_null
            aastore
        24: .line 7298
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 3 /* i */
            iload 1 /* viewCount */
            if_icmplt 22
        end local 3 // int i
        26: .line 7303
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        27: goto 32
        28: .line 7304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mTempViewRects:[Landroid/view/View$AttachInfo$InvalidateInfo;
            iload 3 /* i */
            aaload
            astore 4 /* info */
        start local 4 // android.view.View$AttachInfo$InvalidateInfo info
        29: .line 7305
            aload 4 /* info */
            getfield android.view.View$AttachInfo$InvalidateInfo.target:Landroid/view/View;
            aload 4 /* info */
            getfield android.view.View$AttachInfo$InvalidateInfo.left:I
            aload 4 /* info */
            getfield android.view.View$AttachInfo$InvalidateInfo.top:I
            aload 4 /* info */
            getfield android.view.View$AttachInfo$InvalidateInfo.right:I
            aload 4 /* info */
            getfield android.view.View$AttachInfo$InvalidateInfo.bottom:I
            invokevirtual android.view.View.invalidate:(IIII)V
        30: .line 7306
            aload 4 /* info */
            invokevirtual android.view.View$AttachInfo$InvalidateInfo.recycle:()V
        end local 4 // android.view.View$AttachInfo$InvalidateInfo info
        31: .line 7303
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 3 /* i */
            iload 2 /* viewRectCount */
            if_icmplt 28
        end local 3 // int i
        33: .line 7308
            return
        end local 2 // int viewRectCount
        end local 1 // int viewCount
        end local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   34     0           this  Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
            3   18     1      viewCount  I
           20   34     1      viewCount  I
           10   18     2  viewRectCount  I
           20   34     2  viewRectCount  I
           21   26     3              i  I
           27   33     3              i  I
           29   31     4           info  Landroid/view/View$AttachInfo$InvalidateInfo;
      Exception table:
        from    to  target  type
           1    17      18  any
          18    19      18  any

  private void postIfNeededLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
         0: .line 7311
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mPosted:Z
            ifne 3
         1: .line 7312
            aload 0 /* this */
            getfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.this$0:Landroid/view/ViewRootImpl;
            getfield android.view.ViewRootImpl.mChoreographer:Landroid/view/Choreographer;
            iconst_1
            aload 0 /* this */
            aconst_null
            invokevirtual android.view.Choreographer.postCallback:(ILjava/lang/Runnable;Ljava/lang/Object;)V
         2: .line 7313
            aload 0 /* this */
            iconst_1
            putfield android.view.ViewRootImpl$InvalidateOnAnimationRunnable.mPosted:Z
         3: .line 7315
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.ViewRootImpl$InvalidateOnAnimationRunnable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
}
SourceFile: "ViewRootImpl.java"
NestHost: android.view.ViewRootImpl
InnerClasses:
  final AttachInfo = android.view.View$AttachInfo of android.view.View
  InvalidateInfo = android.view.View$AttachInfo$InvalidateInfo of android.view.View$AttachInfo
  final InvalidateOnAnimationRunnable = android.view.ViewRootImpl$InvalidateOnAnimationRunnable of android.view.ViewRootImpl