Commit a0f38bd
Changed files (2)
app
lib
components
dialoges
model
app/lib/components/dialoges/add_measurement_dialoge.dart
@@ -81,8 +81,6 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
/// Prefilled with default dosis of selected medicine.
double? medicineDosis;
- late Settings settings;
-
@override
void initState() {
super.initState();
@@ -92,8 +90,6 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
noteController = TextEditingController();
_loadFields(widget.initialRecord);
- settings = context.watch<Settings>();
-
sysFocusNode.requestFocus();
ServicesBinding.instance.keyboard.addHandler(_onKey);
}
@@ -116,6 +112,7 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
/// Sets fields to values in a [record].
void _loadFields(FullEntry? entry) {
+ final settings = context.read<Settings>();
time = entry?.time ?? DateTime.now();
final int? colorValue = entry?.color;
final sysValue = switch(settings.preferredPressureUnit) {
@@ -148,7 +145,7 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
}
/// Build a input for values in the measurement form (sys, dia, pul).
- Widget _buildValueInput(AppLocalizations localizations, {
+ Widget _buildValueInput(AppLocalizations localizations, Settings settings, {
String? labelText,
void Function(String?)? onSaved,
FocusNode? focusNode,
@@ -200,6 +197,7 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
@override
Widget build(BuildContext context) {
final localizations = AppLocalizations.of(context)!;
+ final settings = context.watch<Settings>();
return FullscreenDialoge(
onActionButtonPressed: () {
BloodPressureRecord? record;
@@ -284,7 +282,7 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
Row(
mainAxisSize: MainAxisSize.min,
children: [
- _buildValueInput(localizations,
+ _buildValueInput(localizations, settings,
focusNode: sysFocusNode,
labelText: localizations.sysLong,
controller: sysController,
@@ -292,7 +290,7 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
setState(() => systolic = int.tryParse(value ?? '')),
),
const SizedBox(width: 16,),
- _buildValueInput(localizations,
+ _buildValueInput(localizations, settings,
labelText: localizations.diaLong,
controller: diaController,
onSaved: (value) =>
@@ -309,7 +307,7 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
},
),
const SizedBox(width: 16,),
- _buildValueInput(localizations,
+ _buildValueInput(localizations, settings,
labelText: localizations.pulLong,
controller: pulController,
focusNode: pulFocusNode,
app/lib/model/entry_context.dart
@@ -27,6 +27,18 @@ extension EntryUtils on BuildContext {
initial,
);
if (entry != null) {
+ if (initial != null) {
+ if ((initial.sys != null || initial.dia != null || initial.pul != null)) {
+ await recordRepo.remove(initial.$1);
+ }
+ if ((initial.note != null || initial.color != null)) {
+ await noteRepo.remove(initial.$2);
+ }
+ for (final intake in initial.$3) {
+ await intakeRepo.remove(intake);
+ }
+ }
+
if (entry.sys != null || entry.dia != null || entry.pul != null) {
await recordRepo.add(entry.$1);
}