Commit 427eeff

derdilla <derdilla06@gmail.com>
2023-05-20 09:58:30
inform about warn values
1 parent 79a72e1
lib/components/measurement_graph.dart
@@ -138,7 +138,7 @@ class _LineChart extends StatelessWidget {
                                                 belowBarData: BarAreaData(
                                                     show: true,
                                                     color: Colors.red.shade400.withAlpha(100),
-                                                    cutOffY: 130,
+                                                    cutOffY: settings.sysWarn,
                                                     applyCutOffY: true
                                                 )
                                             )
lib/model/settings_store.dart
@@ -128,12 +128,11 @@ class Settings extends ChangeNotifier {
     notifyListeners();
   }
 
-  // high blood pressure marking according to https://www.texasheart.org/heart-health/heart-information-center/topics/high-blood-pressure-hypertension/
   double get sysWarn {
     if (!overrideWarnValues) {
       return BloodPressureWarnValues.getUpperSysWarnValue(age).toDouble();
     }
-    return _prefs.getInt('sysWarn')?.toDouble() ?? 130;
+    return _prefs.getInt('sysWarn')?.toDouble() ?? 120;
   }
   set sysWarn(double newWarn) {
     _prefs.setInt('sysWarn', newWarn.toInt());
lib/screens/enter_timeformat.dart → lib/screens/subsettings/enter_timeformat.dart
File renamed without changes
lib/screens/subsettings/warn_about.dart
@@ -0,0 +1,50 @@
+
+import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:flutter/gestures.dart';
+import 'package:flutter/material.dart';
+import 'package:url_launcher/url_launcher.dart';
+
+class AboutWarnValuesScreen extends StatelessWidget {
+  const AboutWarnValuesScreen({super.key});
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      appBar: AppBar(
+        title: const Text('Warn values'),
+        backgroundColor: Theme.of(context).primaryColor,
+      ),
+      body: Center(
+        child: Container(
+          padding: const EdgeInsets.all(90.0),
+          child: Column(
+            mainAxisAlignment: MainAxisAlignment.center,
+            crossAxisAlignment: CrossAxisAlignment.start,
+            children: [
+              const Text('The warn values are a pure suggestions and no medical advice.'),
+              const SizedBox(height: 5,),
+              RichText(
+                text: TextSpan(
+                  text: 'The default age dependent values come from this source.',
+                  style: const TextStyle(color: Colors.blue),
+                  recognizer: TapGestureRecognizer()
+                    ..onTap = () async {
+                      final url = Uri.parse(BloodPressureWarnValues.source);
+                      if (await canLaunchUrl(url)) {
+                        await launchUrl(url, mode: LaunchMode.externalApplication);
+                      } else {
+                        ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Can\'t open URL:\n${BloodPressureWarnValues.source}')));
+                      }
+                    },
+                ),
+              ),
+              const SizedBox(height: 5,),
+              const Text('Feel free to change the values to suit your needs and follow the recommendations of your doctor.'),
+            ],
+          ),
+        ),
+      ),
+    );
+  }
+
+}
\ No newline at end of file
lib/screens/settings.dart
@@ -1,7 +1,8 @@
 import 'package:blood_pressure_app/components/settings_widgets.dart';
 import 'package:blood_pressure_app/model/blood_pressure.dart';
 import 'package:blood_pressure_app/model/settings_store.dart';
-import 'package:blood_pressure_app/screens/enter_timeformat.dart';
+import 'package:blood_pressure_app/screens/subsettings/enter_timeformat.dart';
+import 'package:blood_pressure_app/screens/subsettings/warn_about.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:provider/provider.dart';
@@ -127,6 +128,17 @@ class SettingsPage extends StatelessWidget {
                       // this field intentionally doesn't get disabled, as this
                       // would cause unexpected jumps in layout
                     ),
+                    SettingsTile(
+                        title: const Text('about'),
+                        description: const Text('more information on warn values'),
+                        leading: const Icon(Icons.info_outline),
+                        onPressed: (context) {
+                          Navigator.push(
+                            context,
+                            MaterialPageRoute(builder: (context) => const AboutWarnValuesScreen()),
+                          );
+                        }
+                    ),
                     SwitchSettingsTile(
                       initialValue: settings.overrideWarnValues,
                       onToggle: (value) {
@@ -142,7 +154,7 @@ class SettingsPage extends StatelessWidget {
                       inputFormatters: [
                         FilteringTextInputFormatter.digitsOnly
                       ],
-                      initialValue: settings.sysWarn.toString(),
+                      initialValue: settings.sysWarn.toInt().toString(),
                       onEditingComplete: (String? value) {
                         if (value == null || value.isEmpty
                             || (double.tryParse(value) == null)) {
@@ -164,7 +176,7 @@ class SettingsPage extends StatelessWidget {
                       inputFormatters: [
                         FilteringTextInputFormatter.digitsOnly
                       ],
-                      initialValue: settings.diaWarn.toString(),
+                      initialValue: settings.diaWarn.toInt().toString(),
                       onEditingComplete: (String? value) {
                         if (value == null || value.isEmpty
                             || (double.tryParse(value) == null)) {