Commit 6d3e7b6
Changed files (3)
lib
model
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}}')