Commit 9681569
Changed files (2)
lib
model
test
model
lib/model/settings_store.dart
@@ -5,6 +5,9 @@ import 'package:shared_preferences/shared_preferences.dart';
class Settings extends ChangeNotifier {
late final SharedPreferences _prefs;
+ DateTime? _displayDataStart;
+ DateTime? _displayDataEnd;
+
Settings._create();
// factory method, to allow for async constructor
static Future<Settings> create() async {
@@ -102,26 +105,18 @@ class Settings extends ChangeNotifier {
}
DateTime get displayDataStart {
- var setting = _prefs.getInt('graphStart');
- if (setting != null) {
- return DateTime.fromMillisecondsSinceEpoch(setting);
- }
- return getMostRecentDisplayIntervall()[0];
+ return _displayDataStart ?? getMostRecentDisplayIntervall()[0];
}
set displayDataStart(DateTime newGraphStart) {
- _prefs.setInt('graphStart', newGraphStart.millisecondsSinceEpoch);
+ _displayDataStart = newGraphStart;
notifyListeners();
}
DateTime get displayDataEnd {
- var setting = _prefs.getInt('graphEnd');
- if (setting != null) {
- return DateTime.fromMillisecondsSinceEpoch(setting);
- }
- return getMostRecentDisplayIntervall()[1];
+ return _displayDataEnd ?? getMostRecentDisplayIntervall()[1];
}
set displayDataEnd(DateTime newGraphEnd) {
- _prefs.setInt('graphEnd', newGraphEnd.millisecondsSinceEpoch);
+ _displayDataEnd = newGraphEnd;
notifyListeners();
}
bool get followSystemDarkMode {
test/model/settings_test.dart
@@ -24,11 +24,10 @@ void main() {
test('should initialize', () async {
expect(() async { await Settings.create(); }, returnsNormally);
});
+
test('fields defaults should be set after initialization', () async {
var s = await Settings.create();
expect(s.graphStepSize, TimeStep.day);
- expect(s.displayDataStart, DateTime.fromMillisecondsSinceEpoch(-1));
- expect(s.displayDataEnd, DateTime.fromMillisecondsSinceEpoch(-1));
expect(s.followSystemDarkMode, true);
expect(s.darkMode, true);
expect(s.accentColor.value, 0xFF009688);