Commit d6301bf

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-12-29 13:58:24
store added intakes.
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 5a568f8
Changed files (4)
lib/components/dialoges/add_measurement_dialoge.dart
@@ -13,7 +13,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 import 'package:intl/intl.dart';
 
 /// Input mask for entering measurements.
-class AddEntryDialoge extends StatefulWidget {
+class AddEntryDialoge extends StatefulWidget { // TODO block medicine intake on edit
   /// Create a input mask for entering measurements.
   /// 
   /// This is usually created through the [showAddEntryDialoge] function.
@@ -300,7 +300,7 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
                     Expanded(
                       child: ListTile(
                         shape: buildListTileBorder(),
-                        title: DropdownButton( // TODO medicine intake
+                        title: DropdownButton(
                           isExpanded: true,
                           value: widget.settings.medications
                               .where((e) => e.id == medicineId).firstOrNull,
@@ -328,7 +328,6 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
                               }
                               Material.of(context).markNeedsPaint();
                             });
-                            // TODO
                           }
                         ),
                       ),
lib/components/measurement_list/measurement_list_entry.dart
@@ -1,4 +1,5 @@
 import 'package:blood_pressure_app/components/dialoges/add_measurement_dialoge.dart';
+import 'package:blood_pressure_app/model/blood_pressure/medicine/intake_history.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';
@@ -33,6 +34,7 @@ class MeasurementListRow extends StatelessWidget {
               IconButton(
                 onPressed: () async {
                   final model = Provider.of<BloodPressureModel>(context, listen: false);
+                  final intakes = Provider.of<IntakeHistory>(context, listen: false);
                   final entry = await showAddEntryDialoge(context,
                       Provider.of<Settings>(context, listen: false));
                   if (entry?.$1 != null) {
@@ -43,7 +45,7 @@ class MeasurementListRow extends StatelessWidget {
                     }
                   }
                   if (entry?.$2 != null) {
-                    // TODO: save medicine intake
+                    intakes.addIntake(entry!.$2!);
                   }
                 },
                 icon: const Icon(Icons.edit),
lib/screens/elements/legacy_measurement_list.dart
@@ -1,6 +1,7 @@
 import 'dart:collection';
 
 import 'package:blood_pressure_app/components/dialoges/add_measurement_dialoge.dart';
+import 'package:blood_pressure_app/model/blood_pressure/medicine/intake_history.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';
@@ -82,6 +83,7 @@ class LegacyMeasurementsList extends StatelessWidget {
                             key: Key(data[index].creationTime.toIso8601String()),
                             confirmDismiss: (direction) async {
                               final model = Provider.of<BloodPressureModel>(context, listen: false);
+                              final intakes = Provider.of<IntakeHistory>(context, listen: false);
                               if (direction == DismissDirection.startToEnd) { // edit
                                 final model = Provider.of<BloodPressureModel>(context, listen: false);
                                 final entry = await showAddEntryDialoge(context,
@@ -94,7 +96,7 @@ class LegacyMeasurementsList extends StatelessWidget {
                                   }
                                 }
                                 if (entry?.$2 != null) {
-                                  // TODO: save medicine intake
+                                  intakes.addIntake(entry!.$2!);
                                 }
                                 return false;
                               } else { // delete
lib/screens/home_screen.dart
@@ -1,4 +1,5 @@
 import 'package:blood_pressure_app/components/dialoges/add_measurement_dialoge.dart';
+import 'package:blood_pressure_app/model/blood_pressure/medicine/intake_history.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';
@@ -29,6 +30,7 @@ class AppHome extends StatelessWidget {
       if (Provider.of<Settings>(context, listen: false).startWithAddMeasurementPage) {
         SchedulerBinding.instance.addPostFrameCallback((_) async {
           final model = Provider.of<BloodPressureModel>(context, listen: false);
+          final intakes = Provider.of<IntakeHistory>(context, listen: false);
           final measurement = await showAddEntryDialoge(context, Provider.of<Settings>(context, listen: false));
           if (measurement == null) return;
           if (measurement.$1 != null) {
@@ -39,7 +41,7 @@ class AppHome extends StatelessWidget {
             }
           }
           if (measurement.$2 != null) {
-            // TODO: save medicine intake
+            intakes.addIntake(measurement.$2!);
           }
         });
       }
@@ -99,6 +101,7 @@ class AppHome extends StatelessWidget {
                       autofocus: true,
                       onPressed: () async {
                         final model = Provider.of<BloodPressureModel>(context, listen: false);
+                        final intakes = Provider.of<IntakeHistory>(context, listen: false);
                         final measurement = await showAddEntryDialoge(context, Provider.of<Settings>(context, listen: false));
                         if (measurement == null) return;
                         if (measurement.$1 != null) {
@@ -109,7 +112,7 @@ class AppHome extends StatelessWidget {
                           }
                         }
                         if (measurement.$2 != null) {
-                          // TODO: save medicine intake
+                          intakes.addIntake(measurement.$2!);
                         }
                       },
                       child: const Icon(Icons.add,),