Commit 427eeff
Changed files (5)
lib
components
model
screens
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)) {