Commit b8d059b
Changed files (6)
lib/model/export_import/export_configuration.dart
@@ -43,7 +43,6 @@ class ActiveExportColumnConfiguration extends ChangeNotifier {
_activePreset = value;
notifyListeners();
}
- // TODO: put in CsvExportSettings, PdfExportSettings
/// Columns to respect for export.
UnmodifiableListView<ExportColumn> getActiveColumns(ExportColumnsManager availableColumns) => UnmodifiableListView(
lib/model/storage/common_settings_interfaces.dart
@@ -1,10 +1,11 @@
+import 'package:blood_pressure_app/model/export_import/export_configuration.dart';
import 'package:blood_pressure_app/model/storage/export_csv_settings_store.dart';
import 'package:blood_pressure_app/model/storage/export_pdf_settings_store.dart';
/// Common fields that are present in both [CsvExportSettings] and [PdfExportSettings].
abstract class CustomFieldsSettings {
- bool get exportCustomFields;
- set exportCustomFields(bool value);
- List<String> get customFields;
- set customFields(List<String> value);
+ /// Active export columns.
+ ///
+ /// Implementers must propagate any notifyListener calls.
+ ActiveExportColumnConfiguration get exportFieldsConfiguration;
}
\ No newline at end of file
lib/model/storage/export_csv_settings_store.dart
@@ -1,6 +1,6 @@
import 'dart:convert';
-import 'package:blood_pressure_app/model/export_options.dart';
+import 'package:blood_pressure_app/model/export_import/export_configuration.dart';
import 'package:blood_pressure_app/model/storage/common_settings_interfaces.dart';
import 'package:blood_pressure_app/model/storage/convert_util.dart';
import 'package:flutter/material.dart';
@@ -11,22 +11,22 @@ class CsvExportSettings extends ChangeNotifier implements CustomFieldsSettings {
String? fieldDelimiter,
String? textDelimiter,
bool? exportHeadline,
- bool? exportCustomFields,
- List<String>? customFields,
+ ActiveExportColumnConfiguration? exportFieldsConfiguration,
}) {
if (fieldDelimiter != null) _fieldDelimiter = fieldDelimiter;
if (textDelimiter != null) _textDelimiter = textDelimiter;
if (exportHeadline != null) _exportHeadline = exportHeadline;
- if (exportCustomFields != null) _exportCustomFields = exportCustomFields;
- if (customFields != null) _customFields = customFields;
+ if (exportFieldsConfiguration != null) _exportFieldsConfiguration = exportFieldsConfiguration;
+
+ _exportFieldsConfiguration.addListener(() => notifyListeners());
}
factory CsvExportSettings.fromMap(Map<String, dynamic> map) => CsvExportSettings(
fieldDelimiter: ConvertUtil.parseString(map['fieldDelimiter']),
textDelimiter: ConvertUtil.parseString(map['textDelimiter']),
exportHeadline: ConvertUtil.parseBool(map['exportHeadline']),
- exportCustomFields: ConvertUtil.parseBool(map['exportCustomFields']),
- customFields: ConvertUtil.parseList<String>(map['customFields']),
+ exportFieldsConfiguration: ActiveExportColumnConfiguration.fromJson(map['exportCustomFields']),
+ // TODO: migrate exportCustomFields and customFields before release
);
factory CsvExportSettings.fromJson(String json) {
@@ -41,8 +41,7 @@ class CsvExportSettings extends ChangeNotifier implements CustomFieldsSettings {
'fieldDelimiter': fieldDelimiter,
'textDelimiter': textDelimiter,
'exportHeadline': exportHeadline,
- 'exportCustomFields': exportCustomFields,
- 'customFields': customFields,
+ 'exportFieldsConfiguration': exportFieldsConfiguration.toJson()
};
String toJson() => jsonEncode(toMap());
@@ -68,23 +67,9 @@ class CsvExportSettings extends ChangeNotifier implements CustomFieldsSettings {
notifyListeners();
}
- bool _exportCustomFields = false;
- @override
- bool get exportCustomFields => _exportCustomFields;
+ ActiveExportColumnConfiguration _exportFieldsConfiguration = ActiveExportColumnConfiguration();
@override
- set exportCustomFields(bool value) {
- _exportCustomFields = value;
- notifyListeners();
- }
-
- List<String> _customFields = ExportFields.defaultCsv;
- @override
- List<String> get customFields => _customFields;
- @override
- set customFields(List<String> value) {
- _customFields = value;
- notifyListeners();
- }
+ ActiveExportColumnConfiguration get exportFieldsConfiguration => _exportFieldsConfiguration;
// Procedure for adding more entries described in the settings_store.dart doc comment
}
\ No newline at end of file
lib/model/storage/export_pdf_settings_store.dart
@@ -1,6 +1,6 @@
import 'dart:convert';
-import 'package:blood_pressure_app/model/export_options.dart';
+import 'package:blood_pressure_app/model/export_import/export_configuration.dart';
import 'package:blood_pressure_app/model/storage/common_settings_interfaces.dart';
import 'package:blood_pressure_app/model/storage/convert_util.dart';
import 'package:flutter/material.dart';
@@ -11,12 +11,11 @@ class PdfExportSettings extends ChangeNotifier implements CustomFieldsSettings {
bool? exportTitle,
bool? exportStatistics,
bool? exportData,
- bool? exportCustomFields,
double? headerHeight,
double? cellHeight,
double? headerFontSize,
double? cellFontSize,
- List<String>? customFields,
+ ActiveExportColumnConfiguration? exportFieldsConfiguration,
}) {
if (exportTitle != null) _exportTitle = exportTitle;
if (exportStatistics != null) _exportStatistics = exportStatistics;
@@ -25,8 +24,7 @@ class PdfExportSettings extends ChangeNotifier implements CustomFieldsSettings {
if (cellHeight != null) _cellHeight = cellHeight;
if (headerFontSize != null) _headerFontSize = headerFontSize;
if (cellFontSize != null) _cellFontSize = cellFontSize;
- if (exportCustomFields != null) _exportCustomFields = exportCustomFields;
- if (customFields != null) _customFields = customFields;
+ if (exportFieldsConfiguration != null) _exportFieldsConfiguration = exportFieldsConfiguration;
}
factory PdfExportSettings.fromMap(Map<String, dynamic> map) => PdfExportSettings(
@@ -37,8 +35,8 @@ class PdfExportSettings extends ChangeNotifier implements CustomFieldsSettings {
cellHeight: ConvertUtil.parseDouble(map['cellHeight']),
headerFontSize: ConvertUtil.parseDouble(map['headerFontSize']),
cellFontSize: ConvertUtil.parseDouble(map['cellFontSize']),
- exportCustomFields: ConvertUtil.parseBool(map['exportCustomFields']),
- customFields: ConvertUtil.parseList<String>(map['customFields']),
+ exportFieldsConfiguration: ActiveExportColumnConfiguration.fromJson(map['exportFieldsConfiguration']),
+ // TODO: migrate exportCustomFields and customFields before release
);
factory PdfExportSettings.fromJson(String json) {
@@ -57,8 +55,7 @@ class PdfExportSettings extends ChangeNotifier implements CustomFieldsSettings {
'cellHeight': cellHeight,
'headerFontSize': headerFontSize,
'cellFontSize': cellFontSize,
- 'exportCustomFields': exportCustomFields,
- 'customFields': customFields,
+ 'exportFieldsConfiguration': exportFieldsConfiguration.toJson()
};
String toJson() => jsonEncode(toMap());
@@ -112,23 +109,10 @@ class PdfExportSettings extends ChangeNotifier implements CustomFieldsSettings {
notifyListeners();
}
- bool _exportCustomFields = false;
+ ActiveExportColumnConfiguration _exportFieldsConfiguration = ActiveExportColumnConfiguration();
@override
- bool get exportCustomFields => _exportCustomFields;
- @override
- set exportCustomFields(bool value) {
- _exportCustomFields = value;
- notifyListeners();
- }
-
- List<String> _customFields = ExportFields.defaultPdf;
- @override
- List<String> get customFields => _customFields;
- @override
- set customFields(List<String> value) {
- _customFields = value;
- notifyListeners();
- }
+ // TODO: implement exportFieldsConfiguration
+ ActiveExportColumnConfiguration get exportFieldsConfiguration => _exportFieldsConfiguration;
// Procedure for adding more entries described in the settings_store.dart doc comment
}
\ No newline at end of file
lib/model/storage/update_legacy_settings.dart
@@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/export_import/export_configuration.dart';
import 'package:blood_pressure_app/model/horizontal_graph_line.dart';
import 'package:blood_pressure_app/model/storage/convert_util.dart';
import 'package:blood_pressure_app/model/storage/export_csv_settings_store.dart';
@@ -36,11 +37,12 @@ Future<void> updateLegacySettings(Settings settings, ExportSettings exportSettin
await sharedPreferences.remove(key);
break;
case 'exportCustomEntries':
- csvExportSettings.exportCustomFields = sharedPreferences.getBool(key)!;
+ csvExportSettings.exportFieldsConfiguration.activePreset =
+ sharedPreferences.getBool(key)! ? ExportImportPreset.none : ExportImportPreset.bloodPressureApp;
await sharedPreferences.remove(key);
break;
case 'exportItems':
- csvExportSettings.customFields = sharedPreferences.getStringList(key)!;
+ //csvExportSettings.customFields = sharedPreferences.getStringList(key)!; TODO: update
await sharedPreferences.remove(key);
break;
case 'darkMode':
@@ -110,10 +112,11 @@ Future<void> updateLegacySettings(Settings settings, ExportSettings exportSettin
case 'exportMimeType':
break;
case 'exportCustomEntriesCsv':
- csvExportSettings.exportCustomFields = sharedPreferences.getBool(key)!;
+ csvExportSettings.exportFieldsConfiguration.activePreset =
+ sharedPreferences.getBool(key)! ? ExportImportPreset.none : ExportImportPreset.bloodPressureApp;
break;
case 'exportItemsCsv':
- csvExportSettings.customFields = sharedPreferences.getStringList(key)!;
+ // csvExportSettings.customFields = sharedPreferences.getStringList(key)!;TODO: update
break;
case 'exportCsvHeadline':
csvExportSettings.exportHeadline = sharedPreferences.getBool(key)!;
@@ -160,10 +163,12 @@ Future<void> updateLegacySettings(Settings settings, ExportSettings exportSettin
settings.startWithAddMeasurementPage = sharedPreferences.getBool(key)!;
break;
case 'exportCustomEntriesPdf':
- pdfExportSettings.exportCustomFields = sharedPreferences.getBool(key)!;
+ pdfExportSettings.exportFieldsConfiguration.activePreset =
+ sharedPreferences.getBool(key)!
+ ? ExportImportPreset.none : ExportImportPreset.bloodPressureApp;
break;
case 'exportItemsPdf':
- pdfExportSettings.customFields = sharedPreferences.getStringList(key)!;
+ // pdfExportSettings.customFields = sharedPreferences.getStringList(key)!; TODO: update
break;
case 'horizontalGraphLines':
settings.horizontalGraphLines = sharedPreferences.getStringList(key)!.map((e) =>
lib/model/export_options.dart
@@ -47,18 +47,9 @@ class ExportConfigurationModel {
/// Determines which export columns should be used.
///
/// The [fieldSettings] parameter describes the settings of the current export format and should be set accordingly.
+ @Deprecated('not implemented anymore')
List<ExportColumn> getActiveExportColumns(ExportFormat format, CustomFieldsSettings fieldsSettings) {
- switch (format) {
- case ExportFormat.csv:
- final fields = (fieldsSettings.exportCustomFields) ? fieldsSettings.customFields : ExportFields.defaultCsv;
- return availableFormats.where((e) => fields.contains(e.internalName)).toList();
- case ExportFormat.pdf:
- final fields = (fieldsSettings.exportCustomFields) ? fieldsSettings.customFields : ExportFields.defaultPdf;
- return availableFormats.where((e) => fields.contains(e.internalName)).toList();
- case ExportFormat.db:
- // Export formats don't work on this one
- return [];
- }
+ return [];
}
List<ExportColumn> getDefaultFormates() => [