Files
rr3-apk/smali/androidx/biometric/BiometricFragment.smali
Daniel Elliott f3960ee359 Add Discord APKTool decompilation (Smali source for modding)
- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
2026-02-18 16:13:44 -08:00

2127 lines
62 KiB
Smali

.class public Landroidx/biometric/BiometricFragment;
.super Landroidx/fragment/app/Fragment;
.source "SourceFile"
# annotations
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/biometric/BiometricFragment$Api21Impl;,
Landroidx/biometric/BiometricFragment$Api28Impl;,
Landroidx/biometric/BiometricFragment$Api29Impl;,
Landroidx/biometric/BiometricFragment$Api30Impl;,
Landroidx/biometric/BiometricFragment$StopIgnoringCancelRunnable;,
Landroidx/biometric/BiometricFragment$StopDelayingPromptRunnable;,
Landroidx/biometric/BiometricFragment$ShowPromptForAuthenticationRunnable;,
Landroidx/biometric/BiometricFragment$PromptExecutor;
}
.end annotation
# static fields
.field static final CANCELED_FROM_CLIENT:I = 0x3
.field static final CANCELED_FROM_INTERNAL:I = 0x0
.field static final CANCELED_FROM_NEGATIVE_BUTTON:I = 0x2
.field static final CANCELED_FROM_USER:I = 0x1
.field private static final DISMISS_INSTANTLY_DELAY_MS:I = 0x1f4
.field private static final FINGERPRINT_DIALOG_FRAGMENT_TAG:Ljava/lang/String; = "androidx.biometric.FingerprintDialogFragment"
.field private static final HIDE_DIALOG_DELAY_MS:I = 0x7d0
.field private static final REQUEST_CONFIRM_CREDENTIAL:I = 0x1
.field private static final SHOW_PROMPT_DELAY_MS:I = 0x258
.field private static final TAG:Ljava/lang/String; = "BiometricFragment"
# instance fields
.field mHandler:Landroid/os/Handler;
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
.end field
.field mViewModel:Landroidx/biometric/BiometricViewModel;
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.locals 2
.line 56
invoke-direct {p0}, Landroidx/fragment/app/Fragment;-><init>()V
.line 202
new-instance v0, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v0, p0, Landroidx/biometric/BiometricFragment;->mHandler:Landroid/os/Handler;
return-void
.end method
.method private static checkForFingerprintPreAuthenticationErrors(Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;)I
.locals 1
.line 968
invoke-virtual {p0}, Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;->isHardwareDetected()Z
move-result v0
if-nez v0, :cond_0
const/16 p0, 0xc
return p0
.line 970
:cond_0
invoke-virtual {p0}, Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;->hasEnrolledFingerprints()Z
move-result p0
if-nez p0, :cond_1
const/16 p0, 0xb
return p0
:cond_1
const/4 p0, 0x0
return p0
.end method
.method private connectViewModel()V
.locals 2
.line 262
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getActivity()Landroidx/fragment/app/FragmentActivity;
move-result-object v0
if-nez v0, :cond_0
return-void
.line 267
:cond_0
new-instance v0, Landroidx/lifecycle/ViewModelProvider;
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getActivity()Landroidx/fragment/app/FragmentActivity;
move-result-object v1
invoke-direct {v0, v1}, Landroidx/lifecycle/ViewModelProvider;-><init>(Landroidx/lifecycle/ViewModelStoreOwner;)V
const-class v1, Landroidx/biometric/BiometricViewModel;
invoke-virtual {v0, v1}, Landroidx/lifecycle/ViewModelProvider;->get(Ljava/lang/Class;)Landroidx/lifecycle/ViewModel;
move-result-object v0
check-cast v0, Landroidx/biometric/BiometricViewModel;
iput-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 269
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getAuthenticationResult()Landroidx/lifecycle/LiveData;
move-result-object v0
new-instance v1, Landroidx/biometric/BiometricFragment$1;
invoke-direct {v1, p0}, Landroidx/biometric/BiometricFragment$1;-><init>(Landroidx/biometric/BiometricFragment;)V
invoke-virtual {v0, p0, v1}, Landroidx/lifecycle/LiveData;->observe(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Observer;)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 282
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getAuthenticationError()Landroidx/lifecycle/MutableLiveData;
move-result-object v0
new-instance v1, Landroidx/biometric/BiometricFragment$2;
invoke-direct {v1, p0}, Landroidx/biometric/BiometricFragment$2;-><init>(Landroidx/biometric/BiometricFragment;)V
invoke-virtual {v0, p0, v1}, Landroidx/lifecycle/LiveData;->observe(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Observer;)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 296
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getAuthenticationHelpMessage()Landroidx/lifecycle/LiveData;
move-result-object v0
new-instance v1, Landroidx/biometric/BiometricFragment$3;
invoke-direct {v1, p0}, Landroidx/biometric/BiometricFragment$3;-><init>(Landroidx/biometric/BiometricFragment;)V
invoke-virtual {v0, p0, v1}, Landroidx/lifecycle/LiveData;->observe(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Observer;)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 308
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isAuthenticationFailurePending()Landroidx/lifecycle/LiveData;
move-result-object v0
new-instance v1, Landroidx/biometric/BiometricFragment$4;
invoke-direct {v1, p0}, Landroidx/biometric/BiometricFragment$4;-><init>(Landroidx/biometric/BiometricFragment;)V
invoke-virtual {v0, p0, v1}, Landroidx/lifecycle/LiveData;->observe(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Observer;)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 320
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isNegativeButtonPressPending()Landroidx/lifecycle/LiveData;
move-result-object v0
new-instance v1, Landroidx/biometric/BiometricFragment$5;
invoke-direct {v1, p0}, Landroidx/biometric/BiometricFragment$5;-><init>(Landroidx/biometric/BiometricFragment;)V
invoke-virtual {v0, p0, v1}, Landroidx/lifecycle/LiveData;->observe(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Observer;)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 336
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isFingerprintDialogCancelPending()Landroidx/lifecycle/LiveData;
move-result-object v0
new-instance v1, Landroidx/biometric/BiometricFragment$6;
invoke-direct {v1, p0}, Landroidx/biometric/BiometricFragment$6;-><init>(Landroidx/biometric/BiometricFragment;)V
invoke-virtual {v0, p0, v1}, Landroidx/lifecycle/LiveData;->observe(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Observer;)V
return-void
.end method
.method private dismissFingerprintDialog()V
.locals 3
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v1, 0x0
.line 630
invoke-virtual {v0, v1}, Landroidx/biometric/BiometricViewModel;->setPromptShowing(Z)V
.line 631
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->isAdded()Z
move-result v0
if-eqz v0, :cond_1
.line 632
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getParentFragmentManager()Landroidx/fragment/app/FragmentManager;
move-result-object v0
const-string v1, "androidx.biometric.FingerprintDialogFragment"
.line 634
invoke-virtual {v0, v1}, Landroidx/fragment/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroidx/fragment/app/Fragment;
move-result-object v1
check-cast v1, Landroidx/biometric/FingerprintDialogFragment;
if-eqz v1, :cond_1
.line 637
invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->isAdded()Z
move-result v2
if-eqz v2, :cond_0
.line 638
invoke-virtual {v1}, Landroidx/fragment/app/DialogFragment;->dismissAllowingStateLoss()V
goto :goto_0
.line 640
:cond_0
invoke-virtual {v0}, Landroidx/fragment/app/FragmentManager;->beginTransaction()Landroidx/fragment/app/FragmentTransaction;
move-result-object v0
invoke-virtual {v0, v1}, Landroidx/fragment/app/FragmentTransaction;->remove(Landroidx/fragment/app/Fragment;)Landroidx/fragment/app/FragmentTransaction;
move-result-object v0
.line 641
invoke-virtual {v0}, Landroidx/fragment/app/FragmentTransaction;->commitAllowingStateLoss()I
:cond_1
:goto_0
return-void
.end method
.method private getDismissDialogDelay()I
.locals 2
.line 1054
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v0
if-eqz v0, :cond_0
.line 1055
sget-object v1, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-static {v0, v1}, Landroidx/biometric/DeviceUtils;->shouldHideFingerprintDialog(Landroid/content/Context;Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x0
goto :goto_0
:cond_0
const/16 v0, 0x7d0
:goto_0
return v0
.end method
.method private handleConfirmCredentialResult(I)V
.locals 2
const/4 v0, -0x1
if-ne p1, v0, :cond_0
.line 835
new-instance p1, Landroidx/biometric/BiometricPrompt$AuthenticationResult;
const/4 v0, 0x0
const/4 v1, 0x1
invoke-direct {p1, v0, v1}, Landroidx/biometric/BiometricPrompt$AuthenticationResult;-><init>(Landroidx/biometric/BiometricPrompt$CryptoObject;I)V
invoke-direct {p0, p1}, Landroidx/biometric/BiometricFragment;->sendSuccessAndDismiss(Landroidx/biometric/BiometricPrompt$AuthenticationResult;)V
goto :goto_0
:cond_0
sget p1, Landroidx/biometric/R$string;->generic_error_user_canceled:I
.line 843
invoke-virtual {p0, p1}, Landroidx/fragment/app/Fragment;->getString(I)Ljava/lang/String;
move-result-object p1
const/16 v0, 0xa
.line 841
invoke-virtual {p0, v0, p1}, Landroidx/biometric/BiometricFragment;->sendErrorAndDismiss(ILjava/lang/CharSequence;)V
:goto_0
return-void
.end method
.method private isChangingConfigurations()Z
.locals 1
.line 1039
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getActivity()Landroidx/fragment/app/FragmentActivity;
move-result-object v0
if-eqz v0, :cond_0
.line 1040
invoke-virtual {v0}, Landroid/app/Activity;->isChangingConfigurations()Z
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method private isFingerprintDialogNeededForCrypto()Z
.locals 3
.line 1010
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getActivity()Landroidx/fragment/app/FragmentActivity;
move-result-object v0
if-eqz v0, :cond_0
iget-object v1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 1012
invoke-virtual {v1}, Landroidx/biometric/BiometricViewModel;->getCryptoObject()Landroidx/biometric/BiometricPrompt$CryptoObject;
move-result-object v1
if-eqz v1, :cond_0
sget-object v1, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
sget-object v2, Landroid/os/Build;->MODEL:Ljava/lang/String;
.line 1013
invoke-static {v0, v1, v2}, Landroidx/biometric/DeviceUtils;->shouldUseFingerprintForCrypto(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method private isFingerprintDialogNeededForErrorHandling()Z
.locals 2
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1c
if-ne v0, v1, :cond_0
.line 1029
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Landroidx/biometric/PackageUtils;->hasSystemFeatureFingerprint(Landroid/content/Context;)Z
move-result v0
if-nez v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method private isUsingFingerprintDialog()Z
.locals 2
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1c
if-lt v0, v1, :cond_1
.line 997
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->isFingerprintDialogNeededForCrypto()Z
move-result v0
if-nez v0, :cond_1
.line 998
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->isFingerprintDialogNeededForErrorHandling()Z
move-result v0
if-eqz v0, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 v0, 0x1
:goto_1
return v0
.end method
.method private launchConfirmCredentialActivity()V
.locals 4
.annotation build Landroidx/annotation/RequiresApi;
value = 0x15
.end annotation
.line 783
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getActivity()Landroidx/fragment/app/FragmentActivity;
move-result-object v0
if-nez v0, :cond_0
const-string v0, "BiometricFragment"
const-string v1, "Failed to check device credential. Client FragmentActivity not found."
.line 785
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return-void
.line 790
:cond_0
invoke-static {v0}, Landroidx/biometric/KeyguardUtils;->getKeyguardManager(Landroid/content/Context;)Landroid/app/KeyguardManager;
move-result-object v0
if-nez v0, :cond_1
sget v0, Landroidx/biometric/R$string;->generic_error_no_keyguard:I
.line 794
invoke-virtual {p0, v0}, Landroidx/fragment/app/Fragment;->getString(I)Ljava/lang/String;
move-result-object v0
const/16 v1, 0xc
.line 792
invoke-virtual {p0, v1, v0}, Landroidx/biometric/BiometricFragment;->sendErrorAndDismiss(ILjava/lang/CharSequence;)V
return-void
:cond_1
iget-object v1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 799
invoke-virtual {v1}, Landroidx/biometric/BiometricViewModel;->getTitle()Ljava/lang/CharSequence;
move-result-object v1
iget-object v2, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 800
invoke-virtual {v2}, Landroidx/biometric/BiometricViewModel;->getSubtitle()Ljava/lang/CharSequence;
move-result-object v2
iget-object v3, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 801
invoke-virtual {v3}, Landroidx/biometric/BiometricViewModel;->getDescription()Ljava/lang/CharSequence;
move-result-object v3
if-eqz v2, :cond_2
goto :goto_0
:cond_2
move-object v2, v3
.line 804
:goto_0
invoke-static {v0, v1, v2}, Landroidx/biometric/BiometricFragment$Api21Impl;->createConfirmDeviceCredentialIntent(Landroid/app/KeyguardManager;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/content/Intent;
move-result-object v0
if-nez v0, :cond_3
sget v0, Landroidx/biometric/R$string;->generic_error_no_device_credential:I
.line 811
invoke-virtual {p0, v0}, Landroidx/fragment/app/Fragment;->getString(I)Ljava/lang/String;
move-result-object v0
const/16 v1, 0xe
.line 809
invoke-virtual {p0, v1, v0}, Landroidx/biometric/BiometricFragment;->sendErrorAndDismiss(ILjava/lang/CharSequence;)V
return-void
:cond_3
iget-object v1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v2, 0x1
.line 815
invoke-virtual {v1, v2}, Landroidx/biometric/BiometricViewModel;->setConfirmingDeviceCredential(Z)V
.line 818
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->isUsingFingerprintDialog()Z
move-result v1
if-eqz v1, :cond_4
.line 819
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->dismissFingerprintDialog()V
:cond_4
const/high16 v1, 0x8080000
.line 823
invoke-virtual {v0, v1}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
.line 824
invoke-virtual {p0, v0, v2}, Landroidx/fragment/app/Fragment;->startActivityForResult(Landroid/content/Intent;I)V
return-void
.end method
.method public static newInstance()Landroidx/biometric/BiometricFragment;
.locals 1
.line 215
new-instance v0, Landroidx/biometric/BiometricFragment;
invoke-direct {v0}, Landroidx/biometric/BiometricFragment;-><init>()V
return-object v0
.end method
.method private sendErrorToClient(ILjava/lang/CharSequence;)V
.locals 2
.param p2 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 922
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isConfirmingDeviceCredential()Z
move-result v0
if-eqz v0, :cond_0
return-void
:cond_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 927
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isAwaitingResult()Z
move-result v0
if-nez v0, :cond_1
const-string p1, "BiometricFragment"
const-string p2, "Error not sent to client. Client is not awaiting a result."
.line 928
invoke-static {p1, p2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_1
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v1, 0x0
.line 932
invoke-virtual {v0, v1}, Landroidx/biometric/BiometricViewModel;->setAwaitingResult(Z)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 933
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getClientExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
new-instance v1, Landroidx/biometric/BiometricFragment$10;
invoke-direct {v1, p0, p1, p2}, Landroidx/biometric/BiometricFragment$10;-><init>(Landroidx/biometric/BiometricFragment;ILjava/lang/CharSequence;)V
invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
return-void
.end method
.method private sendFailureToClient()V
.locals 2
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 947
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isAwaitingResult()Z
move-result v0
if-nez v0, :cond_0
const-string v0, "BiometricFragment"
const-string v1, "Failure not sent to client. Client is not awaiting a result."
.line 948
invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 952
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getClientExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
new-instance v1, Landroidx/biometric/BiometricFragment$11;
invoke-direct {v1, p0}, Landroidx/biometric/BiometricFragment$11;-><init>(Landroidx/biometric/BiometricFragment;)V
invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
return-void
.end method
.method private sendSuccessAndDismiss(Landroidx/biometric/BiometricPrompt$AuthenticationResult;)V
.locals 0
.param p1 # Landroidx/biometric/BiometricPrompt$AuthenticationResult;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 868
invoke-direct {p0, p1}, Landroidx/biometric/BiometricFragment;->sendSuccessToClient(Landroidx/biometric/BiometricPrompt$AuthenticationResult;)V
.line 869
invoke-virtual {p0}, Landroidx/biometric/BiometricFragment;->dismiss()V
return-void
.end method
.method private sendSuccessToClient(Landroidx/biometric/BiometricPrompt$AuthenticationResult;)V
.locals 2
.param p1 # Landroidx/biometric/BiometricPrompt$AuthenticationResult;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 897
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isAwaitingResult()Z
move-result v0
if-nez v0, :cond_0
const-string p1, "BiometricFragment"
const-string v0, "Success not sent to client. Client is not awaiting a result."
.line 898
invoke-static {p1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v1, 0x0
.line 902
invoke-virtual {v0, v1}, Landroidx/biometric/BiometricViewModel;->setAwaitingResult(Z)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 903
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getClientExecutor()Ljava/util/concurrent/Executor;
move-result-object v0
new-instance v1, Landroidx/biometric/BiometricFragment$9;
invoke-direct {v1, p0, p1}, Landroidx/biometric/BiometricFragment$9;-><init>(Landroidx/biometric/BiometricFragment;Landroidx/biometric/BiometricPrompt$AuthenticationResult;)V
invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
return-void
.end method
.method private showBiometricPromptForAuthentication()V
.locals 5
.annotation build Landroidx/annotation/RequiresApi;
value = 0x1c
.end annotation
.line 473
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->requireContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Landroidx/biometric/BiometricFragment$Api28Impl;->createPromptBuilder(Landroid/content/Context;)Landroid/hardware/biometrics/BiometricPrompt$Builder;
move-result-object v0
iget-object v1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 475
invoke-virtual {v1}, Landroidx/biometric/BiometricViewModel;->getTitle()Ljava/lang/CharSequence;
move-result-object v1
iget-object v2, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 476
invoke-virtual {v2}, Landroidx/biometric/BiometricViewModel;->getSubtitle()Ljava/lang/CharSequence;
move-result-object v2
iget-object v3, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 477
invoke-virtual {v3}, Landroidx/biometric/BiometricViewModel;->getDescription()Ljava/lang/CharSequence;
move-result-object v3
if-eqz v1, :cond_0
.line 479
invoke-static {v0, v1}, Landroidx/biometric/BiometricFragment$Api28Impl;->setTitle(Landroid/hardware/biometrics/BiometricPrompt$Builder;Ljava/lang/CharSequence;)V
:cond_0
if-eqz v2, :cond_1
.line 482
invoke-static {v0, v2}, Landroidx/biometric/BiometricFragment$Api28Impl;->setSubtitle(Landroid/hardware/biometrics/BiometricPrompt$Builder;Ljava/lang/CharSequence;)V
:cond_1
if-eqz v3, :cond_2
.line 485
invoke-static {v0, v3}, Landroidx/biometric/BiometricFragment$Api28Impl;->setDescription(Landroid/hardware/biometrics/BiometricPrompt$Builder;Ljava/lang/CharSequence;)V
:cond_2
iget-object v1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 488
invoke-virtual {v1}, Landroidx/biometric/BiometricViewModel;->getNegativeButtonText()Ljava/lang/CharSequence;
move-result-object v1
.line 489
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_3
iget-object v2, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 493
invoke-virtual {v2}, Landroidx/biometric/BiometricViewModel;->getClientExecutor()Ljava/util/concurrent/Executor;
move-result-object v2
iget-object v3, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 494
invoke-virtual {v3}, Landroidx/biometric/BiometricViewModel;->getNegativeButtonListener()Landroid/content/DialogInterface$OnClickListener;
move-result-object v3
.line 490
invoke-static {v0, v1, v2, v3}, Landroidx/biometric/BiometricFragment$Api28Impl;->setNegativeButton(Landroid/hardware/biometrics/BiometricPrompt$Builder;Ljava/lang/CharSequence;Ljava/util/concurrent/Executor;Landroid/content/DialogInterface$OnClickListener;)V
:cond_3
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x1d
if-lt v1, v2, :cond_4
iget-object v3, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 499
invoke-virtual {v3}, Landroidx/biometric/BiometricViewModel;->isConfirmationRequired()Z
move-result v3
invoke-static {v0, v3}, Landroidx/biometric/BiometricFragment$Api29Impl;->setConfirmationRequired(Landroid/hardware/biometrics/BiometricPrompt$Builder;Z)V
:cond_4
iget-object v3, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 504
invoke-virtual {v3}, Landroidx/biometric/BiometricViewModel;->getAllowedAuthenticators()I
move-result v3
const/16 v4, 0x1e
if-lt v1, v4, :cond_5
.line 506
invoke-static {v0, v3}, Landroidx/biometric/BiometricFragment$Api30Impl;->setAllowedAuthenticators(Landroid/hardware/biometrics/BiometricPrompt$Builder;I)V
goto :goto_0
:cond_5
if-lt v1, v2, :cond_6
.line 509
invoke-static {v3}, Landroidx/biometric/AuthenticatorUtils;->isDeviceCredentialAllowed(I)Z
move-result v1
.line 508
invoke-static {v0, v1}, Landroidx/biometric/BiometricFragment$Api29Impl;->setDeviceCredentialAllowed(Landroid/hardware/biometrics/BiometricPrompt$Builder;Z)V
.line 512
:cond_6
:goto_0
invoke-static {v0}, Landroidx/biometric/BiometricFragment$Api28Impl;->buildPrompt(Landroid/hardware/biometrics/BiometricPrompt$Builder;)Landroid/hardware/biometrics/BiometricPrompt;
move-result-object v0
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v1
invoke-virtual {p0, v0, v1}, Landroidx/biometric/BiometricFragment;->authenticateWithBiometricPrompt(Landroid/hardware/biometrics/BiometricPrompt;Landroid/content/Context;)V
return-void
.end method
.method private showFingerprintDialogForAuthentication()V
.locals 6
.line 434
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->requireContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
.line 436
invoke-static {v0}, Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;->from(Landroid/content/Context;)Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;
move-result-object v1
.line 437
invoke-static {v1}, Landroidx/biometric/BiometricFragment;->checkForFingerprintPreAuthenticationErrors(Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;)I
move-result v2
if-eqz v2, :cond_0
.line 440
invoke-static {v0, v2}, Landroidx/biometric/ErrorUtils;->getFingerprintErrorString(Landroid/content/Context;I)Ljava/lang/String;
move-result-object v0
.line 439
invoke-virtual {p0, v2, v0}, Landroidx/biometric/BiometricFragment;->sendErrorAndDismiss(ILjava/lang/CharSequence;)V
return-void
.line 444
:cond_0
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->isAdded()Z
move-result v2
if-eqz v2, :cond_2
iget-object v2, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v3, 0x1
.line 445
invoke-virtual {v2, v3}, Landroidx/biometric/BiometricViewModel;->setFingerprintDialogDismissedInstantly(Z)V
.line 446
sget-object v2, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-static {v0, v2}, Landroidx/biometric/DeviceUtils;->shouldHideFingerprintDialog(Landroid/content/Context;Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_1
iget-object v2, p0, Landroidx/biometric/BiometricFragment;->mHandler:Landroid/os/Handler;
.line 447
new-instance v3, Landroidx/biometric/BiometricFragment$7;
invoke-direct {v3, p0}, Landroidx/biometric/BiometricFragment$7;-><init>(Landroidx/biometric/BiometricFragment;)V
const-wide/16 v4, 0x1f4
invoke-virtual {v2, v3, v4, v5}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
.line 456
invoke-static {}, Landroidx/biometric/FingerprintDialogFragment;->newInstance()Landroidx/biometric/FingerprintDialogFragment;
move-result-object v2
.line 457
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getParentFragmentManager()Landroidx/fragment/app/FragmentManager;
move-result-object v3
const-string v4, "androidx.biometric.FingerprintDialogFragment"
invoke-virtual {v2, v3, v4}, Landroidx/fragment/app/DialogFragment;->show(Landroidx/fragment/app/FragmentManager;Ljava/lang/String;)V
:cond_1
iget-object v2, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v3, 0x0
.line 460
invoke-virtual {v2, v3}, Landroidx/biometric/BiometricViewModel;->setCanceledFrom(I)V
.line 462
invoke-virtual {p0, v1, v0}, Landroidx/biometric/BiometricFragment;->authenticateWithFingerprint(Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;Landroid/content/Context;)V
:cond_2
return-void
.end method
.method private showFingerprintErrorMessage(Ljava/lang/CharSequence;)V
.locals 2
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
if-eqz p1, :cond_0
goto :goto_0
:cond_0
sget p1, Landroidx/biometric/R$string;->default_error_msg:I
.line 855
invoke-virtual {p0, p1}, Landroidx/fragment/app/Fragment;->getString(I)Ljava/lang/String;
move-result-object p1
:goto_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v1, 0x2
.line 856
invoke-virtual {v0, v1}, Landroidx/biometric/BiometricViewModel;->setFingerprintDialogState(I)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 857
invoke-virtual {v0, p1}, Landroidx/biometric/BiometricViewModel;->setFingerprintDialogHelpMessage(Ljava/lang/CharSequence;)V
return-void
.end method
# virtual methods
.method public authenticate(Landroidx/biometric/BiometricPrompt$PromptInfo;Landroidx/biometric/BiometricPrompt$CryptoObject;)V
.locals 3
.param p1 # Landroidx/biometric/BiometricPrompt$PromptInfo;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroidx/biometric/BiometricPrompt$CryptoObject;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 360
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getActivity()Landroidx/fragment/app/FragmentActivity;
move-result-object v0
if-nez v0, :cond_0
const-string p1, "BiometricFragment"
const-string p2, "Not launching prompt. Client activity was null."
.line 362
invoke-static {p1, p2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_0
iget-object v1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 366
invoke-virtual {v1, p1}, Landroidx/biometric/BiometricViewModel;->setPromptInfo(Landroidx/biometric/BiometricPrompt$PromptInfo;)V
.line 370
invoke-static {p1, p2}, Landroidx/biometric/AuthenticatorUtils;->getConsolidatedAuthenticators(Landroidx/biometric/BiometricPrompt$PromptInfo;Landroidx/biometric/BiometricPrompt$CryptoObject;)I
move-result p1
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x1e
if-ge v1, v2, :cond_1
const/16 v1, 0xf
if-ne p1, v1, :cond_1
if-nez p2, :cond_1
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 375
invoke-static {}, Landroidx/biometric/CryptoObjectUtils;->createFakeCryptoObject()Landroidx/biometric/BiometricPrompt$CryptoObject;
move-result-object p2
invoke-virtual {p1, p2}, Landroidx/biometric/BiometricViewModel;->setCryptoObject(Landroidx/biometric/BiometricPrompt$CryptoObject;)V
goto :goto_0
:cond_1
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 377
invoke-virtual {p1, p2}, Landroidx/biometric/BiometricViewModel;->setCryptoObject(Landroidx/biometric/BiometricPrompt$CryptoObject;)V
.line 380
:goto_0
invoke-virtual {p0}, Landroidx/biometric/BiometricFragment;->isManagingDeviceCredentialButton()Z
move-result p1
if-eqz p1, :cond_2
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
sget p2, Landroidx/biometric/R$string;->confirm_device_credential_password:I
.line 382
invoke-virtual {p0, p2}, Landroidx/fragment/app/Fragment;->getString(I)Ljava/lang/String;
move-result-object p2
.line 381
invoke-virtual {p1, p2}, Landroidx/biometric/BiometricViewModel;->setNegativeButtonTextOverride(Ljava/lang/CharSequence;)V
goto :goto_1
:cond_2
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 p2, 0x0
.line 385
invoke-virtual {p1, p2}, Landroidx/biometric/BiometricViewModel;->setNegativeButtonTextOverride(Ljava/lang/CharSequence;)V
.line 390
:goto_1
invoke-virtual {p0}, Landroidx/biometric/BiometricFragment;->isManagingDeviceCredentialButton()Z
move-result p1
if-eqz p1, :cond_3
.line 391
invoke-static {v0}, Landroidx/biometric/BiometricManager;->from(Landroid/content/Context;)Landroidx/biometric/BiometricManager;
move-result-object p1
const/16 p2, 0xff
invoke-virtual {p1, p2}, Landroidx/biometric/BiometricManager;->canAuthenticate(I)I
move-result p1
if-eqz p1, :cond_3
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 p2, 0x1
.line 393
invoke-virtual {p1, p2}, Landroidx/biometric/BiometricViewModel;->setAwaitingResult(Z)V
.line 394
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->launchConfirmCredentialActivity()V
return-void
:cond_3
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 399
invoke-virtual {p1}, Landroidx/biometric/BiometricViewModel;->isDelayingPrompt()Z
move-result p1
if-eqz p1, :cond_4
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mHandler:Landroid/os/Handler;
.line 400
new-instance p2, Landroidx/biometric/BiometricFragment$ShowPromptForAuthenticationRunnable;
invoke-direct {p2, p0}, Landroidx/biometric/BiometricFragment$ShowPromptForAuthenticationRunnable;-><init>(Landroidx/biometric/BiometricFragment;)V
const-wide/16 v0, 0x258
invoke-virtual {p1, p2, v0, v1}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
goto :goto_2
.line 403
:cond_4
invoke-virtual {p0}, Landroidx/biometric/BiometricFragment;->showPromptForAuthentication()V
:goto_2
return-void
.end method
.method public authenticateWithBiometricPrompt(Landroid/hardware/biometrics/BiometricPrompt;Landroid/content/Context;)V
.locals 4
.param p1 # Landroid/hardware/biometrics/BiometricPrompt;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/content/Context;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/RequiresApi;
value = 0x1c
.end annotation
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 560
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getCryptoObject()Landroidx/biometric/BiometricPrompt$CryptoObject;
move-result-object v0
invoke-static {v0}, Landroidx/biometric/CryptoObjectUtils;->wrapForBiometricPrompt(Landroidx/biometric/BiometricPrompt$CryptoObject;)Landroid/hardware/biometrics/BiometricPrompt$CryptoObject;
move-result-object v0
iget-object v1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 562
invoke-virtual {v1}, Landroidx/biometric/BiometricViewModel;->getCancellationSignalProvider()Landroidx/biometric/CancellationSignalProvider;
move-result-object v1
invoke-virtual {v1}, Landroidx/biometric/CancellationSignalProvider;->getBiometricCancellationSignal()Landroid/os/CancellationSignal;
move-result-object v1
.line 563
new-instance v2, Landroidx/biometric/BiometricFragment$PromptExecutor;
invoke-direct {v2}, Landroidx/biometric/BiometricFragment$PromptExecutor;-><init>()V
iget-object v3, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 565
invoke-virtual {v3}, Landroidx/biometric/BiometricViewModel;->getAuthenticationCallbackProvider()Landroidx/biometric/AuthenticationCallbackProvider;
move-result-object v3
invoke-virtual {v3}, Landroidx/biometric/AuthenticationCallbackProvider;->getBiometricCallback()Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;
move-result-object v3
if-nez v0, :cond_0
.line 569
:try_start_0
invoke-static {p1, v1, v2, v3}, Landroidx/biometric/BiometricFragment$Api28Impl;->authenticate(Landroid/hardware/biometrics/BiometricPrompt;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;)V
goto :goto_2
:catch_0
move-exception p1
goto :goto_0
.line 571
:cond_0
invoke-static {p1, v0, v1, v2, v3}, Landroidx/biometric/BiometricFragment$Api28Impl;->authenticate(Landroid/hardware/biometrics/BiometricPrompt;Landroid/hardware/biometrics/BiometricPrompt$CryptoObject;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;)V
:try_end_0
.catch Ljava/lang/NullPointerException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_2
:goto_0
const-string v0, "BiometricFragment"
const-string v1, "Got NPE while authenticating with biometric prompt."
.line 576
invoke-static {v0, v1, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
if-eqz p2, :cond_1
sget p1, Landroidx/biometric/R$string;->default_error_msg:I
.line 579
invoke-virtual {p2, p1}, Landroid/content/Context;->getString(I)Ljava/lang/String;
move-result-object p1
goto :goto_1
:cond_1
const-string p1, ""
:goto_1
const/4 p2, 0x1
.line 581
invoke-virtual {p0, p2, p1}, Landroidx/biometric/BiometricFragment;->sendErrorAndDismiss(ILjava/lang/CharSequence;)V
:goto_2
return-void
.end method
.method public authenticateWithFingerprint(Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;Landroid/content/Context;)V
.locals 7
.param p1 # Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/content/Context;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 528
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getCryptoObject()Landroidx/biometric/BiometricPrompt$CryptoObject;
move-result-object v0
invoke-static {v0}, Landroidx/biometric/CryptoObjectUtils;->wrapForFingerprintManager(Landroidx/biometric/BiometricPrompt$CryptoObject;)Landroidx/core/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;
move-result-object v2
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 530
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getCancellationSignalProvider()Landroidx/biometric/CancellationSignalProvider;
move-result-object v0
invoke-virtual {v0}, Landroidx/biometric/CancellationSignalProvider;->getFingerprintCancellationSignal()Landroidx/core/os/CancellationSignal;
move-result-object v4
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 532
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getAuthenticationCallbackProvider()Landroidx/biometric/AuthenticationCallbackProvider;
move-result-object v0
.line 533
invoke-virtual {v0}, Landroidx/biometric/AuthenticationCallbackProvider;->getFingerprintCallback()Landroidx/core/hardware/fingerprint/FingerprintManagerCompat$AuthenticationCallback;
move-result-object v5
const/4 v3, 0x0
const/4 v6, 0x0
move-object v1, p1
.line 536
:try_start_0
invoke-virtual/range {v1 .. v6}, Landroidx/core/hardware/fingerprint/FingerprintManagerCompat;->authenticate(Landroidx/core/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;ILandroidx/core/os/CancellationSignal;Landroidx/core/hardware/fingerprint/FingerprintManagerCompat$AuthenticationCallback;Landroid/os/Handler;)V
:try_end_0
.catch Ljava/lang/NullPointerException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
move-exception p1
const-string v0, "BiometricFragment"
const-string v1, "Got NPE while authenticating with fingerprint."
.line 540
invoke-static {v0, v1, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
const/4 p1, 0x1
.line 543
invoke-static {p2, p1}, Landroidx/biometric/ErrorUtils;->getFingerprintErrorString(Landroid/content/Context;I)Ljava/lang/String;
move-result-object p2
.line 542
invoke-virtual {p0, p1, p2}, Landroidx/biometric/BiometricFragment;->sendErrorAndDismiss(ILjava/lang/CharSequence;)V
:goto_0
return-void
.end method
.method public cancelAuthentication(I)V
.locals 1
const/4 v0, 0x3
if-eq p1, v0, :cond_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 591
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isIgnoringCancel()Z
move-result v0
if-eqz v0, :cond_0
return-void
.line 595
:cond_0
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->isUsingFingerprintDialog()Z
move-result v0
if-eqz v0, :cond_1
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 596
invoke-virtual {v0, p1}, Landroidx/biometric/BiometricViewModel;->setCanceledFrom(I)V
const/4 v0, 0x1
if-ne p1, v0, :cond_1
.line 600
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object p1
const/16 v0, 0xa
invoke-static {p1, v0}, Landroidx/biometric/ErrorUtils;->getFingerprintErrorString(Landroid/content/Context;I)Ljava/lang/String;
move-result-object p1
.line 599
invoke-direct {p0, v0, p1}, Landroidx/biometric/BiometricFragment;->sendErrorToClient(ILjava/lang/CharSequence;)V
:cond_1
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 604
invoke-virtual {p1}, Landroidx/biometric/BiometricViewModel;->getCancellationSignalProvider()Landroidx/biometric/CancellationSignalProvider;
move-result-object p1
invoke-virtual {p1}, Landroidx/biometric/CancellationSignalProvider;->cancel()V
return-void
.end method
.method public dismiss()V
.locals 4
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v1, 0x0
.line 612
invoke-virtual {v0, v1}, Landroidx/biometric/BiometricViewModel;->setPromptShowing(Z)V
.line 613
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->dismissFingerprintDialog()V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 614
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isConfirmingDeviceCredential()Z
move-result v0
if-nez v0, :cond_0
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->isAdded()Z
move-result v0
if-eqz v0, :cond_0
.line 615
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getParentFragmentManager()Landroidx/fragment/app/FragmentManager;
move-result-object v0
invoke-virtual {v0}, Landroidx/fragment/app/FragmentManager;->beginTransaction()Landroidx/fragment/app/FragmentTransaction;
move-result-object v0
invoke-virtual {v0, p0}, Landroidx/fragment/app/FragmentTransaction;->remove(Landroidx/fragment/app/Fragment;)Landroidx/fragment/app/FragmentTransaction;
move-result-object v0
invoke-virtual {v0}, Landroidx/fragment/app/FragmentTransaction;->commitAllowingStateLoss()I
.line 619
:cond_0
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v0
if-eqz v0, :cond_1
.line 620
sget-object v1, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-static {v0, v1}, Landroidx/biometric/DeviceUtils;->shouldDelayShowingPrompt(Landroid/content/Context;Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_1
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v1, 0x1
.line 621
invoke-virtual {v0, v1}, Landroidx/biometric/BiometricViewModel;->setDelayingPrompt(Z)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mHandler:Landroid/os/Handler;
.line 622
new-instance v1, Landroidx/biometric/BiometricFragment$StopDelayingPromptRunnable;
iget-object v2, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
invoke-direct {v1, v2}, Landroidx/biometric/BiometricFragment$StopDelayingPromptRunnable;-><init>(Landroidx/biometric/BiometricViewModel;)V
const-wide/16 v2, 0x258
invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
:cond_1
return-void
.end method
.method public isManagingDeviceCredentialButton()Z
.locals 2
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1c
if-gt v0, v1, :cond_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 986
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getAllowedAuthenticators()I
move-result v0
.line 985
invoke-static {v0}, Landroidx/biometric/AuthenticatorUtils;->isDeviceCredentialAllowed(I)Z
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public onActivityResult(IILandroid/content/Intent;)V
.locals 0
.param p3 # Landroid/content/Intent;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 250
invoke-super {p0, p1, p2, p3}, Landroidx/fragment/app/Fragment;->onActivityResult(IILandroid/content/Intent;)V
const/4 p3, 0x1
if-ne p1, p3, :cond_0
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 p3, 0x0
.line 252
invoke-virtual {p1, p3}, Landroidx/biometric/BiometricViewModel;->setConfirmingDeviceCredential(Z)V
.line 253
invoke-direct {p0, p2}, Landroidx/biometric/BiometricFragment;->handleConfirmCredentialResult(I)V
:cond_0
return-void
.end method
.method public onAuthenticationError(ILjava/lang/CharSequence;)V
.locals 3
.param p2 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
.line 668
invoke-static {p1}, Landroidx/biometric/ErrorUtils;->isKnownError(I)Z
move-result v0
if-eqz v0, :cond_0
goto :goto_0
:cond_0
const/16 p1, 0x8
.line 672
:goto_0
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v0
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x1d
if-ge v1, v2, :cond_1
.line 675
invoke-static {p1}, Landroidx/biometric/ErrorUtils;->isLockoutError(I)Z
move-result v1
if-eqz v1, :cond_1
if-eqz v0, :cond_1
.line 677
invoke-static {v0}, Landroidx/biometric/KeyguardUtils;->isDeviceSecuredWithCredential(Landroid/content/Context;)Z
move-result v0
if-eqz v0, :cond_1
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 679
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getAllowedAuthenticators()I
move-result v0
.line 678
invoke-static {v0}, Landroidx/biometric/AuthenticatorUtils;->isDeviceCredentialAllowed(I)Z
move-result v0
if-eqz v0, :cond_1
.line 680
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->launchConfirmCredentialActivity()V
return-void
.line 684
:cond_1
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->isUsingFingerprintDialog()Z
move-result v0
if-eqz v0, :cond_7
if-eqz p2, :cond_2
goto :goto_1
.line 688
:cond_2
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object p2
invoke-static {p2, p1}, Landroidx/biometric/ErrorUtils;->getFingerprintErrorString(Landroid/content/Context;I)Ljava/lang/String;
move-result-object p2
:goto_1
const/4 v0, 0x5
if-ne p1, v0, :cond_5
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 692
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getCanceledFrom()I
move-result v0
if-eqz v0, :cond_3
const/4 v1, 0x3
if-ne v0, v1, :cond_4
.line 695
:cond_3
invoke-direct {p0, p1, p2}, Landroidx/biometric/BiometricFragment;->sendErrorToClient(ILjava/lang/CharSequence;)V
.line 698
:cond_4
invoke-virtual {p0}, Landroidx/biometric/BiometricFragment;->dismiss()V
goto :goto_4
:cond_5
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 700
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isFingerprintDialogDismissedInstantly()Z
move-result v0
if-eqz v0, :cond_6
.line 701
invoke-virtual {p0, p1, p2}, Landroidx/biometric/BiometricFragment;->sendErrorAndDismiss(ILjava/lang/CharSequence;)V
goto :goto_2
.line 703
:cond_6
invoke-direct {p0, p2}, Landroidx/biometric/BiometricFragment;->showFingerprintErrorMessage(Ljava/lang/CharSequence;)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mHandler:Landroid/os/Handler;
.line 704
new-instance v1, Landroidx/biometric/BiometricFragment$8;
invoke-direct {v1, p0, p1, p2}, Landroidx/biometric/BiometricFragment$8;-><init>(Landroidx/biometric/BiometricFragment;ILjava/lang/CharSequence;)V
.line 711
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->getDismissDialogDelay()I
move-result p1
int-to-long p1, p1
.line 704
invoke-virtual {v0, v1, p1, p2}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
:goto_2
iget-object p1, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 p2, 0x1
.line 716
invoke-virtual {p1, p2}, Landroidx/biometric/BiometricViewModel;->setFingerprintDialogDismissedInstantly(Z)V
goto :goto_4
:cond_7
if-eqz p2, :cond_8
goto :goto_3
.line 721
:cond_8
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
sget v0, Landroidx/biometric/R$string;->default_error_msg:I
invoke-virtual {p0, v0}, Landroidx/fragment/app/Fragment;->getString(I)Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, " "
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
.line 722
:goto_3
invoke-virtual {p0, p1, p2}, Landroidx/biometric/BiometricFragment;->sendErrorAndDismiss(ILjava/lang/CharSequence;)V
:goto_4
return-void
.end method
.method public onAuthenticationFailed()V
.locals 1
.line 743
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->isUsingFingerprintDialog()Z
move-result v0
if-eqz v0, :cond_0
sget v0, Landroidx/biometric/R$string;->fingerprint_not_recognized:I
.line 744
invoke-virtual {p0, v0}, Landroidx/fragment/app/Fragment;->getString(I)Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Landroidx/biometric/BiometricFragment;->showFingerprintErrorMessage(Ljava/lang/CharSequence;)V
.line 746
:cond_0
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->sendFailureToClient()V
return-void
.end method
.method public onAuthenticationHelp(Ljava/lang/CharSequence;)V
.locals 1
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 733
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->isUsingFingerprintDialog()Z
move-result v0
if-eqz v0, :cond_0
.line 734
invoke-direct {p0, p1}, Landroidx/biometric/BiometricFragment;->showFingerprintErrorMessage(Ljava/lang/CharSequence;)V
:cond_0
return-void
.end method
.method public onAuthenticationSucceeded(Landroidx/biometric/BiometricPrompt$AuthenticationResult;)V
.locals 0
.param p1 # Landroidx/biometric/BiometricPrompt$AuthenticationResult;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/VisibleForTesting;
.end annotation
.line 655
invoke-direct {p0, p1}, Landroidx/biometric/BiometricFragment;->sendSuccessAndDismiss(Landroidx/biometric/BiometricPrompt$AuthenticationResult;)V
return-void
.end method
.method public onCancelButtonPressed()V
.locals 2
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 768
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getNegativeButtonText()Ljava/lang/CharSequence;
move-result-object v0
if-eqz v0, :cond_0
goto :goto_0
:cond_0
sget v0, Landroidx/biometric/R$string;->default_error_msg:I
.line 773
invoke-virtual {p0, v0}, Landroidx/fragment/app/Fragment;->getString(I)Ljava/lang/String;
move-result-object v0
:goto_0
const/16 v1, 0xd
.line 769
invoke-virtual {p0, v1, v0}, Landroidx/biometric/BiometricFragment;->sendErrorAndDismiss(ILjava/lang/CharSequence;)V
const/4 v0, 0x2
.line 774
invoke-virtual {p0, v0}, Landroidx/biometric/BiometricFragment;->cancelAuthentication(I)V
return-void
.end method
.method public onCreate(Landroid/os/Bundle;)V
.locals 0
.param p1 # Landroid/os/Bundle;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 220
invoke-super {p0, p1}, Landroidx/fragment/app/Fragment;->onCreate(Landroid/os/Bundle;)V
.line 221
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->connectViewModel()V
return-void
.end method
.method public onDeviceCredentialButtonPressed()V
.locals 0
.line 759
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->launchConfirmCredentialActivity()V
return-void
.end method
.method public onStart()V
.locals 4
.line 226
invoke-super {p0}, Landroidx/fragment/app/Fragment;->onStart()V
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1d
if-ne v0, v1, :cond_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 232
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->getAllowedAuthenticators()I
move-result v0
.line 231
invoke-static {v0}, Landroidx/biometric/AuthenticatorUtils;->isDeviceCredentialAllowed(I)Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v1, 0x1
.line 233
invoke-virtual {v0, v1}, Landroidx/biometric/BiometricViewModel;->setIgnoringCancel(Z)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mHandler:Landroid/os/Handler;
.line 234
new-instance v1, Landroidx/biometric/BiometricFragment$StopIgnoringCancelRunnable;
iget-object v2, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
invoke-direct {v1, v2}, Landroidx/biometric/BiometricFragment$StopIgnoringCancelRunnable;-><init>(Landroidx/biometric/BiometricViewModel;)V
const-wide/16 v2, 0xfa
invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
:cond_0
return-void
.end method
.method public onStop()V
.locals 2
.line 240
invoke-super {p0}, Landroidx/fragment/app/Fragment;->onStop()V
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1d
if-ge v0, v1, :cond_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 242
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isConfirmingDeviceCredential()Z
move-result v0
if-nez v0, :cond_0
.line 243
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->isChangingConfigurations()Z
move-result v0
if-nez v0, :cond_0
const/4 v0, 0x0
.line 244
invoke-virtual {p0, v0}, Landroidx/biometric/BiometricFragment;->cancelAuthentication(I)V
:cond_0
return-void
.end method
.method public sendErrorAndDismiss(ILjava/lang/CharSequence;)V
.locals 0
.param p2 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 882
invoke-direct {p0, p1, p2}, Landroidx/biometric/BiometricFragment;->sendErrorToClient(ILjava/lang/CharSequence;)V
.line 883
invoke-virtual {p0}, Landroidx/biometric/BiometricFragment;->dismiss()V
return-void
.end method
.method public showPromptForAuthentication()V
.locals 2
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 413
invoke-virtual {v0}, Landroidx/biometric/BiometricViewModel;->isPromptShowing()Z
move-result v0
if-nez v0, :cond_2
.line 414
invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v0
if-nez v0, :cond_0
const-string v0, "BiometricFragment"
const-string v1, "Not showing biometric prompt. Context is null."
.line 415
invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_0
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
const/4 v1, 0x1
.line 419
invoke-virtual {v0, v1}, Landroidx/biometric/BiometricViewModel;->setPromptShowing(Z)V
iget-object v0, p0, Landroidx/biometric/BiometricFragment;->mViewModel:Landroidx/biometric/BiometricViewModel;
.line 420
invoke-virtual {v0, v1}, Landroidx/biometric/BiometricViewModel;->setAwaitingResult(Z)V
.line 421
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->isUsingFingerprintDialog()Z
move-result v0
if-eqz v0, :cond_1
.line 422
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->showFingerprintDialogForAuthentication()V
goto :goto_0
.line 424
:cond_1
invoke-direct {p0}, Landroidx/biometric/BiometricFragment;->showBiometricPromptForAuthentication()V
:cond_2
:goto_0
return-void
.end method