Add persistence to settings service

merge-requests/67/merge
Hank Grabowski 2023-01-16 10:06:11 -06:00
rodzic 31c3cbaa98
commit 17319eea12
2 zmienionych plików z 24 dodań i 2 usunięć

Wyświetl plik

@ -39,7 +39,11 @@ void main() async {
final entryManagerService = EntryManagerService();
final timelineManager = TimelineManager();
final galleryService = GalleryService();
getIt.registerLazySingleton(() => SettingsService());
getIt.registerSingletonAsync(() async {
final service = SettingsService();
await service.initialize();
return service;
});
getIt.registerLazySingleton<ConnectionsManager>(() => ConnectionsManager());
getIt.registerLazySingleton<HashtagService>(() => HashtagService());
getIt.registerSingleton(galleryService);

Wyświetl plik

@ -1,12 +1,30 @@
import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SettingsService extends ChangeNotifier {
var _lowBandwidthMode = true;
late final SharedPreferences _prefs;
var _initialized = false;
SettingsService();
var _lowBandwidthMode = false;
bool get lowBandwidthMode => _lowBandwidthMode;
set lowBandwidthMode(bool value) {
_lowBandwidthMode = value;
_prefs.setBool(_lowBandwidthModeKey, _lowBandwidthMode);
notifyListeners();
}
Future<void> initialize() async {
if (_initialized) {
return;
}
_prefs = await SharedPreferences.getInstance();
_lowBandwidthMode = _prefs.getBool(_lowBandwidthModeKey) ?? false;
_initialized = true;
}
}
const _lowBandwidthModeKey = 'LowBandwidthMode';