Commit 30f8a99
Changed files (4)
lib
components
screens
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),