public class android.hardware.biometrics.BiometricPrompt implements android.hardware.biometrics.BiometricAuthenticator, android.hardware.biometrics.BiometricConstants
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.hardware.biometrics.BiometricPrompt
  super_class: java.lang.Object
{
  public static final java.lang.String KEY_TITLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "title"

  public static final java.lang.String KEY_SUBTITLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "subtitle"

  public static final java.lang.String KEY_DESCRIPTION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "description"

  public static final java.lang.String KEY_POSITIVE_TEXT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "positive_text"

  public static final java.lang.String KEY_NEGATIVE_TEXT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "negative_text"

  public static final int HIDE_DIALOG_DELAY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2000

  public static final int DISMISSED_REASON_POSITIVE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int DISMISSED_REASON_NEGATIVE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int DISMISSED_REASON_USER_CANCEL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private android.content.pm.PackageManager mPackageManager;
    descriptor: Landroid/content/pm/PackageManager;
    flags: (0x0002) ACC_PRIVATE

  private android.hardware.fingerprint.FingerprintManager mFingerprintManager;
    descriptor: Landroid/hardware/fingerprint/FingerprintManager;
    flags: (0x0002) ACC_PRIVATE

  private android.os.Bundle mBundle;
    descriptor: Landroid/os/Bundle;
    flags: (0x0002) ACC_PRIVATE

  private android.hardware.biometrics.BiometricPrompt$ButtonInfo mPositiveButtonInfo;
    descriptor: Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
    flags: (0x0002) ACC_PRIVATE

  private android.hardware.biometrics.BiometricPrompt$ButtonInfo mNegativeButtonInfo;
    descriptor: Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
    flags: (0x0002) ACC_PRIVATE

  android.hardware.biometrics.IBiometricPromptReceiver mDialogReceiver;
    descriptor: Landroid/hardware/biometrics/IBiometricPromptReceiver;
    flags: (0x0000) 

  private void <init>(android.content.Context, android.os.Bundle, android.hardware.biometrics.BiometricPrompt$ButtonInfo, android.hardware.biometrics.BiometricPrompt$ButtonInfo);
    descriptor: (Landroid/content/Context;Landroid/os/Bundle;Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // android.hardware.biometrics.BiometricPrompt this
        start local 1 // android.content.Context context
        start local 2 // android.os.Bundle bundle
        start local 3 // android.hardware.biometrics.BiometricPrompt$ButtonInfo positiveButtonInfo
        start local 4 // android.hardware.biometrics.BiometricPrompt$ButtonInfo negativeButtonInfo
         0: .line 232
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 216
            aload 0 /* this */
            new android.hardware.biometrics.BiometricPrompt$1
            dup
            aload 0 /* this */
            invokespecial android.hardware.biometrics.BiometricPrompt$1.<init>:(Landroid/hardware/biometrics/BiometricPrompt;)V
            putfield android.hardware.biometrics.BiometricPrompt.mDialogReceiver:Landroid/hardware/biometrics/IBiometricPromptReceiver;
         2: .line 234
            aload 0 /* this */
            aload 2 /* bundle */
            putfield android.hardware.biometrics.BiometricPrompt.mBundle:Landroid/os/Bundle;
         3: .line 235
            aload 0 /* this */
            aload 3 /* positiveButtonInfo */
            putfield android.hardware.biometrics.BiometricPrompt.mPositiveButtonInfo:Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
         4: .line 236
            aload 0 /* this */
            aload 4 /* negativeButtonInfo */
            putfield android.hardware.biometrics.BiometricPrompt.mNegativeButtonInfo:Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
         5: .line 237
            aload 0 /* this */
            aload 1 /* context */
            ldc Landroid/hardware/fingerprint/FingerprintManager;
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast android.hardware.fingerprint.FingerprintManager
            putfield android.hardware.biometrics.BiometricPrompt.mFingerprintManager:Landroid/hardware/fingerprint/FingerprintManager;
         6: .line 238
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
            putfield android.hardware.biometrics.BiometricPrompt.mPackageManager:Landroid/content/pm/PackageManager;
         7: .line 239
            return
        end local 4 // android.hardware.biometrics.BiometricPrompt$ButtonInfo negativeButtonInfo
        end local 3 // android.hardware.biometrics.BiometricPrompt$ButtonInfo positiveButtonInfo
        end local 2 // android.os.Bundle bundle
        end local 1 // android.content.Context context
        end local 0 // android.hardware.biometrics.BiometricPrompt this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Landroid/hardware/biometrics/BiometricPrompt;
            0    8     1             context  Landroid/content/Context;
            0    8     2              bundle  Landroid/os/Bundle;
            0    8     3  positiveButtonInfo  Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
            0    8     4  negativeButtonInfo  Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
    MethodParameters:
                    Name  Flags
      context             
      bundle              
      positiveButtonInfo  
      negativeButtonInfo  

  public void authenticate(android.hardware.biometrics.CryptoObject, android.os.CancellationSignal, java.util.concurrent.Executor, android.hardware.biometrics.BiometricAuthenticator$AuthenticationCallback);
    descriptor: (Landroid/hardware/biometrics/CryptoObject;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // android.hardware.biometrics.BiometricPrompt this
        start local 1 // android.hardware.biometrics.CryptoObject crypto
        start local 2 // android.os.CancellationSignal cancel
        start local 3 // java.util.concurrent.Executor executor
        start local 4 // android.hardware.biometrics.BiometricAuthenticator$AuthenticationCallback callback
         0: .line 381
            aload 4 /* callback */
            instanceof android.hardware.biometrics.BiometricPrompt$AuthenticationCallback
            ifne 2
         1: .line 382
            new java.lang.IllegalArgumentException
            dup
            ldc "Callback cannot be casted"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* crypto */
            aload 2 /* cancel */
            aload 3 /* executor */
            aload 4 /* callback */
            checkcast android.hardware.biometrics.BiometricPrompt$AuthenticationCallback
            invokevirtual android.hardware.biometrics.BiometricPrompt.authenticate:(Landroid/hardware/biometrics/CryptoObject;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
         3: .line 385
            return
        end local 4 // android.hardware.biometrics.BiometricAuthenticator$AuthenticationCallback callback
        end local 3 // java.util.concurrent.Executor executor
        end local 2 // android.os.CancellationSignal cancel
        end local 1 // android.hardware.biometrics.CryptoObject crypto
        end local 0 // android.hardware.biometrics.BiometricPrompt this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/hardware/biometrics/BiometricPrompt;
            0    4     1    crypto  Landroid/hardware/biometrics/CryptoObject;
            0    4     2    cancel  Landroid/os/CancellationSignal;
            0    4     3  executor  Ljava/util/concurrent/Executor;
            0    4     4  callback  Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;
    MethodParameters:
          Name  Flags
      crypto    
      cancel    
      executor  
      callback  

  public void authenticate(android.os.CancellationSignal, java.util.concurrent.Executor, android.hardware.biometrics.BiometricAuthenticator$AuthenticationCallback);
    descriptor: (Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.hardware.biometrics.BiometricPrompt this
        start local 1 // android.os.CancellationSignal cancel
        start local 2 // java.util.concurrent.Executor executor
        start local 3 // android.hardware.biometrics.BiometricAuthenticator$AuthenticationCallback callback
         0: .line 398
            aload 3 /* callback */
            instanceof android.hardware.biometrics.BiometricPrompt$AuthenticationCallback
            ifne 2
         1: .line 399
            new java.lang.IllegalArgumentException
            dup
            ldc "Callback cannot be casted"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cancel */
            aload 2 /* executor */
            aload 3 /* callback */
            checkcast android.hardware.biometrics.BiometricPrompt$AuthenticationCallback
            invokevirtual android.hardware.biometrics.BiometricPrompt.authenticate:(Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;)V
         3: .line 402
            return
        end local 3 // android.hardware.biometrics.BiometricAuthenticator$AuthenticationCallback callback
        end local 2 // java.util.concurrent.Executor executor
        end local 1 // android.os.CancellationSignal cancel
        end local 0 // android.hardware.biometrics.BiometricPrompt this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/hardware/biometrics/BiometricPrompt;
            0    4     1    cancel  Landroid/os/CancellationSignal;
            0    4     2  executor  Ljava/util/concurrent/Executor;
            0    4     3  callback  Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;
    MethodParameters:
          Name  Flags
      cancel    
      executor  
      callback  

  public void authenticate(android.hardware.biometrics.BiometricPrompt$CryptoObject, android.os.CancellationSignal, java.util.concurrent.Executor, android.hardware.biometrics.BiometricPrompt$AuthenticationCallback);
    descriptor: (Landroid/hardware/biometrics/BiometricPrompt$CryptoObject;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // android.hardware.biometrics.BiometricPrompt this
         0: .line 427
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tUSE_BIOMETRIC cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.hardware.biometrics.BiometricPrompt this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/hardware/biometrics/BiometricPrompt;
    MethodParameters:
          Name  Flags
      crypto    
      cancel    
      executor  
      callback  

  public void authenticate(android.os.CancellationSignal, java.util.concurrent.Executor, android.hardware.biometrics.BiometricPrompt$AuthenticationCallback);
    descriptor: (Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.hardware.biometrics.BiometricPrompt this
         0: .line 460
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tUSE_BIOMETRIC cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.hardware.biometrics.BiometricPrompt this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/hardware/biometrics/BiometricPrompt;
    MethodParameters:
          Name  Flags
      cancel    
      executor  
      callback  

  private boolean handlePreAuthenticationErrors(android.hardware.biometrics.BiometricPrompt$AuthenticationCallback, java.util.concurrent.Executor);
    descriptor: (Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;Ljava/util/concurrent/Executor;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.hardware.biometrics.BiometricPrompt this
        start local 1 // android.hardware.biometrics.BiometricPrompt$AuthenticationCallback callback
        start local 2 // java.util.concurrent.Executor executor
         0: .line 472
            aload 0 /* this */
            getfield android.hardware.biometrics.BiometricPrompt.mPackageManager:Landroid/content/pm/PackageManager;
            ldc "android.hardware.fingerprint"
            invokevirtual android.content.pm.PackageManager.hasSystemFeature:(Ljava/lang/String;)Z
            ifne 5
         1: .line 473
            aload 0 /* this */
            bipush 12
            aload 1 /* callback */
         2: .line 474
            aload 2 /* executor */
         3: .line 473
            invokevirtual android.hardware.biometrics.BiometricPrompt.sendError:(ILandroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;Ljava/util/concurrent/Executor;)V
         4: .line 475
            iconst_1
            ireturn
         5: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.biometrics.BiometricPrompt.mFingerprintManager:Landroid/hardware/fingerprint/FingerprintManager;
            invokevirtual android.hardware.fingerprint.FingerprintManager.isHardwareDetected:()Z
            ifne 10
         6: .line 477
            aload 0 /* this */
            iconst_1
            aload 1 /* callback */
         7: .line 478
            aload 2 /* executor */
         8: .line 477
            invokevirtual android.hardware.biometrics.BiometricPrompt.sendError:(ILandroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;Ljava/util/concurrent/Executor;)V
         9: .line 479
            iconst_1
            ireturn
        10: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.biometrics.BiometricPrompt.mFingerprintManager:Landroid/hardware/fingerprint/FingerprintManager;
            invokevirtual android.hardware.fingerprint.FingerprintManager.hasEnrolledFingerprints:()Z
            ifne 15
        11: .line 481
            aload 0 /* this */
            bipush 11
            aload 1 /* callback */
        12: .line 482
            aload 2 /* executor */
        13: .line 481
            invokevirtual android.hardware.biometrics.BiometricPrompt.sendError:(ILandroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;Ljava/util/concurrent/Executor;)V
        14: .line 483
            iconst_1
            ireturn
        15: .line 485
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.util.concurrent.Executor executor
        end local 1 // android.hardware.biometrics.BiometricPrompt$AuthenticationCallback callback
        end local 0 // android.hardware.biometrics.BiometricPrompt this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Landroid/hardware/biometrics/BiometricPrompt;
            0   16     1  callback  Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;
            0   16     2  executor  Ljava/util/concurrent/Executor;
    MethodParameters:
          Name  Flags
      callback  
      executor  

  private void sendError(int, android.hardware.biometrics.BiometricPrompt$AuthenticationCallback, java.util.concurrent.Executor);
    descriptor: (ILandroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;Ljava/util/concurrent/Executor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.hardware.biometrics.BiometricPrompt this
        start local 1 // int error
        start local 2 // android.hardware.biometrics.BiometricPrompt$AuthenticationCallback callback
        start local 3 // java.util.concurrent.Executor executor
         0: .line 489
            aload 3 /* executor */
            aload 0 /* this */
            aload 2 /* callback */
            iload 1 /* error */
            invokedynamic run(Landroid/hardware/biometrics/BiometricPrompt;Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;I)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  android/hardware/biometrics/BiometricPrompt.lambda$0(Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;I)V (7)
                  ()V
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
         1: .line 493
            return
        end local 3 // java.util.concurrent.Executor executor
        end local 2 // android.hardware.biometrics.BiometricPrompt$AuthenticationCallback callback
        end local 1 // int error
        end local 0 // android.hardware.biometrics.BiometricPrompt this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/hardware/biometrics/BiometricPrompt;
            0    2     1     error  I
            0    2     2  callback  Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;
            0    2     3  executor  Ljava/util/concurrent/Executor;
    MethodParameters:
          Name  Flags
      error     
      callback  
      executor  

  private void lambda$0(android.hardware.biometrics.BiometricPrompt$AuthenticationCallback, int);
    descriptor: (Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;I)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.hardware.biometrics.BiometricPrompt this
         0: .line 490
            aload 1
            iload 2
            aload 0 /* this */
            getfield android.hardware.biometrics.BiometricPrompt.mFingerprintManager:Landroid/hardware/fingerprint/FingerprintManager;
         1: .line 491
            iload 2
            iconst_0
         2: .line 490
            invokevirtual android.hardware.fingerprint.FingerprintManager.getErrorString:(II)Ljava/lang/String;
            invokevirtual android.hardware.biometrics.BiometricPrompt$AuthenticationCallback.onAuthenticationError:(ILjava/lang/CharSequence;)V
         3: .line 492
            return
        end local 0 // android.hardware.biometrics.BiometricPrompt this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/hardware/biometrics/BiometricPrompt;
}
SourceFile: "BiometricPrompt.java"
NestMembers:
  android.hardware.biometrics.BiometricPrompt$1  android.hardware.biometrics.BiometricPrompt$AuthenticationCallback  android.hardware.biometrics.BiometricPrompt$AuthenticationResult  android.hardware.biometrics.BiometricPrompt$Builder  android.hardware.biometrics.BiometricPrompt$ButtonInfo  android.hardware.biometrics.BiometricPrompt$CryptoObject
InnerClasses:
  public abstract AuthenticationCallback = android.hardware.biometrics.BiometricAuthenticator$AuthenticationCallback of android.hardware.biometrics.BiometricAuthenticator
  android.hardware.biometrics.BiometricPrompt$1
  public abstract AuthenticationCallback = android.hardware.biometrics.BiometricPrompt$AuthenticationCallback of android.hardware.biometrics.BiometricPrompt
  public AuthenticationResult = android.hardware.biometrics.BiometricPrompt$AuthenticationResult of android.hardware.biometrics.BiometricPrompt
  public Builder = android.hardware.biometrics.BiometricPrompt$Builder of android.hardware.biometrics.BiometricPrompt
  private ButtonInfo = android.hardware.biometrics.BiometricPrompt$ButtonInfo of android.hardware.biometrics.BiometricPrompt
  public final CryptoObject = android.hardware.biometrics.BiometricPrompt$CryptoObject of android.hardware.biometrics.BiometricPrompt
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles