class com.android.keyguard.KeyguardPatternView$UnlockPatternListener implements com.android.internal.widget.LockPatternView$OnPatternListener
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.android.keyguard.KeyguardPatternView$UnlockPatternListener
  super_class: java.lang.Object
{
  final com.android.keyguard.KeyguardPatternView this$0;
    descriptor: Lcom/android/keyguard/KeyguardPatternView;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(com.android.keyguard.KeyguardPatternView);
    descriptor: (Lcom/android/keyguard/KeyguardPatternView;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
         0: .line 227
            aload 0 /* this */
            aload 1
            putfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardPatternView$UnlockPatternListener;
    MethodParameters:
        Name  Flags
      this$0  final

  public void onPatternStart();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
         0: .line 231
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mLockPatternView:Lcom/android/internal/widget/LockPatternView;
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mCancelPatternRunnable:Ljava/lang/Runnable;
            invokevirtual com.android.internal.widget.LockPatternView.removeCallbacks:(Ljava/lang/Runnable;)Z
            pop
         1: .line 232
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mSecurityMessageDisplay:Lcom/android/keyguard/KeyguardMessageArea;
            ldc ""
            invokevirtual com.android.keyguard.KeyguardMessageArea.setMessage:(Ljava/lang/CharSequence;)V
         2: .line 233
            return
        end local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/android/keyguard/KeyguardPatternView$UnlockPatternListener;

  public void onPatternCleared();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
         0: .line 237
            return
        end local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardPatternView$UnlockPatternListener;

  public void onPatternCellAdded(java.util.List<com.android.internal.widget.LockPatternView$Cell>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
        start local 1 // java.util.List pattern
         0: .line 241
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mCallback:Lcom/android/keyguard/KeyguardSecurityCallback;
            invokeinterface com.android.keyguard.KeyguardSecurityCallback.userActivity:()V
         1: .line 242
            return
        end local 1 // java.util.List pattern
        end local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/android/keyguard/KeyguardPatternView$UnlockPatternListener;
            0    2     1  pattern  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
    Signature: (Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;)V
    MethodParameters:
         Name  Flags
      pattern  

  public void onPatternDetected(java.util.List<com.android.internal.widget.LockPatternView$Cell>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
        start local 1 // java.util.List pattern
         0: .line 246
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mLockPatternView:Lcom/android/internal/widget/LockPatternView;
            invokevirtual com.android.internal.widget.LockPatternView.disableInput:()V
         1: .line 247
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mPendingLockCheck:Landroid/os/AsyncTask;
            ifnull 3
         2: .line 248
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mPendingLockCheck:Landroid/os/AsyncTask;
            iconst_0
            invokevirtual android.os.AsyncTask.cancel:(Z)Z
            pop
         3: .line 251
      StackMap locals:
      StackMap stack:
            invokestatic com.android.keyguard.KeyguardUpdateMonitor.getCurrentUser:()I
            istore 2 /* userId */
        start local 2 // int userId
         4: .line 252
            aload 1 /* pattern */
            invokeinterface java.util.List.size:()I
            iconst_4
            if_icmpge 8
         5: .line 253
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mLockPatternView:Lcom/android/internal/widget/LockPatternView;
            invokevirtual com.android.internal.widget.LockPatternView.enableInput:()V
         6: .line 254
            aload 0 /* this */
            iload 2 /* userId */
            iconst_0
            iconst_0
            iconst_0
            invokevirtual com.android.keyguard.KeyguardPatternView$UnlockPatternListener.onPatternChecked:(IZIZ)V
         7: .line 255
            return
         8: .line 258
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            invokestatic com.android.keyguard.KeyguardPatternView.access$1:(Lcom/android/keyguard/KeyguardPatternView;)Landroid/content/Context;
            invokestatic com.android.internal.util.LatencyTracker.isEnabled:(Landroid/content/Context;)Z
            ifeq 11
         9: .line 259
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            invokestatic com.android.keyguard.KeyguardPatternView.access$1:(Lcom/android/keyguard/KeyguardPatternView;)Landroid/content/Context;
            invokestatic com.android.internal.util.LatencyTracker.getInstance:(Landroid/content/Context;)Lcom/android/internal/util/LatencyTracker;
            iconst_3
            invokevirtual com.android.internal.util.LatencyTracker.onActionStart:(I)V
        10: .line 260
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            invokestatic com.android.keyguard.KeyguardPatternView.access$1:(Lcom/android/keyguard/KeyguardPatternView;)Landroid/content/Context;
            invokestatic com.android.internal.util.LatencyTracker.getInstance:(Landroid/content/Context;)Lcom/android/internal/util/LatencyTracker;
            iconst_4
            invokevirtual com.android.internal.util.LatencyTracker.onActionStart:(I)V
        11: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
        12: .line 263
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mLockPatternUtils:Lcom/android/internal/widget/LockPatternUtils;
        13: .line 264
            aload 1 /* pattern */
        14: .line 265
            iload 2 /* userId */
        15: .line 266
            new com.android.keyguard.KeyguardPatternView$UnlockPatternListener$1
            dup
            aload 0 /* this */
            iload 2 /* userId */
            invokespecial com.android.keyguard.KeyguardPatternView$UnlockPatternListener$1.<init>:(Lcom/android/keyguard/KeyguardPatternView$UnlockPatternListener;I)V
        16: .line 262
            invokestatic com.android.internal.widget.LockPatternChecker.checkPattern:(Lcom/android/internal/widget/LockPatternUtils;Ljava/util/List;ILcom/android/internal/widget/LockPatternChecker$OnCheckCallback;)Landroid/os/AsyncTask;
            putfield com.android.keyguard.KeyguardPatternView.mPendingLockCheck:Landroid/os/AsyncTask;
        17: .line 302
            aload 1 /* pattern */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmple 19
        18: .line 303
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            getfield com.android.keyguard.KeyguardPatternView.mCallback:Lcom/android/keyguard/KeyguardSecurityCallback;
            invokeinterface com.android.keyguard.KeyguardSecurityCallback.userActivity:()V
        19: .line 305
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int userId
        end local 1 // java.util.List pattern
        end local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lcom/android/keyguard/KeyguardPatternView$UnlockPatternListener;
            0   20     1  pattern  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
            4   20     2   userId  I
    Signature: (Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;)V
    MethodParameters:
         Name  Flags
      pattern  final

  private void onPatternChecked(int, boolean, int, boolean);
    descriptor: (IZIZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
         0: .line 327
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.keyguard.KeyguardPatternView$UnlockPatternListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardPatternView$UnlockPatternListener;
    MethodParameters:
                Name  Flags
      userId          
      matched         
      timeoutMs       
      isValidPattern  

  static com.android.keyguard.KeyguardPatternView access$0(com.android.keyguard.KeyguardPatternView$UnlockPatternListener);
    descriptor: (Lcom/android/keyguard/KeyguardPatternView$UnlockPatternListener;)Lcom/android/keyguard/KeyguardPatternView;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 227
            aload 0
            getfield com.android.keyguard.KeyguardPatternView$UnlockPatternListener.this$0:Lcom/android/keyguard/KeyguardPatternView;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "KeyguardPatternView.java"
NestHost: com.android.keyguard.KeyguardPatternView
InnerClasses:
  public abstract OnCheckCallback = com.android.internal.widget.LockPatternChecker$OnCheckCallback of com.android.internal.widget.LockPatternChecker
  public final Cell = com.android.internal.widget.LockPatternView$Cell of com.android.internal.widget.LockPatternView
  public abstract OnPatternListener = com.android.internal.widget.LockPatternView$OnPatternListener of com.android.internal.widget.LockPatternView
  private UnlockPatternListener = com.android.keyguard.KeyguardPatternView$UnlockPatternListener of com.android.keyguard.KeyguardPatternView
  com.android.keyguard.KeyguardPatternView$UnlockPatternListener$1