Commit 30f8a99

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-12-27 16:31:17
complete medicine manager
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 2272b92
lib/components/dialoges/add_measurement_dialoge.dart
@@ -274,6 +274,7 @@ class _AddMeasurementDialogeState extends State<AddMeasurementDialoge> {
   }
 }
 
+/// Shows a dialoge to input a blood pressure measurement.
 Future<BloodPressureRecord?> showAddMeasurementDialoge(BuildContext context, Settings settings, [BloodPressureRecord? initialRecord]) =>
   showDialog<BloodPressureRecord?>(context: context, builder: (context) => Dialog.fullscreen(
     child: AddMeasurementDialoge(settings: settings, initialRecord: initialRecord,),
lib/components/dialoges/add_medication_dialoge.dart
@@ -98,6 +98,9 @@ class _AddMedicationDialogeState extends State<AddMedicationDialoge> {
   );
 }
 
+/// Shows a full screen dialoge to input a medicine.
+///
+/// The created medicine gets an index that was never in settings.
 Future<Medicine?> showAddMedicineDialoge(BuildContext context, Settings settings) =>
   showDialog<Medicine?>(context: context, builder: (context) => Dialog.fullscreen(
     child: AddMedicationDialoge(settings: settings),
lib/screens/subsettings/medicine_manager_screen.dart
@@ -19,43 +19,34 @@ class MedicineManagerScreen extends StatelessWidget {
           builder: (context, settings, child) {
             final medications = settings.medications;
             return ListView.builder(
-                itemCount: medications.length + 2,
+                itemCount: medications.length + 1,
                 itemBuilder: (context, i) {
-                  if(i == 0) { // first row
-                    return Container(
-                      padding: const EdgeInsets.all(10),
-                      child: DefaultTextStyle.merge(
-                        child: Text(localizations.medications),
-                        style: Theme.of(context).textTheme.headlineLarge
-                      ),
-                    );
-                  }
-                  if (i > medications.length) { // last row
+                  if (i == medications.length) { // last row
                     return ListTile(
                       leading: const Icon(Icons.add),
                       title: Text(localizations.addMedication),
                       onTap: () async {
                         final medicine = await showAddMedicineDialoge(context, settings);
-                        if (medicine != null) settings.addMedication(medicine);;
-                        // TODO
+                        if (medicine != null) settings.addMedication(medicine);
                       },
                     );
                   }
                   return ListTile(
-                    leading: medications[i-1].color == Colors.transparent ? null : Container(
+                    leading: medications[i].color == Colors.transparent ? null : Container(
                       width: 40.0,
                       height: 40.0,
                       decoration: BoxDecoration(
-                        color: medications[i-1].color,
+                        color: medications[i].color,
                         shape: BoxShape.circle,
                       ),
                     ),
-                    title: Text(medications[i-1].designation),
-                    subtitle: Text('${localizations.defaultDosis}: ${medications[i-1].defaultDosis?.toString()}'),
+                    title: Text(medications[i].designation),
+                    subtitle: Text('${localizations.defaultDosis}: '
+                        '${medications[i].defaultDosis?.toString()}'),
                     trailing: IconButton(
                       icon: const Icon(Icons.delete),
                       onPressed: () {
-                        settings.removeMedicationAt(i - 1);
+                        settings.removeMedicationAt(i);
                       },
                     ),
                   );
lib/screens/settings_screen.dart
@@ -150,6 +150,15 @@ class SettingsPage extends StatelessWidget {
             ]),
 
             TitledColumn(title: Text(localizations.behavior), children: [
+              ListTile(
+                onTap: () {
+                  Navigator.push(context, MaterialPageRoute(builder:
+                      (context) => const MedicineManagerScreen()));
+                },
+                leading: const Icon(Icons.medication),
+                title: Text(localizations.medications),
+                trailing: const Icon(Icons.arrow_forward_ios)
+              ),
               SwitchListTile(
                 key: const Key('allowManualTimeInput'),
                 value: settings.allowManualTimeInput,
@@ -260,24 +269,13 @@ class SettingsPage extends StatelessWidget {
                 }
               ),
               SwitchListTile(
-                  title: Text(localizations.bottomAppBars),
-                  secondary: const Icon(Icons.vertical_align_bottom),
-                  value: settings.bottomAppBars,
-                  onChanged: (value) {
-                    settings.bottomAppBars = value;
-                  }
+                title: Text(localizations.bottomAppBars),
+                secondary: const Icon(Icons.vertical_align_bottom),
+                value: settings.bottomAppBars,
+                onChanged: (value) {
+                  settings.bottomAppBars = value;
+                }
               ),
-              ListTile(
-                onTap: () {
-                  Navigator.push(
-                    context,
-                    MaterialPageRoute(builder: (context) => const MedicineManagerScreen()),
-                  );
-                },
-                leading: const Icon(Icons.medication),
-                title: Text(localizations.medications), // TODO
-                trailing: const Icon(Icons.arrow_forward_ios)
-              )
             ]),
             TitledColumn(
               title: Text(localizations.data),