- 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
2127 lines
62 KiB
Smali
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
|