Commit 9681569

derdilla <derdilla06@gmail.com>
2023-05-29 13:03:47
don't save current graph page between sessions and always take newest
1 parent 0bbd528
Changed files (2)
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);