isBiometricEnabled function

Future isBiometricEnabled()

Verifica si el dispositivo tiene biometría disponible y enrollada. Retorna true si disponible; en caso de error o no disponible, retorna Map con details (para compatibilidad).

Implementation

Future<dynamic> isBiometricEnabled() async {
  try {
    final bool isDeviceSupported = await _localAuth.isDeviceSupported();
    final bool canCheckBiometrics = await _localAuth.canCheckBiometrics;
    if (!isDeviceSupported && !canCheckBiometrics) {
      return {
        'success': false,
        'message': 'Dispositivo no compatible con biometría',
        'code': 'BiometricNotSupported',
        'error': null,
      };
    }

    final List<BiometricType> availableBiometrics =
        await _localAuth.getAvailableBiometrics();
    if (availableBiometrics.isEmpty) {
      return {
        'success': false,
        'message': 'No hay credenciales biométricas registradas',
        'code': 'BiometricNotEnrolled',
        'error': null,
      };
    }

    return true;
  } catch (e) {
    debugPrint('Error en isBiometricEnabled: $e');
    return {
      'success': false,
      'message': 'Error al verificar la biometría',
      'code': 'BiometricCheckError',
      'error': e.toString(),
    };
  }
}