Commit 6d3e7b6

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-12-11 16:52:42
fix default export columns value duplication
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 8c2c0fa
Changed files (3)
lib/model/export_import/column.dart
@@ -14,7 +14,15 @@ class NativeColumn extends ExportColumn {
   ///
   /// They are all part of [ExportImportPreset.bloodPressureApp].
   static final List<NativeColumn> allColumns = [
-    NativeColumn._create(
+    timestampUnixMs,
+    systolic,
+    diastolic,
+    pulse,
+    notes,
+    color,
+    needlePin,
+  ];
+  static final NativeColumn timestampUnixMs = NativeColumn._create(
       'timestampUnixMs',
       RowDataFieldType.timestamp,
           (record) => record.creationTime.millisecondsSinceEpoch.toString(),
@@ -22,46 +30,46 @@ class NativeColumn extends ExportColumn {
         final value = int.tryParse(pattern);
         return (value == null) ? null : DateTime.fromMillisecondsSinceEpoch(value);
       }
-    ),
-    NativeColumn._create(
+    );
+    static final NativeColumn systolic = NativeColumn._create(
       'systolic',
       RowDataFieldType.sys,
       (record) => record.systolic.toString(),
       (pattern) => int.tryParse(pattern)
-    ),
-    NativeColumn._create(
+    );
+    static final NativeColumn diastolic = NativeColumn._create(
       'diastolic',
       RowDataFieldType.dia,
       (record) => record.diastolic.toString(),
       (pattern) => int.tryParse(pattern)
-    ),
-    NativeColumn._create(
+    );
+    static final NativeColumn pulse = NativeColumn._create(
       'pulse',
       RowDataFieldType.pul,
       (record) => record.pulse.toString(),
       (pattern) => int.tryParse(pattern)
-    ),
-    NativeColumn._create(
+    );
+    static final NativeColumn notes = NativeColumn._create(
       'notes',
       RowDataFieldType.notes,
       (record) => record.notes,
       (pattern) => pattern
-    ),
-    NativeColumn._create(
+    );
+    static final NativeColumn color = NativeColumn._create(
       'color',
       RowDataFieldType.needlePin,
-          (record) => record.needlePin?.color.value.toString() ?? '',
-          (pattern) {
+      (record) => record.needlePin?.color.value.toString() ?? '',
+      (pattern) {
         final value = int.tryParse(pattern);
         if (value == null) return null;
         return MeasurementNeedlePin(Color(value));
       }
-    ),
-    NativeColumn._create(
+    );
+    static final NativeColumn needlePin = NativeColumn._create(
       'needlePin',
       RowDataFieldType.needlePin,
-          (record) => jsonEncode(record.needlePin?.toJson()),
-          (pattern) {
+      (record) => jsonEncode(record.needlePin?.toJson()),
+      (pattern) {
         final json = jsonDecode(pattern);
         if (json is! Map<String, dynamic>) return null;
         try {
@@ -70,8 +78,8 @@ class NativeColumn extends ExportColumn {
           return null;
         }
       }
-    )
-  ];
+    );
+
   
   final String _csvTitle;
   final RowDataFieldType _restoreableType;
lib/model/export_import/export_configuration.dart
@@ -8,8 +8,6 @@ import 'package:flutter/widgets.dart';
 import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 
 /// Class for managing columns currently used for ex- and import.
-///
-/// TODO: implement methods for modifying columns once UI code requires it
 class ActiveExportColumnConfiguration extends ChangeNotifier {
   /// Create a manager of the currently relevant [ExportColumn]s.
   ActiveExportColumnConfiguration({
@@ -73,7 +71,14 @@ class ActiveExportColumnConfiguration extends ChangeNotifier {
   UnmodifiableListView<ExportColumn> getActiveColumns(ExportColumnsManager availableColumns) => UnmodifiableListView(
     switch (_activePreset) {
       ExportImportPreset.none => _userSelectedColumns.map((e) => availableColumns.getColumn(e)).whereNotNull(),
-      ExportImportPreset.bloodPressureApp => NativeColumn.allColumns, // FIXME: not color AND needlePin
+      ExportImportPreset.bloodPressureApp => [
+        NativeColumn.timestampUnixMs,
+        NativeColumn.systolic,
+        NativeColumn.diastolic,
+        NativeColumn.pulse,
+        NativeColumn.notes,
+        NativeColumn.needlePin,
+      ],
       ExportImportPreset.myHeart => [
         BuildInColumn.mhDate,
         BuildInColumn.mhSys,
lib/model/export_import/legacy_column.dart
@@ -4,7 +4,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 
 /// Convert [BloodPressureRecord]s from and to strings and provide metadata about the conversion.
 @Deprecated("repaced by class in column.dart")
-class LegacyExportColumn { // TODO: change this class so it implements the interface.
+class LegacyExportColumn { // TODO: delete
   /// Create object that turns data into strings.
   ///
   /// Example: ExportColumn(internalColumnName: 'pulsePressure', columnTitle: 'Pulse pressure', formatPattern: '{{$SYS-$DIA}}')