a687e3637f
Migrate StateNotifierProvider/StateNotifier → NotifierProvider/Notifier, StateProvider → NotifierProvider with simple notifier, FamilyAsyncNotifier removed in Riverpod 3 (replaced with constructor-arg pattern), and rename .valueOrNull → .value throughout all providers and screens. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
34 lines
919 B
Dart
34 lines
919 B
Dart
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import 'settings_provider.dart';
|
|
|
|
final captureQueueProvider =
|
|
NotifierProvider<CaptureQueueNotifier, List<String>>(
|
|
CaptureQueueNotifier.new,
|
|
);
|
|
|
|
class CaptureQueueNotifier extends Notifier<List<String>> {
|
|
static const _key = 'capture_queue';
|
|
|
|
SharedPreferences get _prefs => ref.read(sharedPreferencesProvider);
|
|
|
|
@override
|
|
List<String> build() {
|
|
final prefs = ref.watch(sharedPreferencesProvider);
|
|
return prefs.getStringList(_key) ?? [];
|
|
}
|
|
|
|
Future<void> enqueue(String text) async {
|
|
final updated = [...state, text];
|
|
await _prefs.setStringList(_key, updated);
|
|
state = updated;
|
|
}
|
|
|
|
Future<void> dequeue(String text) async {
|
|
final updated = List<String>.from(state)..remove(text);
|
|
await _prefs.setStringList(_key, updated);
|
|
state = updated;
|
|
}
|
|
}
|