.class public final Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat; .super Ljava/lang/Object; .source "FingerprintManagerCompat.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$AuthenticationCallback;, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$AuthenticationResult;, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject; } .end annotation # instance fields .field private final mContext:Landroid/content/Context; # direct methods .method private constructor (Landroid/content/Context;)V .locals 0 .line 51 invoke-direct {p0}, Ljava/lang/Object;->()V .line 52 iput-object p1, p0, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->mContext:Landroid/content/Context; return-void .end method .method static synthetic access$000(Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;)Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject; .locals 0 .line 41 invoke-static {p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->unwrapCryptoObject(Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;)Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject; move-result-object p0 return-object p0 .end method .method public static from(Landroid/content/Context;)Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat; .locals 1 .param p0 # Landroid/content/Context; .annotation build Landroid/support/annotation/NonNull; .end annotation .end param .annotation build Landroid/support/annotation/NonNull; .end annotation .line 48 new-instance v0, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat; invoke-direct {v0, p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->(Landroid/content/Context;)V return-object v0 .end method .method private static getFingerprintManagerOrNull(Landroid/content/Context;)Landroid/hardware/fingerprint/FingerprintManager; .locals 2 .param p0 # Landroid/content/Context; .annotation build Landroid/support/annotation/NonNull; .end annotation .end param .annotation build Landroid/support/annotation/Nullable; .end annotation .annotation build Landroid/support/annotation/RequiresApi; .end annotation .line 122 invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v0 const-string v1, "android.hardware.fingerprint" invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_0 .line 123 const-class v0, Landroid/hardware/fingerprint/FingerprintManager; invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object; move-result-object p0 check-cast p0, Landroid/hardware/fingerprint/FingerprintManager; return-object p0 :cond_0 const/4 p0, 0x0 return-object p0 .end method .method private static unwrapCryptoObject(Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;)Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject; .locals 2 .annotation build Landroid/support/annotation/RequiresApi; .end annotation const/4 v0, 0x0 if-nez p0, :cond_0 return-object v0 .line 148 :cond_0 invoke-virtual {p0}, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;->getCipher()Ljavax/crypto/Cipher; move-result-object v1 if-eqz v1, :cond_1 .line 149 new-instance v0, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject; invoke-virtual {p0}, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;->getCipher()Ljavax/crypto/Cipher; move-result-object p0 invoke-direct {v0, p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;->(Ljavax/crypto/Cipher;)V return-object v0 .line 150 :cond_1 invoke-virtual {p0}, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;->getSignature()Ljava/security/Signature; move-result-object v1 if-eqz v1, :cond_2 .line 151 new-instance v0, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject; invoke-virtual {p0}, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;->getSignature()Ljava/security/Signature; move-result-object p0 invoke-direct {v0, p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;->(Ljava/security/Signature;)V return-object v0 .line 152 :cond_2 invoke-virtual {p0}, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;->getMac()Ljavax/crypto/Mac; move-result-object v1 if-eqz v1, :cond_3 .line 153 new-instance v0, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject; invoke-virtual {p0}, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;->getMac()Ljavax/crypto/Mac; move-result-object p0 invoke-direct {v0, p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;->(Ljavax/crypto/Mac;)V return-object v0 :cond_3 return-object v0 .end method .method private static wrapCallback(Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$AuthenticationCallback;)Landroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback; .locals 1 .annotation build Landroid/support/annotation/RequiresApi; .end annotation .line 162 new-instance v0, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$1; invoke-direct {v0, p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$1;->(Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$AuthenticationCallback;)V return-object v0 .end method .method private static wrapCryptoObject(Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;)Landroid/hardware/fingerprint/FingerprintManager$CryptoObject; .locals 2 .annotation build Landroid/support/annotation/RequiresApi; .end annotation const/4 v0, 0x0 if-nez p0, :cond_0 return-object v0 .line 133 :cond_0 invoke-virtual {p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;->getCipher()Ljavax/crypto/Cipher; move-result-object v1 if-eqz v1, :cond_1 .line 134 new-instance v0, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject; invoke-virtual {p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;->getCipher()Ljavax/crypto/Cipher; move-result-object p0 invoke-direct {v0, p0}, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;->(Ljavax/crypto/Cipher;)V return-object v0 .line 135 :cond_1 invoke-virtual {p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;->getSignature()Ljava/security/Signature; move-result-object v1 if-eqz v1, :cond_2 .line 136 new-instance v0, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject; invoke-virtual {p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;->getSignature()Ljava/security/Signature; move-result-object p0 invoke-direct {v0, p0}, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;->(Ljava/security/Signature;)V return-object v0 .line 137 :cond_2 invoke-virtual {p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;->getMac()Ljavax/crypto/Mac; move-result-object v1 if-eqz v1, :cond_3 .line 138 new-instance v0, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject; invoke-virtual {p0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;->getMac()Ljavax/crypto/Mac; move-result-object p0 invoke-direct {v0, p0}, Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;->(Ljavax/crypto/Mac;)V return-object v0 :cond_3 return-object v0 .end method # virtual methods .method public authenticate(Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;ILandroid/support/v4/os/CancellationSignal;Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$AuthenticationCallback;Landroid/os/Handler;)V .locals 7 .param p1 # Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject; .annotation build Landroid/support/annotation/Nullable; .end annotation .end param .param p3 # Landroid/support/v4/os/CancellationSignal; .annotation build Landroid/support/annotation/Nullable; .end annotation .end param .param p4 # Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$AuthenticationCallback; .annotation build Landroid/support/annotation/NonNull; .end annotation .end param .param p5 # Landroid/os/Handler; .annotation build Landroid/support/annotation/Nullable; .end annotation .end param .annotation build Landroid/support/annotation/RequiresPermission; .end annotation .line 103 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x17 if-lt v0, v1, :cond_1 .line 104 iget-object v0, p0, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->mContext:Landroid/content/Context; invoke-static {v0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->getFingerprintManagerOrNull(Landroid/content/Context;)Landroid/hardware/fingerprint/FingerprintManager; move-result-object v1 if-eqz v1, :cond_1 if-eqz p3, :cond_0 .line 107 invoke-virtual {p3}, Landroid/support/v4/os/CancellationSignal;->getCancellationSignalObject()Ljava/lang/Object; move-result-object p3 check-cast p3, Landroid/os/CancellationSignal; :goto_0 move-object v3, p3 goto :goto_1 :cond_0 const/4 p3, 0x0 goto :goto_0 .line 110 :goto_1 invoke-static {p1}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->wrapCryptoObject(Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$CryptoObject;)Landroid/hardware/fingerprint/FingerprintManager$CryptoObject; move-result-object v2 .line 113 invoke-static {p4}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->wrapCallback(Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat$AuthenticationCallback;)Landroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback; move-result-object v5 move v4, p2 move-object v6, p5 .line 109 invoke-virtual/range {v1 .. v6}, Landroid/hardware/fingerprint/FingerprintManager;->authenticate(Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;Landroid/os/CancellationSignal;ILandroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;Landroid/os/Handler;)V :cond_1 return-void .end method .method public hasEnrolledFingerprints()Z .locals 3 .annotation build Landroid/support/annotation/RequiresPermission; .end annotation .line 62 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/4 v1, 0x0 const/16 v2, 0x17 if-lt v0, v2, :cond_1 .line 63 iget-object v0, p0, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->mContext:Landroid/content/Context; invoke-static {v0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->getFingerprintManagerOrNull(Landroid/content/Context;)Landroid/hardware/fingerprint/FingerprintManager; move-result-object v0 if-eqz v0, :cond_0 .line 64 invoke-virtual {v0}, Landroid/hardware/fingerprint/FingerprintManager;->hasEnrolledFingerprints()Z move-result v0 if-eqz v0, :cond_0 const/4 v1, 0x1 :cond_0 return v1 :cond_1 return v1 .end method .method public isHardwareDetected()Z .locals 3 .annotation build Landroid/support/annotation/RequiresPermission; .end annotation .line 77 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/4 v1, 0x0 const/16 v2, 0x17 if-lt v0, v2, :cond_1 .line 78 iget-object v0, p0, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->mContext:Landroid/content/Context; invoke-static {v0}, Landroid/support/v4/hardware/fingerprint/FingerprintManagerCompat;->getFingerprintManagerOrNull(Landroid/content/Context;)Landroid/hardware/fingerprint/FingerprintManager; move-result-object v0 if-eqz v0, :cond_0 .line 79 invoke-virtual {v0}, Landroid/hardware/fingerprint/FingerprintManager;->isHardwareDetected()Z move-result v0 if-eqz v0, :cond_0 const/4 v1, 0x1 :cond_0 return v1 :cond_1 return v1 .end method