public final class android.view.ViewTreeObserver
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.view.ViewTreeObserver
  super_class: java.lang.Object
{
  private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnWindowFocusChangeListener> mOnWindowFocusListeners;
    descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;>;

  private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnWindowAttachListener> mOnWindowAttachListeners;
    descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnWindowAttachListener;>;

  private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnGlobalFocusChangeListener> mOnGlobalFocusListeners;
    descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;>;

  private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnTouchModeChangeListener> mOnTouchModeChangeListeners;
    descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;>;

  private java.util.concurrent.CopyOnWriteArrayList<android.view.ViewTreeObserver$OnEnterAnimationCompleteListener> mOnEnterAnimationCompleteListeners;
    descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;>;

  private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnGlobalLayoutListener> mOnGlobalLayoutListeners;
    descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;>;

  private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnComputeInternalInsetsListener> mOnComputeInternalInsetsListeners;
    descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;>;

  private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnScrollChangedListener> mOnScrollChangedListeners;
    descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnScrollChangedListener;>;

  private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnPreDrawListener> mOnPreDrawListeners;
    descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnPreDrawListener;>;

  private android.view.ViewTreeObserver$CopyOnWriteArray<android.view.ViewTreeObserver$OnWindowShownListener> mOnWindowShownListeners;
    descriptor: Landroid/view/ViewTreeObserver$CopyOnWriteArray;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnWindowShownListener;>;

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

  private java.util.ArrayList<android.view.ViewTreeObserver$OnDrawListener> mOnDrawListeners;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Landroid/view/ViewTreeObserver$OnDrawListener;>;

  private static boolean sIllegalOnDrawModificationIsFatal;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

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

  void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.content.Context context
         0: .line 335
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            iconst_1
            putfield android.view.ViewTreeObserver.mAlive:Z
         2: .line 337
            aload 1 /* context */
            invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
            bipush 26
            if_icmplt 3
            iconst_1
            goto 4
      StackMap locals: android.view.ViewTreeObserver android.content.Context
      StackMap stack:
         3: iconst_0
         4: .line 336
      StackMap locals:
      StackMap stack: int
            putstatic android.view.ViewTreeObserver.sIllegalOnDrawModificationIsFatal:Z
         5: .line 338
            return
        end local 1 // android.content.Context context
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/view/ViewTreeObserver;
            0    6     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  void merge(android.view.ViewTreeObserver);
    descriptor: (Landroid/view/ViewTreeObserver;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver observer
         0: .line 348
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnull 5
         1: .line 349
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnull 4
         2: .line 350
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 351
            goto 5
         4: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            putfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         5: .line 356
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnull 10
         6: .line 357
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnull 9
         7: .line 358
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 359
            goto 10
         9: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            putfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
        10: .line 364
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnull 15
        11: .line 365
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnull 14
        12: .line 366
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        13: .line 367
            goto 15
        14: .line 368
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            putfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
        15: .line 372
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 20
        16: .line 373
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 19
        17: .line 374
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
        18: .line 375
            goto 20
        19: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            putfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
        20: .line 380
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 25
        21: .line 381
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 24
        22: .line 382
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
        23: .line 383
            goto 25
        24: .line 384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            putfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
        25: .line 388
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            ifnull 30
        26: .line 389
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            ifnull 29
        27: .line 390
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        28: .line 391
            goto 30
        29: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            putfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
        30: .line 396
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnull 35
        31: .line 397
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnull 34
        32: .line 398
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        33: .line 399
            goto 35
        34: .line 400
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            putfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
        35: .line 404
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 40
        36: .line 405
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 39
        37: .line 406
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
        38: .line 407
            goto 40
        39: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            putfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
        40: .line 412
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 45
        41: .line 413
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 44
        42: .line 414
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
        43: .line 415
            goto 45
        44: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            putfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
        45: .line 420
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 50
        46: .line 421
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 49
        47: .line 422
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.addAll:(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
        48: .line 423
            goto 50
        49: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* observer */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            putfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
        50: .line 428
      StackMap locals:
      StackMap stack:
            aload 1 /* observer */
            invokevirtual android.view.ViewTreeObserver.kill:()V
        51: .line 429
            return
        end local 1 // android.view.ViewTreeObserver observer
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   52     0      this  Landroid/view/ViewTreeObserver;
            0   52     1  observer  Landroid/view/ViewTreeObserver;
    MethodParameters:
          Name  Flags
      observer  

  public void addOnWindowAttachListener(android.view.ViewTreeObserver$OnWindowAttachListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnWindowAttachListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnWindowAttachListener listener
         0: .line 439
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 441
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 5
         2: .line 442
            aload 0 /* this */
         3: .line 443
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
         4: .line 442
            putfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         5: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* listener */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 447
            return
        end local 1 // android.view.ViewTreeObserver$OnWindowAttachListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/view/ViewTreeObserver;
            0    7     1  listener  Landroid/view/ViewTreeObserver$OnWindowAttachListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnWindowAttachListener(android.view.ViewTreeObserver$OnWindowAttachListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnWindowAttachListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnWindowAttachListener victim
         0: .line 459
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 460
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 3
         2: .line 461
            return
         3: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* victim */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
            pop
         4: .line 464
            return
        end local 1 // android.view.ViewTreeObserver$OnWindowAttachListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ViewTreeObserver;
            0    5     1  victim  Landroid/view/ViewTreeObserver$OnWindowAttachListener;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnWindowFocusChangeListener(android.view.ViewTreeObserver$OnWindowFocusChangeListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnWindowFocusChangeListener listener
         0: .line 474
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 476
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 5
         2: .line 477
            aload 0 /* this */
         3: .line 478
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
         4: .line 477
            putfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         5: .line 481
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* listener */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 482
            return
        end local 1 // android.view.ViewTreeObserver$OnWindowFocusChangeListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/view/ViewTreeObserver;
            0    7     1  listener  Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnWindowFocusChangeListener(android.view.ViewTreeObserver$OnWindowFocusChangeListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnWindowFocusChangeListener victim
         0: .line 494
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 495
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 3
         2: .line 496
            return
         3: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* victim */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
            pop
         4: .line 499
            return
        end local 1 // android.view.ViewTreeObserver$OnWindowFocusChangeListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ViewTreeObserver;
            0    5     1  victim  Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnGlobalFocusChangeListener(android.view.ViewTreeObserver$OnGlobalFocusChangeListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnGlobalFocusChangeListener listener
         0: .line 509
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 511
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 3
         2: .line 512
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         3: .line 515
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* listener */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 516
            return
        end local 1 // android.view.ViewTreeObserver$OnGlobalFocusChangeListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/view/ViewTreeObserver;
            0    5     1  listener  Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnGlobalFocusChangeListener(android.view.ViewTreeObserver$OnGlobalFocusChangeListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnGlobalFocusChangeListener victim
         0: .line 528
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 529
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 3
         2: .line 530
            return
         3: .line 532
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* victim */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
            pop
         4: .line 533
            return
        end local 1 // android.view.ViewTreeObserver$OnGlobalFocusChangeListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ViewTreeObserver;
            0    5     1  victim  Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnGlobalLayoutListener(android.view.ViewTreeObserver$OnGlobalLayoutListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnGlobalLayoutListener listener
         0: .line 544
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 546
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 3
         2: .line 547
            aload 0 /* this */
            new android.view.ViewTreeObserver$CopyOnWriteArray
            dup
            invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
            putfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
         3: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* listener */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
         4: .line 551
            return
        end local 1 // android.view.ViewTreeObserver$OnGlobalLayoutListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/view/ViewTreeObserver;
            0    5     1  listener  Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeGlobalOnLayoutListener(android.view.ViewTreeObserver$OnGlobalLayoutListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnGlobalLayoutListener victim
         0: .line 566
            aload 0 /* this */
            aload 1 /* victim */
            invokevirtual android.view.ViewTreeObserver.removeOnGlobalLayoutListener:(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
         1: .line 567
            return
        end local 1 // android.view.ViewTreeObserver$OnGlobalLayoutListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/view/ViewTreeObserver;
            0    2     1  victim  Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      victim  

  public void removeOnGlobalLayoutListener(android.view.ViewTreeObserver$OnGlobalLayoutListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnGlobalLayoutListener victim
         0: .line 579
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 580
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 3
         2: .line 581
            return
         3: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* victim */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
         4: .line 584
            return
        end local 1 // android.view.ViewTreeObserver$OnGlobalLayoutListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ViewTreeObserver;
            0    5     1  victim  Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnPreDrawListener(android.view.ViewTreeObserver$OnPreDrawListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnPreDrawListener listener
         0: .line 594
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 596
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 3
         2: .line 597
            aload 0 /* this */
            new android.view.ViewTreeObserver$CopyOnWriteArray
            dup
            invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
            putfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
         3: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* listener */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
         4: .line 601
            return
        end local 1 // android.view.ViewTreeObserver$OnPreDrawListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/view/ViewTreeObserver;
            0    5     1  listener  Landroid/view/ViewTreeObserver$OnPreDrawListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnPreDrawListener(android.view.ViewTreeObserver$OnPreDrawListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnPreDrawListener victim
         0: .line 613
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 614
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 3
         2: .line 615
            return
         3: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* victim */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
         4: .line 618
            return
        end local 1 // android.view.ViewTreeObserver$OnPreDrawListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ViewTreeObserver;
            0    5     1  victim  Landroid/view/ViewTreeObserver$OnPreDrawListener;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnWindowShownListener(android.view.ViewTreeObserver$OnWindowShownListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnWindowShownListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnWindowShownListener listener
         0: .line 629
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 631
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 3
         2: .line 632
            aload 0 /* this */
            new android.view.ViewTreeObserver$CopyOnWriteArray
            dup
            invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
            putfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
         3: .line 635
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* listener */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
         4: .line 636
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mWindowShown:Z
            ifeq 6
         5: .line 637
            aload 1 /* listener */
            invokeinterface android.view.ViewTreeObserver$OnWindowShownListener.onWindowShown:()V
         6: .line 639
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.ViewTreeObserver$OnWindowShownListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/view/ViewTreeObserver;
            0    7     1  listener  Landroid/view/ViewTreeObserver$OnWindowShownListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnWindowShownListener(android.view.ViewTreeObserver$OnWindowShownListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnWindowShownListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnWindowShownListener victim
         0: .line 652
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 653
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 3
         2: .line 654
            return
         3: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* victim */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
         4: .line 657
            return
        end local 1 // android.view.ViewTreeObserver$OnWindowShownListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ViewTreeObserver;
            0    5     1  victim  Landroid/view/ViewTreeObserver$OnWindowShownListener;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnDrawListener(android.view.ViewTreeObserver$OnDrawListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnDrawListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnDrawListener listener
         0: .line 669
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 671
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            ifnonnull 3
         2: .line 672
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
         3: .line 675
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mInDispatchOnDraw:Z
            ifeq 10
         4: .line 676
            new java.lang.IllegalStateException
            dup
         5: .line 677
            ldc "Cannot call addOnDrawListener inside of onDraw"
         6: .line 676
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            astore 2 /* ex */
        start local 2 // java.lang.IllegalStateException ex
         7: .line 678
            getstatic android.view.ViewTreeObserver.sIllegalOnDrawModificationIsFatal:Z
            ifeq 9
         8: .line 679
            aload 2 /* ex */
            athrow
         9: .line 681
      StackMap locals: java.lang.IllegalStateException
      StackMap stack:
            ldc "ViewTreeObserver"
            aload 2 /* ex */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            aload 2 /* ex */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // java.lang.IllegalStateException ex
        10: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            aload 1 /* listener */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        11: .line 685
            return
        end local 1 // android.view.ViewTreeObserver$OnDrawListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/view/ViewTreeObserver;
            0   12     1  listener  Landroid/view/ViewTreeObserver$OnDrawListener;
            7   10     2        ex  Ljava/lang/IllegalStateException;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnDrawListener(android.view.ViewTreeObserver$OnDrawListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnDrawListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnDrawListener victim
         0: .line 699
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 700
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            ifnonnull 3
         2: .line 701
            return
         3: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mInDispatchOnDraw:Z
            ifeq 10
         4: .line 704
            new java.lang.IllegalStateException
            dup
         5: .line 705
            ldc "Cannot call removeOnDrawListener inside of onDraw"
         6: .line 704
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            astore 2 /* ex */
        start local 2 // java.lang.IllegalStateException ex
         7: .line 706
            getstatic android.view.ViewTreeObserver.sIllegalOnDrawModificationIsFatal:Z
            ifeq 9
         8: .line 707
            aload 2 /* ex */
            athrow
         9: .line 709
      StackMap locals: java.lang.IllegalStateException
      StackMap stack:
            ldc "ViewTreeObserver"
            aload 2 /* ex */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            aload 2 /* ex */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // java.lang.IllegalStateException ex
        10: .line 712
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            aload 1 /* victim */
            invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
            pop
        11: .line 713
            return
        end local 1 // android.view.ViewTreeObserver$OnDrawListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Landroid/view/ViewTreeObserver;
            0   12     1  victim  Landroid/view/ViewTreeObserver$OnDrawListener;
            7   10     2      ex  Ljava/lang/IllegalStateException;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnScrollChangedListener(android.view.ViewTreeObserver$OnScrollChangedListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnScrollChangedListener listener
         0: .line 723
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 725
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 3
         2: .line 726
            aload 0 /* this */
            new android.view.ViewTreeObserver$CopyOnWriteArray
            dup
            invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
            putfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
         3: .line 729
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* listener */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
         4: .line 730
            return
        end local 1 // android.view.ViewTreeObserver$OnScrollChangedListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/view/ViewTreeObserver;
            0    5     1  listener  Landroid/view/ViewTreeObserver$OnScrollChangedListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnScrollChangedListener(android.view.ViewTreeObserver$OnScrollChangedListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnScrollChangedListener victim
         0: .line 742
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 743
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 3
         2: .line 744
            return
         3: .line 746
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* victim */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
         4: .line 747
            return
        end local 1 // android.view.ViewTreeObserver$OnScrollChangedListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ViewTreeObserver;
            0    5     1  victim  Landroid/view/ViewTreeObserver$OnScrollChangedListener;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnTouchModeChangeListener(android.view.ViewTreeObserver$OnTouchModeChangeListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnTouchModeChangeListener listener
         0: .line 757
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 759
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 3
         2: .line 760
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         3: .line 763
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* listener */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 764
            return
        end local 1 // android.view.ViewTreeObserver$OnTouchModeChangeListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/view/ViewTreeObserver;
            0    5     1  listener  Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnTouchModeChangeListener(android.view.ViewTreeObserver$OnTouchModeChangeListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnTouchModeChangeListener victim
         0: .line 776
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 777
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 3
         2: .line 778
            return
         3: .line 780
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* victim */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
            pop
         4: .line 781
            return
        end local 1 // android.view.ViewTreeObserver$OnTouchModeChangeListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ViewTreeObserver;
            0    5     1  victim  Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnComputeInternalInsetsListener(android.view.ViewTreeObserver$OnComputeInternalInsetsListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnComputeInternalInsetsListener listener
         0: .line 795
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 797
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 5
         2: .line 798
            aload 0 /* this */
         3: .line 799
            new android.view.ViewTreeObserver$CopyOnWriteArray
            dup
            invokespecial android.view.ViewTreeObserver$CopyOnWriteArray.<init>:()V
         4: .line 798
            putfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
         5: .line 802
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* listener */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.add:(Ljava/lang/Object;)V
         6: .line 803
            return
        end local 1 // android.view.ViewTreeObserver$OnComputeInternalInsetsListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/view/ViewTreeObserver;
            0    7     1  listener  Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnComputeInternalInsetsListener(android.view.ViewTreeObserver$OnComputeInternalInsetsListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnComputeInternalInsetsListener victim
         0: .line 818
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 819
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnonnull 3
         2: .line 820
            return
         3: .line 822
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            aload 1 /* victim */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.remove:(Ljava/lang/Object;)V
         4: .line 823
            return
        end local 1 // android.view.ViewTreeObserver$OnComputeInternalInsetsListener victim
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ViewTreeObserver;
            0    5     1  victim  Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;
    MethodParameters:
        Name  Flags
      victim  

  public void addOnEnterAnimationCompleteListener(android.view.ViewTreeObserver$OnEnterAnimationCompleteListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnEnterAnimationCompleteListener listener
         0: .line 829
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 830
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 5
         2: .line 831
            aload 0 /* this */
         3: .line 832
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
         4: .line 831
            putfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         5: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* listener */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 835
            return
        end local 1 // android.view.ViewTreeObserver$OnEnterAnimationCompleteListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/view/ViewTreeObserver;
            0    7     1  listener  Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeOnEnterAnimationCompleteListener(android.view.ViewTreeObserver$OnEnterAnimationCompleteListener);
    descriptor: (Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$OnEnterAnimationCompleteListener listener
         0: .line 841
            aload 0 /* this */
            invokevirtual android.view.ViewTreeObserver.checkIsAlive:()V
         1: .line 842
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            ifnonnull 3
         2: .line 843
            return
         3: .line 845
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* listener */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
            pop
         4: .line 846
            return
        end local 1 // android.view.ViewTreeObserver$OnEnterAnimationCompleteListener listener
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/view/ViewTreeObserver;
            0    5     1  listener  Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;
    MethodParameters:
          Name  Flags
      listener  

  private void checkIsAlive();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 849
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mAlive:Z
            ifne 2
         1: .line 850
            new java.lang.IllegalStateException
            dup
            ldc "This ViewTreeObserver is not alive, call getViewTreeObserver() again"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 853
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/view/ViewTreeObserver;

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

  private void kill();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 875
            aload 0 /* this */
            iconst_0
            putfield android.view.ViewTreeObserver.mAlive:Z
         1: .line 876
            return
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ViewTreeObserver;

  final void dispatchOnWindowAttachedChange(boolean);
    descriptor: (Z)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=5, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // boolean attached
         0: .line 887
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowAttachListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         1: .line 886
            astore 2 /* listeners */
        start local 2 // java.util.concurrent.CopyOnWriteArrayList listeners
         2: .line 888
            aload 2 /* listeners */
            ifnull 8
            aload 2 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.size:()I
            ifle 8
         3: .line 889
            aload 2 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnWindowAttachListener
            astore 3 /* listener */
        start local 3 // android.view.ViewTreeObserver$OnWindowAttachListener listener
         5: .line 890
            iload 1 /* attached */
            ifeq 6
            aload 3 /* listener */
            invokeinterface android.view.ViewTreeObserver$OnWindowAttachListener.onWindowAttached:()V
            goto 7
         6: .line 891
      StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList android.view.ViewTreeObserver$OnWindowAttachListener java.util.Iterator
      StackMap stack:
            aload 3 /* listener */
            invokeinterface android.view.ViewTreeObserver$OnWindowAttachListener.onWindowDetached:()V
        end local 3 // android.view.ViewTreeObserver$OnWindowAttachListener listener
         7: .line 889
      StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 894
      StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList
      StackMap stack:
            return
        end local 2 // java.util.concurrent.CopyOnWriteArrayList listeners
        end local 1 // boolean attached
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Landroid/view/ViewTreeObserver;
            0    9     1   attached  Z
            2    9     2  listeners  Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnWindowAttachListener;>;
            5    7     3   listener  Landroid/view/ViewTreeObserver$OnWindowAttachListener;
    MethodParameters:
          Name  Flags
      attached  

  final void dispatchOnWindowFocusChange(boolean);
    descriptor: (Z)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // boolean hasFocus
         0: .line 905
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         1: .line 904
            astore 2 /* listeners */
        start local 2 // java.util.concurrent.CopyOnWriteArrayList listeners
         2: .line 906
            aload 2 /* listeners */
            ifnull 7
            aload 2 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.size:()I
            ifle 7
         3: .line 907
            aload 2 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnWindowFocusChangeListener
            astore 3 /* listener */
        start local 3 // android.view.ViewTreeObserver$OnWindowFocusChangeListener listener
         5: .line 908
            aload 3 /* listener */
            iload 1 /* hasFocus */
            invokeinterface android.view.ViewTreeObserver$OnWindowFocusChangeListener.onWindowFocusChanged:(Z)V
        end local 3 // android.view.ViewTreeObserver$OnWindowFocusChangeListener listener
         6: .line 907
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 911
      StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList
      StackMap stack:
            return
        end local 2 // java.util.concurrent.CopyOnWriteArrayList listeners
        end local 1 // boolean hasFocus
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/view/ViewTreeObserver;
            0    8     1   hasFocus  Z
            2    8     2  listeners  Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;>;
            5    6     3   listener  Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;
    MethodParameters:
          Name  Flags
      hasFocus  

  final void dispatchOnGlobalFocusChange(android.view.View, android.view.View);
    descriptor: (Landroid/view/View;Landroid/view/View;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.View oldFocus
        start local 2 // android.view.View newFocus
         0: .line 921
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalFocusListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
            astore 3 /* listeners */
        start local 3 // java.util.concurrent.CopyOnWriteArrayList listeners
         1: .line 922
            aload 3 /* listeners */
            ifnull 6
            aload 3 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.size:()I
            ifle 6
         2: .line 923
            aload 3 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: android.view.ViewTreeObserver android.view.View android.view.View java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnGlobalFocusChangeListener
            astore 4 /* listener */
        start local 4 // android.view.ViewTreeObserver$OnGlobalFocusChangeListener listener
         4: .line 924
            aload 4 /* listener */
            aload 1 /* oldFocus */
            aload 2 /* newFocus */
            invokeinterface android.view.ViewTreeObserver$OnGlobalFocusChangeListener.onGlobalFocusChanged:(Landroid/view/View;Landroid/view/View;)V
        end local 4 // android.view.ViewTreeObserver$OnGlobalFocusChangeListener listener
         5: .line 923
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 927
      StackMap locals: android.view.ViewTreeObserver android.view.View android.view.View java.util.concurrent.CopyOnWriteArrayList
      StackMap stack:
            return
        end local 3 // java.util.concurrent.CopyOnWriteArrayList listeners
        end local 2 // android.view.View newFocus
        end local 1 // android.view.View oldFocus
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Landroid/view/ViewTreeObserver;
            0    7     1   oldFocus  Landroid/view/View;
            0    7     2   newFocus  Landroid/view/View;
            1    7     3  listeners  Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;>;
            4    5     4   listener  Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;
    MethodParameters:
          Name  Flags
      oldFocus  
      newFocus  

  public final void dispatchOnGlobalLayout();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 939
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnGlobalLayoutListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            astore 1 /* listeners */
        start local 1 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
         1: .line 940
            aload 1 /* listeners */
            ifnull 14
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
            ifle 14
         2: .line 941
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
            astore 2 /* access */
        start local 2 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
         3: .line 943
            aload 2 /* access */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
            istore 3 /* count */
        start local 3 // int count
         4: .line 944
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 945
      StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
      StackMap stack:
            aload 2 /* access */
            iload 4 /* i */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnGlobalLayoutListener
            invokeinterface android.view.ViewTreeObserver$OnGlobalLayoutListener.onGlobalLayout:()V
         7: .line 944
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 3 /* count */
            if_icmplt 6
        end local 4 // int i
        end local 3 // int count
         9: .line 947
            goto 13
      StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
      StackMap stack: java.lang.Throwable
        10: astore 5
        11: .line 948
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        12: .line 949
            aload 5
            athrow
        13: .line 948
      StackMap locals:
      StackMap stack:
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        end local 2 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
        14: .line 951
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Landroid/view/ViewTreeObserver;
            1   15     1  listeners  Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;>;
            3   14     2     access  Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;>;
            4    9     3      count  I
            5    9     4          i  I
      Exception table:
        from    to  target  type
           3    10      10  any

  final boolean hasOnPreDrawListeners();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 957
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            ifnull 1
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ViewTreeObserver;

  public final boolean dispatchOnPreDraw();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 970
            iconst_0
            istore 1 /* cancelDraw */
        start local 1 // boolean cancelDraw
         1: .line 971
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnPreDrawListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            astore 2 /* listeners */
        start local 2 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
         2: .line 972
            aload 2 /* listeners */
            ifnull 17
            aload 2 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
            ifle 17
         3: .line 973
            aload 2 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
            astore 3 /* access */
        start local 3 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
         4: .line 975
            aload 3 /* access */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
            istore 4 /* count */
        start local 4 // int count
         5: .line 976
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 11
         7: .line 977
      StackMap locals: android.view.ViewTreeObserver int android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
      StackMap stack:
            iload 1 /* cancelDraw */
            aload 3 /* access */
            iload 5 /* i */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnPreDrawListener
            invokeinterface android.view.ViewTreeObserver$OnPreDrawListener.onPreDraw:()Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack: int
         8: iconst_1
      StackMap locals: android.view.ViewTreeObserver int android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
      StackMap stack: int int
         9: ior
            istore 1 /* cancelDraw */
        10: .line 976
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            iload 4 /* count */
            if_icmplt 7
        end local 5 // int i
        end local 4 // int count
        12: .line 979
            goto 16
      StackMap locals: android.view.ViewTreeObserver int android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
      StackMap stack: java.lang.Throwable
        13: astore 6
        14: .line 980
            aload 2 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        15: .line 981
            aload 6
            athrow
        16: .line 980
      StackMap locals:
      StackMap stack:
            aload 2 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        end local 3 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
        17: .line 983
      StackMap locals:
      StackMap stack:
            iload 1 /* cancelDraw */
            ireturn
        end local 2 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
        end local 1 // boolean cancelDraw
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Landroid/view/ViewTreeObserver;
            1   18     1  cancelDraw  Z
            2   18     2   listeners  Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnPreDrawListener;>;
            4   17     3      access  Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnPreDrawListener;>;
            5   12     4       count  I
            6   12     5           i  I
      Exception table:
        from    to  target  type
           4    13      13  any

  public final void dispatchOnWindowShown();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 992
            aload 0 /* this */
            iconst_1
            putfield android.view.ViewTreeObserver.mWindowShown:Z
         1: .line 993
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnWindowShownListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            astore 1 /* listeners */
        start local 1 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
         2: .line 994
            aload 1 /* listeners */
            ifnull 15
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
            ifle 15
         3: .line 995
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
            astore 2 /* access */
        start local 2 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
         4: .line 997
            aload 2 /* access */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
            istore 3 /* count */
        start local 3 // int count
         5: .line 998
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 9
         7: .line 999
      StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
      StackMap stack:
            aload 2 /* access */
            iload 4 /* i */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnWindowShownListener
            invokeinterface android.view.ViewTreeObserver$OnWindowShownListener.onWindowShown:()V
         8: .line 998
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 3 /* count */
            if_icmplt 7
        end local 4 // int i
        end local 3 // int count
        10: .line 1001
            goto 14
      StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
      StackMap stack: java.lang.Throwable
        11: astore 5
        12: .line 1002
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        13: .line 1003
            aload 5
            athrow
        14: .line 1002
      StackMap locals:
      StackMap stack:
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        end local 2 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
        15: .line 1005
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Landroid/view/ViewTreeObserver;
            2   16     1  listeners  Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnWindowShownListener;>;
            4   15     2     access  Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnWindowShownListener;>;
            5   10     3      count  I
            6   10     4          i  I
      Exception table:
        from    to  target  type
           4    11      11  any

  public final void dispatchOnDraw();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 1011
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            ifnull 10
         1: .line 1012
            aload 0 /* this */
            iconst_1
            putfield android.view.ViewTreeObserver.mInDispatchOnDraw:Z
         2: .line 1013
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnDrawListeners:Ljava/util/ArrayList;
            astore 1 /* listeners */
        start local 1 // java.util.ArrayList listeners
         3: .line 1014
            aload 1 /* listeners */
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* numListeners */
        start local 2 // int numListeners
         4: .line 1015
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 1016
      StackMap locals: java.util.ArrayList int int
      StackMap stack:
            aload 1 /* listeners */
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnDrawListener
            invokeinterface android.view.ViewTreeObserver$OnDrawListener.onDraw:()V
         7: .line 1015
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* numListeners */
            if_icmplt 6
        end local 3 // int i
         9: .line 1018
            aload 0 /* this */
            iconst_0
            putfield android.view.ViewTreeObserver.mInDispatchOnDraw:Z
        end local 2 // int numListeners
        end local 1 // java.util.ArrayList listeners
        10: .line 1020
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Landroid/view/ViewTreeObserver;
            3   10     1     listeners  Ljava/util/ArrayList<Landroid/view/ViewTreeObserver$OnDrawListener;>;
            4   10     2  numListeners  I
            5    9     3             i  I

  final void dispatchOnTouchModeChanged(boolean);
    descriptor: (Z)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // boolean inTouchMode
         0: .line 1029
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnTouchModeChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         1: .line 1028
            astore 2 /* listeners */
        start local 2 // java.util.concurrent.CopyOnWriteArrayList listeners
         2: .line 1030
            aload 2 /* listeners */
            ifnull 7
            aload 2 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.size:()I
            ifle 7
         3: .line 1031
            aload 2 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnTouchModeChangeListener
            astore 3 /* listener */
        start local 3 // android.view.ViewTreeObserver$OnTouchModeChangeListener listener
         5: .line 1032
            aload 3 /* listener */
            iload 1 /* inTouchMode */
            invokeinterface android.view.ViewTreeObserver$OnTouchModeChangeListener.onTouchModeChanged:(Z)V
        end local 3 // android.view.ViewTreeObserver$OnTouchModeChangeListener listener
         6: .line 1031
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 1035
      StackMap locals: android.view.ViewTreeObserver int java.util.concurrent.CopyOnWriteArrayList
      StackMap stack:
            return
        end local 2 // java.util.concurrent.CopyOnWriteArrayList listeners
        end local 1 // boolean inTouchMode
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Landroid/view/ViewTreeObserver;
            0    8     1  inTouchMode  Z
            2    8     2    listeners  Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;>;
            5    6     3     listener  Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;
    MethodParameters:
             Name  Flags
      inTouchMode  

  final void dispatchOnScrollChanged();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 1045
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnScrollChangedListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
            astore 1 /* listeners */
        start local 1 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
         1: .line 1046
            aload 1 /* listeners */
            ifnull 14
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
            ifle 14
         2: .line 1047
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
            astore 2 /* access */
        start local 2 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
         3: .line 1049
            aload 2 /* access */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
            istore 3 /* count */
        start local 3 // int count
         4: .line 1050
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 1051
      StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
      StackMap stack:
            aload 2 /* access */
            iload 4 /* i */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnScrollChangedListener
            invokeinterface android.view.ViewTreeObserver$OnScrollChangedListener.onScrollChanged:()V
         7: .line 1050
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 3 /* count */
            if_icmplt 6
        end local 4 // int i
        end local 3 // int count
         9: .line 1053
            goto 13
      StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
      StackMap stack: java.lang.Throwable
        10: astore 5
        11: .line 1054
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        12: .line 1055
            aload 5
            athrow
        13: .line 1054
      StackMap locals:
      StackMap stack:
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        end local 2 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
        14: .line 1057
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Landroid/view/ViewTreeObserver;
            1   15     1  listeners  Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnScrollChangedListener;>;
            3   14     2     access  Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnScrollChangedListener;>;
            4    9     3      count  I
            5    9     4          i  I
      Exception table:
        from    to  target  type
           3    10      10  any

  final boolean hasComputeInternalInsetsListeners();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 1064
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
         1: .line 1063
            astore 1 /* listeners */
        start local 1 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
         2: .line 1065
            aload 1 /* listeners */
            ifnull 3
            aload 1 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
            ifle 3
            iconst_1
            ireturn
      StackMap locals: android.view.ViewTreeObserver$CopyOnWriteArray
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Landroid/view/ViewTreeObserver;
            2    4     1  listeners  Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;>;

  final void dispatchOnComputeInternalInsets(android.view.ViewTreeObserver$InternalInsetsInfo);
    descriptor: (Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // android.view.ViewTreeObserver this
        start local 1 // android.view.ViewTreeObserver$InternalInsetsInfo inoutInfo
         0: .line 1077
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnComputeInternalInsetsListeners:Landroid/view/ViewTreeObserver$CopyOnWriteArray;
         1: .line 1076
            astore 2 /* listeners */
        start local 2 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
         2: .line 1078
            aload 2 /* listeners */
            ifnull 15
            aload 2 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.size:()I
            ifle 15
         3: .line 1079
            aload 2 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.start:()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
            astore 3 /* access */
        start local 3 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
         4: .line 1081
            aload 3 /* access */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.size:()I
            istore 4 /* count */
        start local 4 // int count
         5: .line 1082
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 9
         7: .line 1083
      StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$InternalInsetsInfo android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access int int
      StackMap stack:
            aload 3 /* access */
            iload 5 /* i */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray$Access.get:(I)Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnComputeInternalInsetsListener
            aload 1 /* inoutInfo */
            invokeinterface android.view.ViewTreeObserver$OnComputeInternalInsetsListener.onComputeInternalInsets:(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
         8: .line 1082
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            iload 4 /* count */
            if_icmplt 7
        end local 5 // int i
        end local 4 // int count
        10: .line 1085
            goto 14
      StackMap locals: android.view.ViewTreeObserver android.view.ViewTreeObserver$InternalInsetsInfo android.view.ViewTreeObserver$CopyOnWriteArray android.view.ViewTreeObserver$CopyOnWriteArray$Access
      StackMap stack: java.lang.Throwable
        11: astore 6
        12: .line 1086
            aload 2 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        13: .line 1087
            aload 6
            athrow
        14: .line 1086
      StackMap locals:
      StackMap stack:
            aload 2 /* listeners */
            invokevirtual android.view.ViewTreeObserver$CopyOnWriteArray.end:()V
        end local 3 // android.view.ViewTreeObserver$CopyOnWriteArray$Access access
        15: .line 1089
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.view.ViewTreeObserver$CopyOnWriteArray listeners
        end local 1 // android.view.ViewTreeObserver$InternalInsetsInfo inoutInfo
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Landroid/view/ViewTreeObserver;
            0   16     1  inoutInfo  Landroid/view/ViewTreeObserver$InternalInsetsInfo;
            2   16     2  listeners  Landroid/view/ViewTreeObserver$CopyOnWriteArray<Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;>;
            4   15     3     access  Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access<Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;>;
            5   10     4      count  I
            6   10     5          i  I
      Exception table:
        from    to  target  type
           4    11      11  any
    MethodParameters:
           Name  Flags
      inoutInfo  

  public final void dispatchOnEnterAnimationComplete();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // android.view.ViewTreeObserver this
         0: .line 1100
            aload 0 /* this */
            getfield android.view.ViewTreeObserver.mOnEnterAnimationCompleteListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
         1: .line 1099
            astore 1 /* listeners */
        start local 1 // java.util.concurrent.CopyOnWriteArrayList listeners
         2: .line 1101
            aload 1 /* listeners */
            ifnull 7
            aload 1 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.isEmpty:()Z
            ifne 7
         3: .line 1102
            aload 1 /* listeners */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: android.view.ViewTreeObserver java.util.concurrent.CopyOnWriteArrayList top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.view.ViewTreeObserver$OnEnterAnimationCompleteListener
            astore 2 /* listener */
        start local 2 // android.view.ViewTreeObserver$OnEnterAnimationCompleteListener listener
         5: .line 1103
            aload 2 /* listener */
            invokeinterface android.view.ViewTreeObserver$OnEnterAnimationCompleteListener.onEnterAnimationComplete:()V
        end local 2 // android.view.ViewTreeObserver$OnEnterAnimationCompleteListener listener
         6: .line 1102
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 1106
      StackMap locals: android.view.ViewTreeObserver java.util.concurrent.CopyOnWriteArrayList
      StackMap stack:
            return
        end local 1 // java.util.concurrent.CopyOnWriteArrayList listeners
        end local 0 // android.view.ViewTreeObserver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/view/ViewTreeObserver;
            2    8     1  listeners  Ljava/util/concurrent/CopyOnWriteArrayList<Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;>;
            5    6     2   listener  Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;
}
SourceFile: "ViewTreeObserver.java"
NestMembers:
  android.view.ViewTreeObserver$CopyOnWriteArray  android.view.ViewTreeObserver$CopyOnWriteArray$Access  android.view.ViewTreeObserver$InternalInsetsInfo  android.view.ViewTreeObserver$OnComputeInternalInsetsListener  android.view.ViewTreeObserver$OnDrawListener  android.view.ViewTreeObserver$OnEnterAnimationCompleteListener  android.view.ViewTreeObserver$OnGlobalFocusChangeListener  android.view.ViewTreeObserver$OnGlobalLayoutListener  android.view.ViewTreeObserver$OnPreDrawListener  android.view.ViewTreeObserver$OnScrollChangedListener  android.view.ViewTreeObserver$OnTouchModeChangeListener  android.view.ViewTreeObserver$OnWindowAttachListener  android.view.ViewTreeObserver$OnWindowFocusChangeListener  android.view.ViewTreeObserver$OnWindowShownListener
InnerClasses:
  CopyOnWriteArray = android.view.ViewTreeObserver$CopyOnWriteArray of android.view.ViewTreeObserver
  Access = android.view.ViewTreeObserver$CopyOnWriteArray$Access of android.view.ViewTreeObserver$CopyOnWriteArray
  public final InternalInsetsInfo = android.view.ViewTreeObserver$InternalInsetsInfo of android.view.ViewTreeObserver
  public abstract OnComputeInternalInsetsListener = android.view.ViewTreeObserver$OnComputeInternalInsetsListener of android.view.ViewTreeObserver
  public abstract OnDrawListener = android.view.ViewTreeObserver$OnDrawListener of android.view.ViewTreeObserver
  public abstract OnEnterAnimationCompleteListener = android.view.ViewTreeObserver$OnEnterAnimationCompleteListener of android.view.ViewTreeObserver
  public abstract OnGlobalFocusChangeListener = android.view.ViewTreeObserver$OnGlobalFocusChangeListener of android.view.ViewTreeObserver
  public abstract OnGlobalLayoutListener = android.view.ViewTreeObserver$OnGlobalLayoutListener of android.view.ViewTreeObserver
  public abstract OnPreDrawListener = android.view.ViewTreeObserver$OnPreDrawListener of android.view.ViewTreeObserver
  public abstract OnScrollChangedListener = android.view.ViewTreeObserver$OnScrollChangedListener of android.view.ViewTreeObserver
  public abstract OnTouchModeChangeListener = android.view.ViewTreeObserver$OnTouchModeChangeListener of android.view.ViewTreeObserver
  public abstract OnWindowAttachListener = android.view.ViewTreeObserver$OnWindowAttachListener of android.view.ViewTreeObserver
  public abstract OnWindowFocusChangeListener = android.view.ViewTreeObserver$OnWindowFocusChangeListener of android.view.ViewTreeObserver
  public abstract OnWindowShownListener = android.view.ViewTreeObserver$OnWindowShownListener of android.view.ViewTreeObserver