internal static async Task <FingerprintAuthenticationResult> AuthenticateNoDialogAsync(CancellationToken cancellationToken, FingerprintAuthenticationCallback callback) { var cancellationSignal = new CancellationSignal(); cancellationToken.Register(() => cancellationSignal.Cancel()); CrossFingerprint.GetService().Authenticate(null, cancellationSignal, FingerprintAuthenticationFlags.None, callback, null); return(await callback.GetTask()); }
public async Task <FingerprintAuthenticationResult> AuthenticateAsync(string reason, CancellationToken cancellationToken) { if (!IsAvailable) { return(new FingerprintAuthenticationResult { Status = FingerprintAuthenticationResultStatus.NotAvailable }); } if (CrossFingerprint.DialogEnabled) { var fragment = CrossFingerprint.CreateDialogFragment(); return(await fragment.ShowAsync(reason, cancellationToken)); } return(await AuthenticateNoDialogAsync(cancellationToken, new FingerprintAuthenticationCallback())); }