showBiometricPrompt method

  1. @override
Future<BiometricStatusResult?> showBiometricPrompt({
  1. String? title,
  2. String? description,
  3. String? cancelText,
})
override

Implementation

@override
Future<BiometricStatusResult?> showBiometricPrompt({
  final String? title,
  final String? description,
  final String? cancelText,
}) async {
  try {
    final res = await methodChannel.invokeMethod<String>(
      'showBiometricPrompt',
      {
        'title': title,
        'description': description,
        'cancelText': cancelText,
      },
    );

    final event = res?.split(",") ?? [];
    if (event.isEmpty) return null;
    switch (event[0]) {
      case 'AUTH_SUCCESS':
        return BiometricStatusResult.authSuccess;
      case 'NO_BIOMETRICS':
      case 'BIOMETRIC_UNAVAILABLE':
        return BiometricStatusResult.noBiometrics;
      case 'NO_HARDWARE':
        return BiometricStatusResult.noHardware;
      case 'BIOMETRIC_LOCKOUT':
        return BiometricStatusResult.biometricLockout;
      case 'BIOMETRIC_LOCKOUT_PERMANENT':
        return BiometricStatusResult.biometricLockoutPermanent;
      default:
        return null;
    }
  } on PlatformException catch (e) {
    if (e.code == 'AUTH_FAILED') {
      return BiometricStatusResult.authFailed;
    } else {
      rethrow;
    }
  }
}