didvan-app/lib/pages/home/profile/settings/settings_state.dart

74 lines
1.7 KiB
Dart

import 'package:didvan/models/enums.dart';
import 'package:didvan/providers/core_provider.dart';
import 'package:didvan/services/storage/storage.dart';
class SettingsState extends CoreProvier {
SettingsState() {
getSettingsFromStorage();
}
List _notificationTimeRange = [];
String _fontFamily = 'Dana-FA';
double _fontSizeScale = 1;
String _brightness = 'light';
set notificationTimeRange(List value) {
_notificationTimeRange = value;
StorageService.setValue(
key: 'notificationTimeRange',
value: value,
boxName: 'settings',
);
}
List get notificationTimeRange => _notificationTimeRange;
set fontFamily(String value) {
_fontFamily = value;
StorageService.setValue(
key: 'fontFamily',
value: value,
boxName: 'settings',
);
notifyListeners();
}
String get fontFamily => _fontFamily;
set fontSizeScale(double value) {
_fontSizeScale = value;
StorageService.setValue(
key: 'fontSizeScale',
value: value,
boxName: 'settings',
);
notifyListeners();
}
double get fontSizeScale => _fontSizeScale;
set brightness(String value) {
_brightness = value;
StorageService.setValue(
key: 'brightness',
value: value,
boxName: 'settings',
);
notifyListeners();
}
String get brightness => _brightness;
Future<void> getSettingsFromStorage() async {
appState = AppState.busy;
final Map settingsData = await StorageService.getBoxData(
boxName: 'settings',
);
_notificationTimeRange = settingsData['notificationTimeRange'];
_fontFamily = settingsData['fontFamily'];
_fontSizeScale = settingsData['fontSizeScale'];
_brightness = settingsData['brightness'];
appState = AppState.idle;
}
}