class com.android.keyguard.PasswordTextView$CharState
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.android.keyguard.PasswordTextView$CharState
  super_class: java.lang.Object
{
  char whichChar;
    descriptor: C
    flags: (0x0000) 

  android.animation.ValueAnimator textAnimator;
    descriptor: Landroid/animation/ValueAnimator;
    flags: (0x0000) 

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

  android.animation.Animator dotAnimator;
    descriptor: Landroid/animation/Animator;
    flags: (0x0000) 

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

  android.animation.ValueAnimator widthAnimator;
    descriptor: Landroid/animation/ValueAnimator;
    flags: (0x0000) 

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

  float currentTextSizeFactor;
    descriptor: F
    flags: (0x0000) 

  float currentDotSizeFactor;
    descriptor: F
    flags: (0x0000) 

  float currentWidthFactor;
    descriptor: F
    flags: (0x0000) 

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

  float currentTextTranslationY;
    descriptor: F
    flags: (0x0000) 

  android.animation.ValueAnimator textTranslateAnimator;
    descriptor: Landroid/animation/ValueAnimator;
    flags: (0x0000) 

  android.animation.Animator$AnimatorListener removeEndListener;
    descriptor: Landroid/animation/Animator$AnimatorListener;
    flags: (0x0000) 

  android.animation.Animator$AnimatorListener dotFinishListener;
    descriptor: Landroid/animation/Animator$AnimatorListener;
    flags: (0x0000) 

  android.animation.Animator$AnimatorListener textFinishListener;
    descriptor: Landroid/animation/Animator$AnimatorListener;
    flags: (0x0000) 

  android.animation.Animator$AnimatorListener textTranslateFinishListener;
    descriptor: Landroid/animation/Animator$AnimatorListener;
    flags: (0x0000) 

  android.animation.Animator$AnimatorListener widthFinishListener;
    descriptor: Landroid/animation/Animator$AnimatorListener;
    flags: (0x0000) 

  private android.animation.ValueAnimator$AnimatorUpdateListener dotSizeUpdater;
    descriptor: Landroid/animation/ValueAnimator$AnimatorUpdateListener;
    flags: (0x0002) ACC_PRIVATE

  private android.animation.ValueAnimator$AnimatorUpdateListener textSizeUpdater;
    descriptor: Landroid/animation/ValueAnimator$AnimatorUpdateListener;
    flags: (0x0002) ACC_PRIVATE

  private android.animation.ValueAnimator$AnimatorUpdateListener textTranslationUpdater;
    descriptor: Landroid/animation/ValueAnimator$AnimatorUpdateListener;
    flags: (0x0002) ACC_PRIVATE

  private android.animation.ValueAnimator$AnimatorUpdateListener widthUpdater;
    descriptor: Landroid/animation/ValueAnimator$AnimatorUpdateListener;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable dotSwapperRunnable;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  final com.android.keyguard.PasswordTextView this$0;
    descriptor: Lcom/android/keyguard/PasswordTextView;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(com.android.keyguard.PasswordTextView);
    descriptor: (Lcom/android/keyguard/PasswordTextView;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
         0: .line 366
            aload 0 /* this */
            aload 1
            putfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 378
            aload 0 /* this */
            fconst_1
            putfield com.android.keyguard.PasswordTextView$CharState.currentTextTranslationY:F
         2: .line 381
            aload 0 /* this */
            new com.android.keyguard.PasswordTextView$CharState$1
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$1.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.removeEndListener:Landroid/animation/Animator$AnimatorListener;
         3: .line 405
            aload 0 /* this */
            new com.android.keyguard.PasswordTextView$CharState$2
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$2.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.dotFinishListener:Landroid/animation/Animator$AnimatorListener;
         4: .line 412
            aload 0 /* this */
            new com.android.keyguard.PasswordTextView$CharState$3
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$3.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.textFinishListener:Landroid/animation/Animator$AnimatorListener;
         5: .line 419
            aload 0 /* this */
            new com.android.keyguard.PasswordTextView$CharState$4
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$4.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.textTranslateFinishListener:Landroid/animation/Animator$AnimatorListener;
         6: .line 426
            aload 0 /* this */
            new com.android.keyguard.PasswordTextView$CharState$5
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$5.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.widthFinishListener:Landroid/animation/Animator$AnimatorListener;
         7: .line 433
            aload 0 /* this */
         8: .line 434
            new com.android.keyguard.PasswordTextView$CharState$6
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$6.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.dotSizeUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
         9: .line 442
            aload 0 /* this */
        10: .line 443
            new com.android.keyguard.PasswordTextView$CharState$7
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$7.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.textSizeUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
        11: .line 463
            aload 0 /* this */
        12: .line 464
            new com.android.keyguard.PasswordTextView$CharState$8
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$8.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.textTranslationUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
        13: .line 472
            aload 0 /* this */
        14: .line 473
            new com.android.keyguard.PasswordTextView$CharState$9
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$9.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.widthUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
        15: .line 481
            aload 0 /* this */
            new com.android.keyguard.PasswordTextView$CharState$10
            dup
            aload 0 /* this */
            invokespecial com.android.keyguard.PasswordTextView$CharState$10.<init>:(Lcom/android/keyguard/PasswordTextView$CharState;)V
            putfield com.android.keyguard.PasswordTextView$CharState.dotSwapperRunnable:Ljava/lang/Runnable;
        16: .line 366
            return
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/android/keyguard/PasswordTextView$CharState;
    MethodParameters:
        Name  Flags
      this$0  final

  void reset();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
         0: .line 490
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.PasswordTextView$CharState.whichChar:C
         1: .line 491
            aload 0 /* this */
            fconst_0
            putfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
         2: .line 492
            aload 0 /* this */
            fconst_0
            putfield com.android.keyguard.PasswordTextView$CharState.currentDotSizeFactor:F
         3: .line 493
            aload 0 /* this */
            fconst_0
            putfield com.android.keyguard.PasswordTextView$CharState.currentWidthFactor:F
         4: .line 494
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            invokevirtual com.android.keyguard.PasswordTextView$CharState.cancelAnimator:(Landroid/animation/Animator;)V
         5: .line 495
            aload 0 /* this */
            aconst_null
            putfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
         6: .line 496
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
            invokevirtual com.android.keyguard.PasswordTextView$CharState.cancelAnimator:(Landroid/animation/Animator;)V
         7: .line 497
            aload 0 /* this */
            aconst_null
            putfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
         8: .line 498
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            invokevirtual com.android.keyguard.PasswordTextView$CharState.cancelAnimator:(Landroid/animation/Animator;)V
         9: .line 499
            aload 0 /* this */
            aconst_null
            putfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
        10: .line 500
            aload 0 /* this */
            fconst_1
            putfield com.android.keyguard.PasswordTextView$CharState.currentTextTranslationY:F
        11: .line 501
            aload 0 /* this */
            invokevirtual com.android.keyguard.PasswordTextView$CharState.removeDotSwapCallbacks:()V
        12: .line 502
            return
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/android/keyguard/PasswordTextView$CharState;

  void startRemoveAnimation(long, long);
    descriptor: (JJ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
        start local 1 // long startDelay
        start local 3 // long widthDelay
         0: .line 505
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentDotSizeFactor:F
            fconst_0
            fcmpl
            ifle 1
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
            ifnull 3
         1: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
            ifnull 2
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotAnimationIsGrowing:Z
            ifne 3
         2: .line 505
      StackMap locals:
      StackMap stack:
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 5 /* dotNeedsAnimation */
        start local 5 // boolean dotNeedsAnimation
         5: .line 507
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            fconst_0
            fcmpl
            ifle 6
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            ifnull 8
         6: .line 508
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            ifnull 7
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimationIsGrowing:Z
            ifne 8
         7: .line 507
      StackMap locals:
      StackMap stack:
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: istore 6 /* textNeedsAnimation */
        start local 6 // boolean textNeedsAnimation
        10: .line 509
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentWidthFactor:F
            fconst_0
            fcmpl
            ifle 11
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            ifnull 13
        11: .line 510
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            ifnull 12
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimationIsGrowing:Z
            ifne 13
        12: .line 509
      StackMap locals:
      StackMap stack:
            iconst_0
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_1
      StackMap locals:
      StackMap stack: int
        14: istore 7 /* widthNeedsAnimation */
        start local 7 // boolean widthNeedsAnimation
        15: .line 511
            iload 5 /* dotNeedsAnimation */
            ifeq 17
        16: .line 512
            aload 0 /* this */
            lload 1 /* startDelay */
            invokevirtual com.android.keyguard.PasswordTextView$CharState.startDotDisappearAnimation:(J)V
        17: .line 514
      StackMap locals: int
      StackMap stack:
            iload 6 /* textNeedsAnimation */
            ifeq 19
        18: .line 515
            aload 0 /* this */
            lload 1 /* startDelay */
            invokevirtual com.android.keyguard.PasswordTextView$CharState.startTextDisappearAnimation:(J)V
        19: .line 517
      StackMap locals:
      StackMap stack:
            iload 7 /* widthNeedsAnimation */
            ifeq 21
        20: .line 518
            aload 0 /* this */
            lload 3 /* widthDelay */
            invokevirtual com.android.keyguard.PasswordTextView$CharState.startWidthDisappearAnimation:(J)V
        21: .line 520
      StackMap locals:
      StackMap stack:
            return
        end local 7 // boolean widthNeedsAnimation
        end local 6 // boolean textNeedsAnimation
        end local 5 // boolean dotNeedsAnimation
        end local 3 // long widthDelay
        end local 1 // long startDelay
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0                 this  Lcom/android/keyguard/PasswordTextView$CharState;
            0   22     1           startDelay  J
            0   22     3           widthDelay  J
            5   22     5    dotNeedsAnimation  Z
           10   22     6   textNeedsAnimation  Z
           15   22     7  widthNeedsAnimation  Z
    MethodParameters:
            Name  Flags
      startDelay  
      widthDelay  

  void startAppearAnimation();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
         0: .line 523
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mShowPassword:Z
            ifne 3
         1: .line 524
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
            ifnull 2
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotAnimationIsGrowing:Z
            ifne 3
         2: .line 523
      StackMap locals:
      StackMap stack:
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 1 /* dotNeedsAnimation */
        start local 1 // boolean dotNeedsAnimation
         5: .line 525
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mShowPassword:Z
            ifeq 8
         6: .line 526
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            ifnull 7
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimationIsGrowing:Z
            ifne 8
         7: .line 525
      StackMap locals: int
      StackMap stack:
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 2 /* textNeedsAnimation */
        start local 2 // boolean textNeedsAnimation
        10: .line 527
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            ifnull 11
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimationIsGrowing:Z
            ifeq 11
            iconst_0
            goto 12
      StackMap locals: int
      StackMap stack:
        11: iconst_1
      StackMap locals:
      StackMap stack: int
        12: istore 3 /* widthNeedsAnimation */
        start local 3 // boolean widthNeedsAnimation
        13: .line 528
            iload 1 /* dotNeedsAnimation */
            ifeq 15
        14: .line 529
            aload 0 /* this */
            lconst_0
            invokevirtual com.android.keyguard.PasswordTextView$CharState.startDotAppearAnimation:(J)V
        15: .line 531
      StackMap locals: int
      StackMap stack:
            iload 2 /* textNeedsAnimation */
            ifeq 17
        16: .line 532
            aload 0 /* this */
            invokevirtual com.android.keyguard.PasswordTextView$CharState.startTextAppearAnimation:()V
        17: .line 534
      StackMap locals:
      StackMap stack:
            iload 3 /* widthNeedsAnimation */
            ifeq 19
        18: .line 535
            aload 0 /* this */
            invokevirtual com.android.keyguard.PasswordTextView$CharState.startWidthAppearAnimation:()V
        19: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mShowPassword:Z
            ifeq 21
        20: .line 538
            aload 0 /* this */
            ldc 1300
            invokevirtual com.android.keyguard.PasswordTextView$CharState.postDotSwap:(J)V
        21: .line 540
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean widthNeedsAnimation
        end local 2 // boolean textNeedsAnimation
        end local 1 // boolean dotNeedsAnimation
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0                 this  Lcom/android/keyguard/PasswordTextView$CharState;
            5   22     1    dotNeedsAnimation  Z
           10   22     2   textNeedsAnimation  Z
           13   22     3  widthNeedsAnimation  Z

  private void postDotSwap(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
        start local 1 // long delay
         0: .line 547
            aload 0 /* this */
            invokevirtual com.android.keyguard.PasswordTextView$CharState.removeDotSwapCallbacks:()V
         1: .line 548
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotSwapperRunnable:Ljava/lang/Runnable;
            lload 1 /* delay */
            invokevirtual com.android.keyguard.PasswordTextView.postDelayed:(Ljava/lang/Runnable;J)Z
            pop
         2: .line 549
            aload 0 /* this */
            iconst_1
            putfield com.android.keyguard.PasswordTextView$CharState.isDotSwapPending:Z
         3: .line 550
            return
        end local 1 // long delay
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/android/keyguard/PasswordTextView$CharState;
            0    4     1  delay  J
    MethodParameters:
       Name  Flags
      delay  

  private void removeDotSwapCallbacks();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
         0: .line 553
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotSwapperRunnable:Ljava/lang/Runnable;
            invokevirtual com.android.keyguard.PasswordTextView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
         1: .line 554
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.PasswordTextView$CharState.isDotSwapPending:Z
         2: .line 555
            return
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/android/keyguard/PasswordTextView$CharState;

  void swapToDotWhenAppearFinished();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
         0: .line 558
            aload 0 /* this */
            invokevirtual com.android.keyguard.PasswordTextView$CharState.removeDotSwapCallbacks:()V
         1: .line 559
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            ifnull 7
         2: .line 560
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            invokevirtual android.animation.ValueAnimator.getDuration:()J
         3: .line 561
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            invokevirtual android.animation.ValueAnimator.getCurrentPlayTime:()J
         4: .line 560
            lsub
            lstore 1 /* remainingDuration */
        start local 1 // long remainingDuration
         5: .line 562
            aload 0 /* this */
            lload 1 /* remainingDuration */
            ldc 100
            ladd
            invokevirtual com.android.keyguard.PasswordTextView$CharState.postDotSwap:(J)V
        end local 1 // long remainingDuration
         6: .line 563
            goto 8
         7: .line 564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.keyguard.PasswordTextView$CharState.performSwap:()V
         8: .line 566
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Lcom/android/keyguard/PasswordTextView$CharState;
            5    6     1  remainingDuration  J

  private void performSwap();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
         0: .line 569
            aload 0 /* this */
            lconst_0
            invokevirtual com.android.keyguard.PasswordTextView$CharState.startTextDisappearAnimation:(J)V
         1: .line 570
            aload 0 /* this */
            ldc 30
            invokevirtual com.android.keyguard.PasswordTextView$CharState.startDotAppearAnimation:(J)V
         2: .line 572
            return
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/android/keyguard/PasswordTextView$CharState;

  private void startWidthDisappearAnimation(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
        start local 1 // long widthDelay
         0: .line 575
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            invokevirtual com.android.keyguard.PasswordTextView$CharState.cancelAnimator:(Landroid/animation/Animator;)V
         1: .line 576
            aload 0 /* this */
            iconst_2
            newarray 6
            dup
            iconst_0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentWidthFactor:F
            fastore
            dup
            iconst_1
            fconst_0
            fastore
            invokestatic android.animation.ValueAnimator.ofFloat:([F)Landroid/animation/ValueAnimator;
            putfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
         2: .line 577
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            invokevirtual android.animation.ValueAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
         3: .line 578
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthFinishListener:Landroid/animation/Animator$AnimatorListener;
            invokevirtual android.animation.ValueAnimator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
         4: .line 579
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.removeEndListener:Landroid/animation/Animator$AnimatorListener;
            invokevirtual android.animation.ValueAnimator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
         5: .line 580
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            ldc 160.0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentWidthFactor:F
            fmul
            f2l
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            pop
         6: .line 581
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            lload 1 /* widthDelay */
            invokevirtual android.animation.ValueAnimator.setStartDelay:(J)V
         7: .line 582
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            invokevirtual android.animation.ValueAnimator.start:()V
         8: .line 583
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.PasswordTextView$CharState.widthAnimationIsGrowing:Z
         9: .line 584
            return
        end local 1 // long widthDelay
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/android/keyguard/PasswordTextView$CharState;
            0   10     1  widthDelay  J
    MethodParameters:
            Name  Flags
      widthDelay  

  private void startTextDisappearAnimation(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
        start local 1 // long startDelay
         0: .line 587
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            invokevirtual com.android.keyguard.PasswordTextView$CharState.cancelAnimator:(Landroid/animation/Animator;)V
         1: .line 588
            aload 0 /* this */
            iconst_2
            newarray 6
            dup
            iconst_0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            fastore
            dup
            iconst_1
            fconst_0
            fastore
            invokestatic android.animation.ValueAnimator.ofFloat:([F)Landroid/animation/ValueAnimator;
            putfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
         2: .line 589
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textSizeUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            invokevirtual android.animation.ValueAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
         3: .line 590
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textFinishListener:Landroid/animation/Animator$AnimatorListener;
            invokevirtual android.animation.ValueAnimator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
         4: .line 591
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mDisappearInterpolator:Landroid/view/animation/Interpolator;
            invokevirtual android.animation.ValueAnimator.setInterpolator:(Landroid/animation/TimeInterpolator;)V
         5: .line 592
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            ldc 160.0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            fmul
            f2l
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            pop
         6: .line 593
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            lload 1 /* startDelay */
            invokevirtual android.animation.ValueAnimator.setStartDelay:(J)V
         7: .line 594
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            invokevirtual android.animation.ValueAnimator.start:()V
         8: .line 595
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.PasswordTextView$CharState.textAnimationIsGrowing:Z
         9: .line 596
            return
        end local 1 // long startDelay
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/android/keyguard/PasswordTextView$CharState;
            0   10     1  startDelay  J
    MethodParameters:
            Name  Flags
      startDelay  

  private void startDotDisappearAnimation(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
        start local 1 // long startDelay
         0: .line 599
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
            invokevirtual com.android.keyguard.PasswordTextView$CharState.cancelAnimator:(Landroid/animation/Animator;)V
         1: .line 600
            iconst_2
            newarray 6
            dup
            iconst_0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentDotSizeFactor:F
            fastore
            dup
            iconst_1
            fconst_0
            fastore
            invokestatic android.animation.ValueAnimator.ofFloat:([F)Landroid/animation/ValueAnimator;
            astore 3 /* animator */
        start local 3 // android.animation.ValueAnimator animator
         2: .line 601
            aload 3 /* animator */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotSizeUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            invokevirtual android.animation.ValueAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
         3: .line 602
            aload 3 /* animator */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotFinishListener:Landroid/animation/Animator$AnimatorListener;
            invokevirtual android.animation.ValueAnimator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
         4: .line 603
            aload 3 /* animator */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mDisappearInterpolator:Landroid/view/animation/Interpolator;
            invokevirtual android.animation.ValueAnimator.setInterpolator:(Landroid/animation/TimeInterpolator;)V
         5: .line 604
            ldc 160.0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentDotSizeFactor:F
            fconst_1
            invokestatic java.lang.Math.min:(FF)F
            fmul
            f2l
            lstore 4 /* duration */
        start local 4 // long duration
         6: .line 605
            aload 3 /* animator */
            lload 4 /* duration */
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            pop
         7: .line 606
            aload 3 /* animator */
            lload 1 /* startDelay */
            invokevirtual android.animation.ValueAnimator.setStartDelay:(J)V
         8: .line 607
            aload 3 /* animator */
            invokevirtual android.animation.ValueAnimator.start:()V
         9: .line 608
            aload 0 /* this */
            aload 3 /* animator */
            putfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
        10: .line 609
            aload 0 /* this */
            iconst_0
            putfield com.android.keyguard.PasswordTextView$CharState.dotAnimationIsGrowing:Z
        11: .line 610
            return
        end local 4 // long duration
        end local 3 // android.animation.ValueAnimator animator
        end local 1 // long startDelay
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lcom/android/keyguard/PasswordTextView$CharState;
            0   12     1  startDelay  J
            2   12     3    animator  Landroid/animation/ValueAnimator;
            6   12     4    duration  J
    MethodParameters:
            Name  Flags
      startDelay  

  private void startWidthAppearAnimation();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
         0: .line 613
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            invokevirtual com.android.keyguard.PasswordTextView$CharState.cancelAnimator:(Landroid/animation/Animator;)V
         1: .line 614
            aload 0 /* this */
            iconst_2
            newarray 6
            dup
            iconst_0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentWidthFactor:F
            fastore
            dup
            iconst_1
            fconst_1
            fastore
            invokestatic android.animation.ValueAnimator.ofFloat:([F)Landroid/animation/ValueAnimator;
            putfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
         2: .line 615
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            invokevirtual android.animation.ValueAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
         3: .line 616
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthFinishListener:Landroid/animation/Animator$AnimatorListener;
            invokevirtual android.animation.ValueAnimator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
         4: .line 617
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            ldc 160.0
            fconst_1
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentWidthFactor:F
            fsub
            fmul
            f2l
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            pop
         5: .line 618
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.widthAnimator:Landroid/animation/ValueAnimator;
            invokevirtual android.animation.ValueAnimator.start:()V
         6: .line 619
            aload 0 /* this */
            iconst_1
            putfield com.android.keyguard.PasswordTextView$CharState.widthAnimationIsGrowing:Z
         7: .line 620
            return
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/keyguard/PasswordTextView$CharState;

  private void startTextAppearAnimation();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
         0: .line 623
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            invokevirtual com.android.keyguard.PasswordTextView$CharState.cancelAnimator:(Landroid/animation/Animator;)V
         1: .line 624
            aload 0 /* this */
            iconst_2
            newarray 6
            dup
            iconst_0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            fastore
            dup
            iconst_1
            fconst_1
            fastore
            invokestatic android.animation.ValueAnimator.ofFloat:([F)Landroid/animation/ValueAnimator;
            putfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
         2: .line 625
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textSizeUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            invokevirtual android.animation.ValueAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
         3: .line 626
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textFinishListener:Landroid/animation/Animator$AnimatorListener;
            invokevirtual android.animation.ValueAnimator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
         4: .line 627
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mAppearInterpolator:Landroid/view/animation/Interpolator;
            invokevirtual android.animation.ValueAnimator.setInterpolator:(Landroid/animation/TimeInterpolator;)V
         5: .line 628
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            ldc 160.0
            fconst_1
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            fsub
            fmul
            f2l
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            pop
         6: .line 629
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            invokevirtual android.animation.ValueAnimator.start:()V
         7: .line 630
            aload 0 /* this */
            iconst_1
            putfield com.android.keyguard.PasswordTextView$CharState.textAnimationIsGrowing:Z
         8: .line 633
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textTranslateAnimator:Landroid/animation/ValueAnimator;
            ifnonnull 15
         9: .line 634
            aload 0 /* this */
            iconst_2
            newarray 6
            dup
            iconst_0
            fconst_1
            fastore
            dup
            iconst_1
            fconst_0
            fastore
            invokestatic android.animation.ValueAnimator.ofFloat:([F)Landroid/animation/ValueAnimator;
            putfield com.android.keyguard.PasswordTextView$CharState.textTranslateAnimator:Landroid/animation/ValueAnimator;
        10: .line 635
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textTranslateAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textTranslationUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            invokevirtual android.animation.ValueAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
        11: .line 636
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textTranslateAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textTranslateFinishListener:Landroid/animation/Animator$AnimatorListener;
            invokevirtual android.animation.ValueAnimator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
        12: .line 637
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textTranslateAnimator:Landroid/animation/ValueAnimator;
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mAppearInterpolator:Landroid/view/animation/Interpolator;
            invokevirtual android.animation.ValueAnimator.setInterpolator:(Landroid/animation/TimeInterpolator;)V
        13: .line 638
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textTranslateAnimator:Landroid/animation/ValueAnimator;
            ldc 160
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            pop
        14: .line 639
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textTranslateAnimator:Landroid/animation/ValueAnimator;
            invokevirtual android.animation.ValueAnimator.start:()V
        15: .line 641
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lcom/android/keyguard/PasswordTextView$CharState;

  private void startDotAppearAnimation(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
        start local 1 // long delay
         0: .line 644
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
            invokevirtual com.android.keyguard.PasswordTextView$CharState.cancelAnimator:(Landroid/animation/Animator;)V
         1: .line 645
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mShowPassword:Z
            ifne 21
         2: .line 647
            iconst_2
            newarray 6
            dup
            iconst_0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentDotSizeFactor:F
            fastore
            dup
            iconst_1
         3: .line 648
            ldc 1.5
            fastore
         4: .line 647
            invokestatic android.animation.ValueAnimator.ofFloat:([F)Landroid/animation/ValueAnimator;
            astore 3 /* overShootAnimator */
        start local 3 // android.animation.ValueAnimator overShootAnimator
         5: .line 649
            aload 3 /* overShootAnimator */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotSizeUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            invokevirtual android.animation.ValueAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
         6: .line 650
            aload 3 /* overShootAnimator */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mAppearInterpolator:Landroid/view/animation/Interpolator;
            invokevirtual android.animation.ValueAnimator.setInterpolator:(Landroid/animation/TimeInterpolator;)V
         7: .line 651
            ldc 160
            lstore 4 /* overShootDuration */
        start local 4 // long overShootDuration
         8: .line 653
            aload 3 /* overShootAnimator */
            lload 4 /* overShootDuration */
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            pop
         9: .line 654
            iconst_2
            newarray 6
            dup
            iconst_0
            ldc 1.5
            fastore
            dup
            iconst_1
        10: .line 655
            fconst_1
            fastore
        11: .line 654
            invokestatic android.animation.ValueAnimator.ofFloat:([F)Landroid/animation/ValueAnimator;
            astore 6 /* settleBackAnimator */
        start local 6 // android.animation.ValueAnimator settleBackAnimator
        12: .line 656
            aload 6 /* settleBackAnimator */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotSizeUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            invokevirtual android.animation.ValueAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
        13: .line 657
            aload 6 /* settleBackAnimator */
            ldc 320
            lload 4 /* overShootDuration */
            lsub
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            pop
        14: .line 658
            aload 6 /* settleBackAnimator */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotFinishListener:Landroid/animation/Animator$AnimatorListener;
            invokevirtual android.animation.ValueAnimator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
        15: .line 659
            new android.animation.AnimatorSet
            dup
            invokespecial android.animation.AnimatorSet.<init>:()V
            astore 7 /* animatorSet */
        start local 7 // android.animation.AnimatorSet animatorSet
        16: .line 660
            aload 7 /* animatorSet */
            iconst_2
            anewarray android.animation.Animator
            dup
            iconst_0
            aload 3 /* overShootAnimator */
            aastore
            dup
            iconst_1
            aload 6 /* settleBackAnimator */
            aastore
            invokevirtual android.animation.AnimatorSet.playSequentially:([Landroid/animation/Animator;)V
        17: .line 661
            aload 7 /* animatorSet */
            lload 1 /* delay */
            invokevirtual android.animation.AnimatorSet.setStartDelay:(J)V
        18: .line 662
            aload 7 /* animatorSet */
            invokevirtual android.animation.AnimatorSet.start:()V
        19: .line 663
            aload 0 /* this */
            aload 7 /* animatorSet */
            putfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
        end local 7 // android.animation.AnimatorSet animatorSet
        end local 6 // android.animation.ValueAnimator settleBackAnimator
        end local 4 // long overShootDuration
        end local 3 // android.animation.ValueAnimator overShootAnimator
        20: .line 664
            goto 28
        21: .line 665
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 6
            dup
            iconst_0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentDotSizeFactor:F
            fastore
            dup
            iconst_1
            fconst_1
            fastore
            invokestatic android.animation.ValueAnimator.ofFloat:([F)Landroid/animation/ValueAnimator;
            astore 3 /* growAnimator */
        start local 3 // android.animation.ValueAnimator growAnimator
        22: .line 666
            aload 3 /* growAnimator */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotSizeUpdater:Landroid/animation/ValueAnimator$AnimatorUpdateListener;
            invokevirtual android.animation.ValueAnimator.addUpdateListener:(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
        23: .line 667
            aload 3 /* growAnimator */
            ldc 160.0
            fconst_1
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentDotSizeFactor:F
            fsub
            fmul
            f2l
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            pop
        24: .line 668
            aload 3 /* growAnimator */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.dotFinishListener:Landroid/animation/Animator$AnimatorListener;
            invokevirtual android.animation.ValueAnimator.addListener:(Landroid/animation/Animator$AnimatorListener;)V
        25: .line 669
            aload 3 /* growAnimator */
            lload 1 /* delay */
            invokevirtual android.animation.ValueAnimator.setStartDelay:(J)V
        26: .line 670
            aload 3 /* growAnimator */
            invokevirtual android.animation.ValueAnimator.start:()V
        27: .line 671
            aload 0 /* this */
            aload 3 /* growAnimator */
            putfield com.android.keyguard.PasswordTextView$CharState.dotAnimator:Landroid/animation/Animator;
        end local 3 // android.animation.ValueAnimator growAnimator
        28: .line 673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.android.keyguard.PasswordTextView$CharState.dotAnimationIsGrowing:Z
        29: .line 674
            return
        end local 1 // long delay
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   30     0                this  Lcom/android/keyguard/PasswordTextView$CharState;
            0   30     1               delay  J
            5   20     3   overShootAnimator  Landroid/animation/ValueAnimator;
            8   20     4   overShootDuration  J
           12   20     6  settleBackAnimator  Landroid/animation/ValueAnimator;
           16   20     7         animatorSet  Landroid/animation/AnimatorSet;
           22   28     3        growAnimator  Landroid/animation/ValueAnimator;
    MethodParameters:
       Name  Flags
      delay  

  private void cancelAnimator(android.animation.Animator);
    descriptor: (Landroid/animation/Animator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
        start local 1 // android.animation.Animator animator
         0: .line 677
            aload 1 /* animator */
            ifnull 2
         1: .line 678
            aload 1 /* animator */
            invokevirtual android.animation.Animator.cancel:()V
         2: .line 680
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.animation.Animator animator
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/android/keyguard/PasswordTextView$CharState;
            0    3     1  animator  Landroid/animation/Animator;
    MethodParameters:
          Name  Flags
      animator  

  public float draw(android.graphics.Canvas, float, int, float, float);
    descriptor: (Landroid/graphics/Canvas;FIFF)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=6
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
        start local 1 // android.graphics.Canvas canvas
        start local 2 // float currentDrawPosition
        start local 3 // int charHeight
        start local 4 // float yPosition
        start local 5 // float charLength
         0: .line 689
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            fconst_0
            fcmpl
            ifle 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 6 /* textVisible */
        start local 6 // boolean textVisible
         3: .line 690
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentDotSizeFactor:F
            fconst_0
            fcmpl
            ifle 4
            iconst_1
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 7 /* dotVisible */
        start local 7 // boolean dotVisible
         6: .line 691
            fload 5 /* charLength */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentWidthFactor:F
            fmul
            fstore 8 /* charWidth */
        start local 8 // float charWidth
         7: .line 692
            iload 6 /* textVisible */
            ifeq 17
         8: .line 693
            fload 4 /* yPosition */
            iload 3 /* charHeight */
            i2f
            fconst_2
            fdiv
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            fmul
            fadd
         9: .line 694
            iload 3 /* charHeight */
            i2f
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextTranslationY:F
            fmul
            ldc 0.8
            fmul
        10: .line 693
            fadd
            fstore 9 /* currYPosition */
        start local 9 // float currYPosition
        11: .line 695
            aload 1 /* canvas */
            invokevirtual android.graphics.Canvas.save:()I
            pop
        12: .line 696
            fload 2 /* currentDrawPosition */
            fload 8 /* charWidth */
            fconst_2
            fdiv
            fadd
            fstore 10 /* centerX */
        start local 10 // float centerX
        13: .line 697
            aload 1 /* canvas */
            fload 10 /* centerX */
            fload 9 /* currYPosition */
            invokevirtual android.graphics.Canvas.translate:(FF)V
        14: .line 698
            aload 1 /* canvas */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            invokevirtual android.graphics.Canvas.scale:(FF)V
        15: .line 699
            aload 1 /* canvas */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.whichChar:C
            invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
            fconst_0
            fconst_0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mDrawPaint:Landroid/graphics/Paint;
            invokevirtual android.graphics.Canvas.drawText:(Ljava/lang/String;FFLandroid/graphics/Paint;)V
        16: .line 700
            aload 1 /* canvas */
            invokevirtual android.graphics.Canvas.restore:()V
        end local 10 // float centerX
        end local 9 // float currYPosition
        17: .line 702
      StackMap locals: int float
      StackMap stack:
            iload 7 /* dotVisible */
            ifeq 23
        18: .line 703
            aload 1 /* canvas */
            invokevirtual android.graphics.Canvas.save:()I
            pop
        19: .line 704
            fload 2 /* currentDrawPosition */
            fload 8 /* charWidth */
            fconst_2
            fdiv
            fadd
            fstore 9 /* centerX */
        start local 9 // float centerX
        20: .line 705
            aload 1 /* canvas */
            fload 9 /* centerX */
            fload 4 /* yPosition */
            invokevirtual android.graphics.Canvas.translate:(FF)V
        21: .line 706
            aload 1 /* canvas */
            fconst_0
            fconst_0
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mDotSize:I
            iconst_2
            idiv
            i2f
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentDotSizeFactor:F
            fmul
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mDrawPaint:Landroid/graphics/Paint;
            invokevirtual android.graphics.Canvas.drawCircle:(FFFLandroid/graphics/Paint;)V
        22: .line 707
            aload 1 /* canvas */
            invokevirtual android.graphics.Canvas.restore:()V
        end local 9 // float centerX
        23: .line 709
      StackMap locals:
      StackMap stack:
            fload 8 /* charWidth */
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            getfield com.android.keyguard.PasswordTextView.mCharPadding:I
            i2f
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentWidthFactor:F
            fmul
            fadd
            freturn
        end local 8 // float charWidth
        end local 7 // boolean dotVisible
        end local 6 // boolean textVisible
        end local 5 // float charLength
        end local 4 // float yPosition
        end local 3 // int charHeight
        end local 2 // float currentDrawPosition
        end local 1 // android.graphics.Canvas canvas
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   24     0                 this  Lcom/android/keyguard/PasswordTextView$CharState;
            0   24     1               canvas  Landroid/graphics/Canvas;
            0   24     2  currentDrawPosition  F
            0   24     3           charHeight  I
            0   24     4            yPosition  F
            0   24     5           charLength  F
            3   24     6          textVisible  Z
            6   24     7           dotVisible  Z
            7   24     8            charWidth  F
           11   17     9        currYPosition  F
           13   17    10              centerX  F
           20   23     9              centerX  F
    MethodParameters:
                     Name  Flags
      canvas               
      currentDrawPosition  
      charHeight           
      yPosition            
      charLength           

  public boolean isCharVisibleForA11y();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.android.keyguard.PasswordTextView$CharState this
         0: .line 716
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimator:Landroid/animation/ValueAnimator;
            ifnull 1
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.textAnimationIsGrowing:Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* textIsGrowing */
        start local 1 // boolean textIsGrowing
         3: .line 717
            aload 0 /* this */
            getfield com.android.keyguard.PasswordTextView$CharState.currentTextSizeFactor:F
            fconst_0
            fcmpl
            ifgt 4
            iload 1 /* textIsGrowing */
            ifne 4
            iconst_0
            ireturn
      StackMap locals: int
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // boolean textIsGrowing
        end local 0 // com.android.keyguard.PasswordTextView$CharState this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/android/keyguard/PasswordTextView$CharState;
            3    5     1  textIsGrowing  Z

  static com.android.keyguard.PasswordTextView access$0(com.android.keyguard.PasswordTextView$CharState);
    descriptor: (Lcom/android/keyguard/PasswordTextView$CharState;)Lcom/android/keyguard/PasswordTextView;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 366
            aload 0
            getfield com.android.keyguard.PasswordTextView$CharState.this$0:Lcom/android/keyguard/PasswordTextView;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "PasswordTextView.java"
NestHost: com.android.keyguard.PasswordTextView
InnerClasses:
  public abstract AnimatorListener = android.animation.Animator$AnimatorListener of android.animation.Animator
  public abstract AnimatorUpdateListener = android.animation.ValueAnimator$AnimatorUpdateListener of android.animation.ValueAnimator
  private CharState = com.android.keyguard.PasswordTextView$CharState of com.android.keyguard.PasswordTextView
  com.android.keyguard.PasswordTextView$CharState$1
  com.android.keyguard.PasswordTextView$CharState$10
  com.android.keyguard.PasswordTextView$CharState$2
  com.android.keyguard.PasswordTextView$CharState$3
  com.android.keyguard.PasswordTextView$CharState$4
  com.android.keyguard.PasswordTextView$CharState$5
  com.android.keyguard.PasswordTextView$CharState$6
  com.android.keyguard.PasswordTextView$CharState$7
  com.android.keyguard.PasswordTextView$CharState$8
  com.android.keyguard.PasswordTextView$CharState$9