update biometrics to handle updated local_auth changes

This commit is contained in:
julian 2024-09-17 15:05:17 -06:00 committed by julian-CStack
parent f4b5060c8c
commit 98986d74f0

View file

@ -58,75 +58,103 @@ class Biometrics {
// debugPrint("availableSystems: $availableSystems"); // debugPrint("availableSystems: $availableSystems");
//TODO properly handle caught exceptions //TODO properly handle caught exceptions
if (Platform.isIOS) { if (availableSystems.contains(BiometricType.strong)) {
if (availableSystems.contains(BiometricType.face)) { try {
try { final bool didAuthenticate = await localAuth.authenticate(
final bool didAuthenticate = await localAuth.authenticate( localizedReason: localizedReason,
localizedReason: localizedReason, options: const AuthenticationOptions(
options: const AuthenticationOptions( stickyAuth: true,
stickyAuth: true, biometricOnly: true,
biometricOnly: true, ),
authMessages: <AuthMessages>[
AndroidAuthMessages(
biometricHint: "",
cancelButton: cancelButtonText,
signInTitle: title,
), ),
); ],
);
if (didAuthenticate) { if (didAuthenticate) {
return true; return true;
}
} catch (e) {
Logging.instance.log(
"local_auth exception caught in Biometrics.authenticate(), e: $e",
level: LogLevel.Error,
);
}
} else if (availableSystems.contains(BiometricType.fingerprint)) {
try {
final bool didAuthenticate = await localAuth.authenticate(
localizedReason: localizedReason,
options: const AuthenticationOptions(
stickyAuth: true,
biometricOnly: true,
),
);
if (didAuthenticate) {
return true;
}
} catch (e) {
Logging.instance.log(
"local_auth exception caught in Biometrics.authenticate(), e: $e",
level: LogLevel.Error,
);
}
}
} else if (Platform.isAndroid) {
if (availableSystems.contains(BiometricType.fingerprint)) {
try {
final bool didAuthenticate = await localAuth.authenticate(
localizedReason: localizedReason,
options: const AuthenticationOptions(
stickyAuth: true,
biometricOnly: true,
),
authMessages: <AuthMessages>[
AndroidAuthMessages(
biometricHint: "",
cancelButton: cancelButtonText,
signInTitle: title,
),
],
);
if (didAuthenticate) {
return true;
}
} catch (e) {
Logging.instance.log(
"local_auth exception caught in Biometrics.authenticate(), e: $e",
level: LogLevel.Error,
);
} }
} catch (e) {
Logging.instance.log(
"local_auth exception caught in Biometrics.authenticate(), e: $e",
level: LogLevel.Error,
);
} }
} }
// if (Platform.isIOS) {
// if (availableSystems.contains(BiometricType.face)) {
// try {
// final bool didAuthenticate = await localAuth.authenticate(
// localizedReason: localizedReason,
// options: const AuthenticationOptions(
// stickyAuth: true,
// biometricOnly: true,
// ),
// );
//
// if (didAuthenticate) {
// return true;
// }
// } catch (e) {
// Logging.instance.log(
// "local_auth exception caught in Biometrics.authenticate(), e: $e",
// level: LogLevel.Error,
// );
// }
// } else if (availableSystems.contains(BiometricType.fingerprint)) {
// try {
// final bool didAuthenticate = await localAuth.authenticate(
// localizedReason: localizedReason,
// options: const AuthenticationOptions(
// stickyAuth: true,
// biometricOnly: true,
// ),
// );
//
// if (didAuthenticate) {
// return true;
// }
// } catch (e) {
// Logging.instance.log(
// "local_auth exception caught in Biometrics.authenticate(), e: $e",
// level: LogLevel.Error,
// );
// }
// }
// } else if (Platform.isAndroid) {
// if (availableSystems.contains(BiometricType.fingerprint)) {
// try {
// final bool didAuthenticate = await localAuth.authenticate(
// localizedReason: localizedReason,
// options: const AuthenticationOptions(
// stickyAuth: true,
// biometricOnly: true,
// ),
// authMessages: <AuthMessages>[
// AndroidAuthMessages(
// biometricHint: "",
// cancelButton: cancelButtonText,
// signInTitle: title,
// ),
// ],
// );
//
// if (didAuthenticate) {
// return true;
// }
// } catch (e) {
// Logging.instance.log(
// "local_auth exception caught in Biometrics.authenticate(), e: $e",
// level: LogLevel.Error,
// );
// }
// }
// }
} }
// authentication failed // authentication failed