Commit 672096b

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-12-25 14:44:35
group blood pressure related classes in separate files
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 7017833
lib/components/dialoges/add_export_column_dialoge.dart
@@ -1,5 +1,5 @@
 import 'package:blood_pressure_app/components/measurement_list/measurement_list_entry.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/export_import/column.dart';
 import 'package:blood_pressure_app/model/export_import/record_formatter.dart';
 import 'package:blood_pressure_app/model/storage/settings_store.dart';
@@ -98,8 +98,6 @@ class _AddExportColumnDialogeState extends State<AddExportColumnDialoge> with Si
                       : TimeColumn(csvTitle, timePattern!);
                   Navigator.pop(context, column);
                 }
-              } else {
-                print(formKey.currentState?.validate());
               }
             },
             child: Text(localizations.btnSave)
lib/components/dialoges/add_measurement.dart
@@ -2,7 +2,8 @@ import 'dart:math';
 
 import 'package:blood_pressure_app/components/date_time_picker.dart';
 import 'package:blood_pressure_app/components/settings/settings_widgets.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/storage/storage.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
lib/components/measurement_list/measurement_list.dart
@@ -1,5 +1,5 @@
 import 'package:blood_pressure_app/components/measurement_list/measurement_list_entry.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/storage/settings_store.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_gen/gen_l10n/app_localizations.dart';
lib/components/measurement_list/measurement_list_entry.dart
@@ -1,5 +1,6 @@
 import 'package:blood_pressure_app/components/dialoges/add_measurement.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/storage/storage.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_gen/gen_l10n/app_localizations.dart';
lib/model/blood_pressure.dart → lib/model/blood_pressure/model.dart
@@ -1,6 +1,8 @@
 import 'dart:async';
 import 'dart:convert';
 
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/storage/storage.dart';
 import 'package:blood_pressure_app/screens/error_reporting_screen.dart';
 import 'package:blood_pressure_app/screens/subsettings/export_import/export_button_bar.dart';
@@ -43,13 +45,13 @@ class BloodPressureModel extends ChangeNotifier {
   }
 
   FutureOr<void> _onDBCreate(Database db, int version) {
-      return db.execute('CREATE TABLE bloodPressureModel('
-          'timestamp INTEGER(14) PRIMARY KEY,'
-          'systolic INTEGER, diastolic INTEGER,'
-          'pulse INTEGER,'
-          'notes STRING,'
-          'needlePin STRING)');
-    }
+    return db.execute('CREATE TABLE bloodPressureModel('
+        'timestamp INTEGER(14) PRIMARY KEY,'
+        'systolic INTEGER, diastolic INTEGER,'
+        'pulse INTEGER,'
+        'notes STRING,'
+        'needlePin STRING)');
+  }
 
   FutureOr<void> _onDBUpgrade(Database db, int oldVersion, int newVersion) async {
     // When adding more versions the upgrade procedure proposed in https://stackoverflow.com/a/75153875/21489239
@@ -149,97 +151,15 @@ class BloodPressureModel extends ChangeNotifier {
       final needlePinJson = e['needlePin'] as String?;
       final needlePin = (needlePinJson != null) ? jsonDecode(needlePinJson) : null;
       records.add(BloodPressureRecord(
-        DateTime.fromMillisecondsSinceEpoch(e['timestamp'] as int),
-        e['systolic'] as int?,
-        e['diastolic'] as int?,
-        e['pulse'] as int?,
-        e['notes'].toString(),
-        needlePin: (needlePin != null) ? MeasurementNeedlePin.fromJson(needlePin) : null
+          DateTime.fromMillisecondsSinceEpoch(e['timestamp'] as int),
+          e['systolic'] as int?,
+          e['diastolic'] as int?,
+          e['pulse'] as int?,
+          e['notes'].toString(),
+          needlePin: (needlePin != null) ? MeasurementNeedlePin.fromJson(needlePin) : null
       ));
     }
     return records;
   }
 }
 
-@immutable
-class BloodPressureRecord {
-  late final DateTime creationTime;
-  final int? systolic;
-  final int? diastolic;
-  final int? pulse;
-  final String notes;
-  final MeasurementNeedlePin? needlePin;
-
-  BloodPressureRecord(DateTime creationTime, this.systolic, this.diastolic, this.pulse, this.notes, {
-    this.needlePin
-  }) {
-    if (creationTime.millisecondsSinceEpoch > 0) {
-      this.creationTime = creationTime;
-    } else {
-      assert(false, "Tried to create BloodPressureRecord at or before epoch");
-      this.creationTime = DateTime.fromMillisecondsSinceEpoch(1);
-    }
-  }
-
-  @override
-  String toString() {
-    return 'BloodPressureRecord($creationTime, $systolic, $diastolic, $pulse, $notes, $needlePin)';
-  }
-}
-
-@immutable
-class MeasurementNeedlePin {
-  final Color color;
-
-  const MeasurementNeedlePin(this.color);
-  // When updating this, remember to be backwards compatible
-  MeasurementNeedlePin.fromJson(Map<String, dynamic> json)
-      : color = Color(json['color']);
-  Map<String, dynamic> toJson() => {
-    'color': color.value,
-  };
-
-  @override
-  String toString() {
-    return 'MeasurementNeedlePin{$color}';
-  }
-}
-
-// source: https://pressbooks.library.torontomu.ca/vitalsign/chapter/blood-pressure-ranges/ (last access: 14.11.2023)
-class BloodPressureWarnValues {
-  BloodPressureWarnValues._create();
-
-  static String source = 'https://pressbooks.library.torontomu.ca/vitalsign/chapter/blood-pressure-ranges/';
-
-  static int getUpperDiaWarnValue(int age) {
-    if (age <= 2) {
-      return 70;
-    } else if (age <= 13) {
-      return 80;
-    } else if (age <= 18) {
-      return 80;
-    } else if (age <= 40) {
-      return 80;
-    } else if (age <= 60) {
-      return 90;
-    } else {
-      return 90;
-    }
-  }
-
-  static int getUpperSysWarnValue(int age) {
-    if (age <= 2) {
-      return 100;
-    } else if (age <= 13) {
-      return 120;
-    } else if (age <= 18) {
-      return 120;
-    } else if (age <= 40) {
-      return 125;
-    } else if (age <= 60) {
-      return 145;
-    } else {
-      return 145;
-    }
-  }
-}
lib/model/blood_pressure/needle_pin.dart
@@ -0,0 +1,19 @@
+import 'package:flutter/material.dart';
+
+@immutable
+class MeasurementNeedlePin {
+  final Color color;
+
+  const MeasurementNeedlePin(this.color);
+  // When updating this, remember to be backwards compatible
+  MeasurementNeedlePin.fromJson(Map<String, dynamic> json)
+      : color = Color(json['color']);
+  Map<String, dynamic> toJson() => {
+    'color': color.value,
+  };
+
+  @override
+  String toString() {
+    return 'MeasurementNeedlePin{$color}';
+  }
+}
\ No newline at end of file
lib/model/blood_pressure/record.dart
@@ -0,0 +1,28 @@
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:flutter/material.dart';
+
+@immutable
+class BloodPressureRecord {
+  late final DateTime creationTime;
+  final int? systolic;
+  final int? diastolic;
+  final int? pulse;
+  final String notes;
+  final MeasurementNeedlePin? needlePin;
+
+  BloodPressureRecord(DateTime creationTime, this.systolic, this.diastolic, this.pulse, this.notes, {
+    this.needlePin
+  }) {
+    if (creationTime.millisecondsSinceEpoch > 0) {
+      this.creationTime = creationTime;
+    } else {
+      assert(false, "Tried to create BloodPressureRecord at or before epoch");
+      this.creationTime = DateTime.fromMillisecondsSinceEpoch(1);
+    }
+  }
+
+  @override
+  String toString() {
+    return 'BloodPressureRecord($creationTime, $systolic, $diastolic, $pulse, $notes, $needlePin)';
+  }
+}
\ No newline at end of file
lib/model/blood_pressure/warn_values.dart
@@ -0,0 +1,38 @@
+// source: https://pressbooks.library.torontomu.ca/vitalsign/chapter/blood-pressure-ranges/ (last access: 14.11.2023)
+class BloodPressureWarnValues {
+  BloodPressureWarnValues._create();
+
+  static String source = 'https://pressbooks.library.torontomu.ca/vitalsign/chapter/blood-pressure-ranges/';
+
+  static int getUpperDiaWarnValue(int age) {
+    if (age <= 2) {
+      return 70;
+    } else if (age <= 13) {
+      return 80;
+    } else if (age <= 18) {
+      return 80;
+    } else if (age <= 40) {
+      return 80;
+    } else if (age <= 60) {
+      return 90;
+    } else {
+      return 90;
+    }
+  }
+
+  static int getUpperSysWarnValue(int age) {
+    if (age <= 2) {
+      return 100;
+    } else if (age <= 13) {
+      return 120;
+    } else if (age <= 18) {
+      return 120;
+    } else if (age <= 40) {
+      return 125;
+    } else if (age <= 60) {
+      return 145;
+    } else {
+      return 145;
+    }
+  }
+}
\ No newline at end of file
lib/model/export_import/column.dart
@@ -1,6 +1,7 @@
 import 'dart:convert';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/export_import/import_field_type.dart';
 import 'package:blood_pressure_app/model/export_import/record_formatter.dart';
 import 'package:flutter/material.dart';
lib/model/export_import/csv_converter.dart
@@ -1,5 +1,6 @@
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/export_import/column.dart';
 import 'package:blood_pressure_app/model/export_import/import_field_type.dart' show RowDataFieldType;
 import 'package:blood_pressure_app/model/export_import/record_parsing_result.dart';
lib/model/export_import/import_field_type.dart
@@ -1,4 +1,3 @@
-import 'package:blood_pressure_app/model/blood_pressure.dart';
 import 'package:blood_pressure_app/model/export_import/record_formatter.dart';
 import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 
lib/model/export_import/pdf_converter.dart
@@ -1,7 +1,7 @@
 import 'dart:typed_data';
 import 'dart:ui';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/blood_pressure_analyzer.dart';
 import 'package:blood_pressure_app/model/storage/export_columns_store.dart';
 import 'package:blood_pressure_app/model/storage/export_pdf_settings_store.dart';
lib/model/export_import/record_formatter.dart
@@ -1,6 +1,7 @@
 import 'dart:convert';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/export_import/import_field_type.dart';
 import 'package:flutter/material.dart';
 import 'package:function_tree/function_tree.dart';
lib/model/export_import/record_parsing_result.dart
@@ -1,5 +1,5 @@
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 
 /// Indicate a possible error during record parsing.
 class RecordParsingResult {
lib/model/storage/update_legacy_settings.dart
@@ -1,6 +1,6 @@
 import 'dart:convert';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/warn_values.dart';
 import 'package:blood_pressure_app/model/export_import/column.dart';
 import 'package:blood_pressure_app/model/export_import/export_configuration.dart';
 import 'package:blood_pressure_app/model/horizontal_graph_line.dart';
lib/model/blood_pressure_analyzer.dart
@@ -1,6 +1,6 @@
 import 'dart:math';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:collection/collection.dart';
 
 class BloodPressureAnalyser {
lib/model/horizontal_graph_line.dart
@@ -1,4 +1,3 @@
-import 'package:blood_pressure_app/model/blood_pressure.dart';
 import 'package:flutter/material.dart';
 
 class HorizontalGraphLine {
lib/model/ram_only_implementations.dart
@@ -1,6 +1,7 @@
 import 'dart:collection';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:flutter/material.dart';
 
 class RamBloodPressureModel extends ChangeNotifier implements BloodPressureModel {
lib/screens/subsettings/export_import/export_button_bar.dart
@@ -2,7 +2,8 @@ import 'dart:convert';
 import 'dart:io';
 import 'dart:typed_data';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/export_import/csv_converter.dart';
 import 'package:blood_pressure_app/model/export_import/pdf_converter.dart';
 import 'package:blood_pressure_app/model/export_import/record_parsing_result.dart';
lib/screens/subsettings/warn_about_screen.dart
@@ -1,4 +1,4 @@
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/warn_values.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 import 'package:url_launcher/url_launcher.dart';
lib/screens/blood_pressure_builder.dart
@@ -1,7 +1,8 @@
 import 'dart:collection';
 
 import 'package:blood_pressure_app/components/consistent_future_builder.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/storage/intervall_store.dart';
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
lib/screens/home_screen.dart
@@ -1,5 +1,5 @@
 import 'package:blood_pressure_app/components/dialoges/add_measurement.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
 import 'package:blood_pressure_app/model/storage/intervall_store.dart';
 import 'package:blood_pressure_app/model/storage/settings_store.dart';
 import 'package:blood_pressure_app/screens/blood_pressure_builder.dart';
lib/screens/legacy_measurement_list.dart
@@ -1,7 +1,8 @@
 import 'dart:collection';
 
 import 'package:blood_pressure_app/components/dialoges/add_measurement.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/storage/intervall_store.dart';
 import 'package:blood_pressure_app/model/storage/settings_store.dart';
 import 'package:blood_pressure_app/screens/blood_pressure_builder.dart';
lib/screens/measurement_graph.dart
@@ -1,6 +1,6 @@
 import 'dart:math';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/horizontal_graph_line.dart';
 import 'package:blood_pressure_app/model/storage/intervall_store.dart';
 import 'package:blood_pressure_app/model/storage/settings_store.dart';
lib/screens/settings_screen.dart
@@ -4,7 +4,7 @@ import 'package:blood_pressure_app/components/consistent_future_builder.dart';
 import 'package:blood_pressure_app/components/dialoges/enter_timeformat.dart';
 import 'package:blood_pressure_app/components/dialoges/input_dialoge.dart';
 import 'package:blood_pressure_app/components/settings/settings_widgets.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/warn_values.dart';
 import 'package:blood_pressure_app/model/iso_lang_names.dart';
 import 'package:blood_pressure_app/model/storage/storage.dart';
 import 'package:blood_pressure_app/platform_integration/platform_client.dart';
lib/main.dart
@@ -1,5 +1,5 @@
 import 'package:blood_pressure_app/components/consistent_future_builder.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
 import 'package:blood_pressure_app/model/storage/db/config_dao.dart';
 import 'package:blood_pressure_app/model/storage/db/config_db.dart';
 import 'package:blood_pressure_app/model/storage/intervall_store.dart';
test/model/export_import/column_test.dart
@@ -1,4 +1,5 @@
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/export_import/column.dart';
 import 'package:blood_pressure_app/model/export_import/import_field_type.dart';
 import 'package:blood_pressure_app/model/export_import/record_formatter.dart';
test/model/export_import/csv_converter_test.dart
@@ -1,7 +1,8 @@
 
 import 'dart:io';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/export_import/csv_converter.dart';
 import 'package:blood_pressure_app/model/export_import/record_parsing_result.dart';
 import 'package:blood_pressure_app/model/storage/export_columns_store.dart';
test/model/export_import/pdf_converter_test.dart
@@ -1,5 +1,6 @@
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/export_import/pdf_converter.dart';
 import 'package:blood_pressure_app/model/storage/export_columns_store.dart';
 import 'package:blood_pressure_app/model/storage/export_pdf_settings_store.dart';
test/model/export_import/record_formatter_test.dart
@@ -1,6 +1,7 @@
 import 'dart:convert';
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/export_import/import_field_type.dart';
 import 'package:blood_pressure_app/model/export_import/record_formatter.dart';
 import 'package:flutter/material.dart';
test/model/analyzer_test.dart
@@ -1,5 +1,5 @@
 
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/blood_pressure_analyzer.dart';
 import 'package:flutter_test/flutter_test.dart';
 
test/model/bood_pressure_test.dart
@@ -1,4 +1,5 @@
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/ram_only_implementations.dart';
 import 'package:flutter_test/flutter_test.dart';
 import 'package:path/path.dart';
test/ui/components/add_measurement_dialoge_test.dart
@@ -1,6 +1,7 @@
 import 'package:blood_pressure_app/components/dialoges/add_measurement.dart';
 import 'package:blood_pressure_app/components/settings/color_picker_list_tile.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/storage/settings_store.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
test/ui/components/measurement_list_entry_test.dart
@@ -1,5 +1,6 @@
 import 'package:blood_pressure_app/components/measurement_list/measurement_list_entry.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/storage/settings_store.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_test/flutter_test.dart';
test/ui/navigation_test.dart
@@ -1,7 +1,7 @@
 import 'package:blood_pressure_app/components/dialoges/add_measurement.dart';
 import 'package:blood_pressure_app/components/dialoges/enter_timeformat.dart';
 import 'package:blood_pressure_app/main.dart';
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
 import 'package:blood_pressure_app/model/ram_only_implementations.dart';
 import 'package:blood_pressure_app/model/storage/db/config_dao.dart';
 import 'package:blood_pressure_app/model/storage/export_columns_store.dart';
test/ui/statistics_test.dart
@@ -1,4 +1,5 @@
-import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/blood_pressure/model.dart';
+import 'package:blood_pressure_app/model/blood_pressure/record.dart';
 import 'package:blood_pressure_app/model/ram_only_implementations.dart';
 import 'package:blood_pressure_app/model/storage/export_csv_settings_store.dart';
 import 'package:blood_pressure_app/model/storage/export_pdf_settings_store.dart';