import 'package:didvan/models/enums.dart'; import 'package:didvan/providers/core_provider.dart'; import 'package:didvan/services/network/request.dart'; import 'package:didvan/services/network/request_helper.dart'; import 'package:didvan/services/storage/storage.dart'; class GeneralSettingsState extends CoreProvier { GeneralSettingsState() { getSettingsFromStorage(); } List _notificationTimeRange = [0, 24]; String _fontFamily = 'Dana-FA'; double _fontSizeScale = 1; String _brightness = 'light'; set notificationTimeRange(List value) { _notificationTimeRange = value; StorageService.setValue( key: 'notificationTimeRangeStart', value: value[0], ); StorageService.setValue( key: 'notificationTimeRangeEnd', value: value[1], ); notifyListeners(); _setSilenceInterval(); } List get notificationTimeRange => _notificationTimeRange; set fontFamily(String value) { _fontFamily = value; StorageService.setValue( key: 'fontFamily', value: value, ); notifyListeners(); } String get fontFamily => _fontFamily; set fontSizeScale(double value) { _fontSizeScale = value; StorageService.setValue( key: 'fontSizeScale', value: value, ); notifyListeners(); } double get fontSizeScale => _fontSizeScale; set brightness(String value) { _brightness = value; StorageService.setValue( key: 'brightness', value: value, ); notifyListeners(); } String get brightness => _brightness; Future _setSilenceInterval() async { final service = RequestService(RequestHelper.silenceInterval, body: { 'start': notificationTimeRange[0], 'end': notificationTimeRange[1] }); await service.put(); } Future getSettingsFromStorage() async { appState = AppState.busy; _notificationTimeRange[0] = int.parse( await StorageService.getValue(key: 'notificationTimeRangeStart'), ); _notificationTimeRange[1] = int.parse( await StorageService.getValue(key: 'notificationTimeRangeEnd'), ); _fontFamily = await StorageService.getValue(key: 'fontFamily'); _brightness = await StorageService.getValue(key: 'brightness'); final scale = await StorageService.getValue(key: 'fontSizeScale'); _fontSizeScale = double.parse(scale); appState = AppState.idle; } }