mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-09 10:08:00 -06:00
25 lines
841 B
Dart
25 lines
841 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);
|
|
}
|