11import 'package:flutter_riverpod/flutter_riverpod.dart' ;
22import 'package:shared_preferences/shared_preferences.dart' ;
33
4- class BypassPackagesNotifier extends Notifier <List <String >> {
4+ class BypassPackagesNotifier extends Notifier <Future < List <String > >> {
55 @override
6- List <String > build () {
6+ Future < List <String > > build () {
77 // Load initial state asynchronously
8- _loadFromPreferences ();
9- return [];
8+ return _loadFromPreferences ();
109 }
1110
1211 static const String _prefsKey = 'bypass_packages' ;
1312
14- Future <void > _loadFromPreferences () async {
13+ Future <List < String > > _loadFromPreferences () async {
1514 try {
1615 final prefs = await SharedPreferences .getInstance ();
1716 final List <String >? packages = prefs.getStringList (_prefsKey);
1817 if (packages != null ) {
19- // Update state after loading
20- state = packages;
18+ return packages;
2119 }
20+ return [];
2221 } catch (e) {
2322 // Handle error silently
24- state = [];
23+ return [];
2524 }
2625 }
2726
2827 Future <void > setBypassPackages (List <String > packages) async {
29- state = packages;
3028 final prefs = await SharedPreferences .getInstance ();
3129 await prefs.setStringList (_prefsKey, packages);
30+ state = Future .value (packages);
3231 }
3332
3433 Future <void > addBypassPackage (String packageName) async {
35- if (! state.contains (packageName)) {
36- final newPackages = List <String >.from (state)..add (packageName);
34+ final currentPackages = await state;
35+ if (! currentPackages.contains (packageName)) {
36+ final newPackages = List <String >.from (currentPackages)..add (packageName);
3737 await setBypassPackages (newPackages);
3838 }
3939 }
4040
4141 Future <void > removeBypassPackage (String packageName) async {
42- if (state.contains (packageName)) {
43- final newPackages = List <String >.from (state)..remove (packageName);
42+ final currentPackages = await state;
43+ if (currentPackages.contains (packageName)) {
44+ final newPackages = List <String >.from (currentPackages)..remove (packageName);
4445 await setBypassPackages (newPackages);
4546 }
4647 }
4748}
4849
4950final bypassPackagesProvider =
50- NotifierProvider <BypassPackagesNotifier , List <String >>(
51+ NotifierProvider <BypassPackagesNotifier , Future < List <String > >>(
5152 BypassPackagesNotifier .new ,
52- );
53+ );
0 commit comments