Commit 0ebf75a

derdilla <derdilla06@gmail.com>
2023-07-11 09:59:55
don't store age
1 parent beb5a2f
Changed files (2)
lib/model/settings_store.dart
@@ -16,9 +16,30 @@ class Settings extends ChangeNotifier {
   static Future<Settings> create() async {
     final component = Settings._create();
     component._prefs = await SharedPreferences.getInstance();
+    await component._update();
     return component;
   }
 
+  Future<void> _update() async {
+    final keys = _prefs.getKeys();
+    List<Future> toAwait = [];
+
+    if (keys.contains('age')) {
+      final lastAge = _prefs.getInt('age') ?? 30;
+      sysWarn = BloodPressureWarnValues.getUpperSysWarnValue(lastAge).toDouble();
+      diaWarn = BloodPressureWarnValues.getUpperDiaWarnValue(lastAge).toDouble();
+      toAwait.add(_prefs.remove('age'));
+    }
+    if (keys.contains('overrideWarnValues')) {
+      toAwait.add(_prefs.remove('overrideWarnValues'));
+    }
+
+    for (var e in toAwait) {
+      await e;
+    }
+    return;
+  }
+
   int get graphStepSize {
     return _prefs.getInt('graphStepSize') ?? TimeStep.day;
   }
@@ -187,9 +208,6 @@ class Settings extends ChangeNotifier {
   }
 
   double get sysWarn {
-    if (!overrideWarnValues) {
-      return BloodPressureWarnValues.getUpperSysWarnValue(age).toDouble();
-    }
     return _prefs.getInt('sysWarn')?.toDouble() ?? 120;
   }
 
@@ -199,9 +217,6 @@ class Settings extends ChangeNotifier {
   }
 
   double get diaWarn {
-    if (!overrideWarnValues) {
-      return BloodPressureWarnValues.getUpperDiaWarnValue(age).toDouble();
-    }
     return _prefs.getInt('diaWarn')?.toDouble() ?? 80;
   }
 
@@ -210,24 +225,6 @@ class Settings extends ChangeNotifier {
     notifyListeners();
   }
 
-  int get age {
-    return _prefs.getInt('age') ?? 30;
-  }
-
-  set age(int newAge) {
-    _prefs.setInt('age', newAge.toInt());
-    notifyListeners();
-  }
-
-  bool get overrideWarnValues {
-    return _prefs.getBool('overrideWarnValues') ?? false;
-  }
-
-  set overrideWarnValues(bool overrideWarnValues) {
-    _prefs.setBool('overrideWarnValues', overrideWarnValues);
-    notifyListeners();
-  }
-
   bool get validateInputs {
     return _prefs.getBool('validateInputs') ?? true;
   }
lib/screens/settings.dart
@@ -165,7 +165,7 @@ class SettingsPage extends StatelessWidget {
                   onToggle: (value) {
                     settings.confirmDeletion = value;
                   }),
-              InputSettingsTile(
+              /*InputSettingsTile(
                 key: const Key('age'),
                 title: Text(AppLocalizations.of(context)!.age),
                 description: Text(AppLocalizations.of(context)!.ageDesc),
@@ -186,6 +186,7 @@ class SettingsPage extends StatelessWidget {
                 // this field intentionally doesn't get disabled, as this
                 // would cause unexpected jumps in layout
               ),
+               */
               SettingsTile(
                   key: const Key('AboutWarnValuesScreen'),
                   title: Text(AppLocalizations.of(context)!.aboutWarnValuesScreen),
@@ -197,15 +198,6 @@ class SettingsPage extends StatelessWidget {
                       MaterialPageRoute(builder: (context) => const AboutWarnValuesScreen()),
                     );
                   }),
-              SwitchSettingsTile(
-                key: const Key('overrideWarnValues'),
-                initialValue: settings.overrideWarnValues,
-                onToggle: (value) {
-                  settings.overrideWarnValues = value;
-                },
-                leading: const Icon(Icons.tune),
-                title: Text(AppLocalizations.of(context)!.overrideWarnValues),
-              ),
               InputSettingsTile(
                 key: const Key('sysWarn'),
                 title: Text(AppLocalizations.of(context)!.sysWarn),
@@ -222,7 +214,6 @@ class SettingsPage extends StatelessWidget {
                 },
                 decoration: InputDecoration(hintText: AppLocalizations.of(context)!.sysWarn),
                 inputWidth: 120,
-                disabled: !settings.overrideWarnValues,
               ),
               InputSettingsTile(
                 key: const Key('diaWarn'),
@@ -240,7 +231,6 @@ class SettingsPage extends StatelessWidget {
                 },
                 decoration: InputDecoration(hintText: AppLocalizations.of(context)!.diaWarn),
                 inputWidth: 120,
-                disabled: !settings.overrideWarnValues,
               ),
             ]),
             SettingsSection(