33 lines
914 B
Dart
33 lines
914 B
Dart
|
|
import 'package:cb_prestige_qr/core/storage/local_storage_service.dart';
|
||
|
|
import 'package:cb_prestige_qr/features/auth/data/fingerprint_repository.dart';
|
||
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||
|
|
import 'package:hooks_riverpod/legacy.dart';
|
||
|
|
|
||
|
|
|
||
|
|
final storageProvider = Provider((ref) => LocalStorageService());
|
||
|
|
|
||
|
|
final fingerprintRepoProvider = Provider((ref) {
|
||
|
|
return FingerprintRepository(ref.read(storageProvider));
|
||
|
|
});
|
||
|
|
|
||
|
|
final fingerprintProvider =
|
||
|
|
StateNotifierProvider<FingerprintNotifier, bool>((ref) {
|
||
|
|
return FingerprintNotifier(ref.read(fingerprintRepoProvider));
|
||
|
|
});
|
||
|
|
|
||
|
|
class FingerprintNotifier extends StateNotifier<bool> {
|
||
|
|
final FingerprintRepository repo;
|
||
|
|
|
||
|
|
FingerprintNotifier(this.repo) : super(false) {
|
||
|
|
_init();
|
||
|
|
}
|
||
|
|
|
||
|
|
Future<void> _init() async {
|
||
|
|
state = await repo.load();
|
||
|
|
}
|
||
|
|
|
||
|
|
Future<void> toggle(bool value) async {
|
||
|
|
state = value;
|
||
|
|
await repo.save(value);
|
||
|
|
}
|
||
|
|
}
|