mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-14 14:12:21 -06:00
25 lines
840 B
Dart
25 lines
840 B
Dart
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:paperless_mobile/core/model/error_message.dart';
|
|
import 'package:paperless_mobile/di_initializer.dart';
|
|
import 'package:local_auth/local_auth.dart';
|
|
|
|
class LocalAuthenticationCubit extends Cubit<LocalAuthenticationState> {
|
|
LocalAuthenticationCubit() : super(LocalAuthenticationState(false));
|
|
|
|
Future<void> authorize(String localizedMessage) async {
|
|
final isAuthenticationSuccessful =
|
|
await getIt<LocalAuthentication>().authenticate(localizedReason: localizedMessage);
|
|
if (isAuthenticationSuccessful) {
|
|
emit(LocalAuthenticationState(true));
|
|
} else {
|
|
throw const ErrorMessage(ErrorCode.biometricAuthenticationFailed);
|
|
}
|
|
}
|
|
}
|
|
|
|
class LocalAuthenticationState {
|
|
final bool isAuthorized;
|
|
|
|
LocalAuthenticationState(this.isAuthorized);
|
|
}
|