Commit 6be0d67
Changed files (4)
lib
components
screens
subsettings
test
lib/components/export_item_order.dart
@@ -1,16 +1,10 @@
import 'dart:async';
-import 'package:badges/badges.dart' as badges;
-import 'package:blood_pressure_app/components/consistent_future_builder.dart';
-import 'package:blood_pressure_app/model/export_import/legacy_column.dart';
-import 'package:blood_pressure_app/model/export_options.dart';
-import 'package:blood_pressure_app/model/storage/storage.dart';
-import 'package:blood_pressure_app/screens/subsettings/export_column_data.dart';
+import 'package:blood_pressure_app/model/export_import/column.dart';
import 'package:flutter/material.dart';
-import 'package:flutter_gen/gen_l10n/app_localizations.dart';
-import 'package:provider/provider.dart';
+@Deprecated("TODO: repalace")
class ExportItemsCustomizer extends StatefulWidget {
final List<ExportColumn> shownItems;
final List<ExportColumn> disabledItems;
@@ -25,21 +19,17 @@ class ExportItemsCustomizer extends StatefulWidget {
class _ExportItemsCustomizerState extends State<ExportItemsCustomizer> {
@override
- Widget build(BuildContext context) {
- return ConsistentFutureBuilder(
- future: ExportConfigurationModel.get(AppLocalizations.of(context)!),
- cacheFuture: true,
- onData: (BuildContext context, ExportConfigurationModel result) {
- return _buildAddItemBadge(context, result,
- child: _buildManagePresetsBadge(context, result,
- child:_buildList(context, result)
- )
- );
- },
- );
- }
+ Widget build(BuildContext context) => Text('TODO - ExportItemsCustomizer');
+/* => Consumer<ExportColumnsManager>(
+ builder: (context, manager, child) => _buildAddItemBadge(context,
+ child: _buildManagePresetsBadge(context, manager,
+ child: _buildList(context, manager)
+ )
+ )
+ );
- Container _buildList(BuildContext context, ExportConfigurationModel exportConfigModel) {
+
+ Container _buildList(BuildContext context, ExportColumnsManager manager) {
return Container(
margin: const EdgeInsets.all(25),
padding: const EdgeInsets.all(20),
@@ -53,7 +43,7 @@ class _ExportItemsCustomizerState extends State<ExportItemsCustomizer> {
shrinkWrap: true,
onReorder: _onReorderList,
children: <Widget>[
- for (int i = 0; i < widget.shownItems.length; i += 1)
+ for (int i = 0; i < manger.shownItems.length; i += 1)
ListTile(
key: Key('l_${widget.shownItems[i].internalName}'),
title: Text(widget.shownItems[i].columnTitle),
@@ -77,7 +67,7 @@ class _ExportItemsCustomizerState extends State<ExportItemsCustomizer> {
);
}
- Widget _buildAddItemBadge(BuildContext context, ExportConfigurationModel result, {required Widget child}) {
+ Widget _buildAddItemBadge(BuildContext context, {required Widget child}) {
return badges.Badge(
badgeStyle: badges.BadgeStyle(
badgeColor: Theme.of(context).colorScheme.background,
@@ -101,7 +91,7 @@ class _ExportItemsCustomizerState extends State<ExportItemsCustomizer> {
);
}
- Widget _buildManagePresetsBadge(BuildContext context, ExportConfigurationModel result, {required Widget child}) {
+ Widget _buildManagePresetsBadge(BuildContext context, ExportColumnsManager manager, {required Widget child}) {
final exportConfigurations = result.exportConfigurations;
return badges.Badge(
position: badges.BadgePosition.topEnd(top: 3, end: 3),
@@ -232,4 +222,6 @@ class _ExportItemsCustomizerState extends State<ExportItemsCustomizer> {
widget.onReorder(widget.shownItems, widget.disabledItems);
}
+
+ */
}
lib/screens/subsettings/export_import_screen.dart
@@ -1,10 +1,10 @@
import 'package:blood_pressure_app/components/consistent_future_builder.dart';
import 'package:blood_pressure_app/components/diabled.dart';
import 'package:blood_pressure_app/components/display_interval_picker.dart';
-import 'package:blood_pressure_app/components/export_item_order.dart';
import 'package:blood_pressure_app/components/settings/settings_widgets.dart';
import 'package:blood_pressure_app/model/blood_pressure.dart';
import 'package:blood_pressure_app/model/export_import.dart';
+import 'package:blood_pressure_app/model/export_import/export_configuration.dart';
import 'package:blood_pressure_app/model/export_import/legacy_column.dart';
import 'package:blood_pressure_app/model/export_options.dart';
import 'package:blood_pressure_app/model/storage/storage.dart';
@@ -184,6 +184,8 @@ class ExportFieldCustomisationSetting extends StatelessWidget {
future: ExportConfigurationModel.get(localizations),
lastChildWhileWaiting: true,
onData: (context, configurationModel) {
+ return const Text('TODO - ExportFieldCustomisationSetting');
+ /* TODO: rewrite with dropdown and reorderable list view, consider extracting this class into file
return Consumer<ExportSettings>(builder: (context, settings, child) {
final formats = configurationModel.availableFormats.toSet();
List<ExportColumn> activeFields = configurationModel
@@ -214,6 +216,7 @@ class ExportFieldCustomisationSetting extends StatelessWidget {
],
);
});
+ */
}
);
}
@@ -293,9 +296,10 @@ class _ExportWarnBannerState extends State<ExportWarnBanner> {
if (ExportFormat.db == exportSettings.exportFormat) {
// When exporting as database no wrong configuration is possible
} else if (_showWarnBanner && _isExportable(exportSettings, csvExportSettings,
- fieldSettings.exportCustomFields, missingAttributes)) {
+ fieldSettings.exportFieldsConfiguration, missingAttributes)) {
message = localizations.exportWarnConfigNotImportable;
- } else if (_showWarnBanner && fieldSettings.exportCustomFields && missingAttributes.isNotEmpty) {
+ } else if (_showWarnBanner &&
+ fieldSettings.exportFieldsConfiguration.activePreset != ExportImportPreset.bloodPressureApp && missingAttributes.isNotEmpty) {
message = localizations.exportWarnNotEveryFieldExported(
missingAttributes.length, missingAttributes.map((e) => e.localize(localizations)).join(', '));
}
@@ -321,10 +325,10 @@ class _ExportWarnBannerState extends State<ExportWarnBanner> {
}
}
-bool _isExportable(ExportSettings exportSettings, CsvExportSettings csvExportSettings, bool exportCustomEntries, Set<RowDataFieldType> missingAttributes) {
+bool _isExportable(ExportSettings exportSettings, CsvExportSettings csvExportSettings, ActiveExportColumnConfiguration exportConfig, Set<RowDataFieldType> missingAttributes) {
return ((ExportFormat.pdf == exportSettings.exportFormat) ||
csvExportSettings.exportHeadline == false ||
- exportCustomEntries &&
+ // exportCustomEntries && TODO: replace or rewrite method?
missingAttributes.contains(RowDataFieldType.timestamp) ||
![',', '|'].contains(csvExportSettings.fieldDelimiter) ||
!['"', '\''].contains(csvExportSettings.textDelimiter));
test/model/json_serialization_test.dart
@@ -1,4 +1,5 @@
+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/export_csv_settings_store.dart';
import 'package:blood_pressure_app/model/storage/export_pdf_settings_store.dart';
@@ -180,16 +181,17 @@ void main() {
fieldDelimiter: 'asdfghjklö',
textDelimiter: 'asdfghjklö2',
exportHeadline: false,
- exportCustomFields: true,
- customFields: ['test1', 'test2'],
+ exportFieldsConfiguration: ActiveExportColumnConfiguration(
+ activePreset: ExportImportPreset.myHeart,
+ userSelectedColumnIds: ['a', 'b', 'c'],
+ ),
);
final fromJson = CsvExportSettings.fromJson(initial.toJson());
expect(initial.fieldDelimiter, fromJson.fieldDelimiter);
expect(initial.textDelimiter, fromJson.textDelimiter);
expect(initial.exportHeadline, fromJson.exportHeadline);
- expect(initial.exportCustomFields, fromJson.exportCustomFields);
- expect(initial.customFields, fromJson.customFields);
+ expect(initial.exportFieldsConfiguration.toJson(), fromJson.exportFieldsConfiguration.toJson());
expect(initial.toJson(), fromJson.toJson());
});
@@ -210,8 +212,7 @@ void main() {
expect(v1.fieldDelimiter, CsvExportSettings().fieldDelimiter);
expect(v2.exportHeadline, CsvExportSettings().exportHeadline);
expect(v3.textDelimiter, CsvExportSettings().textDelimiter);
- expect(v3.exportCustomFields, CsvExportSettings().exportCustomFields);
- expect(v3.customFields, CsvExportSettings().customFields);
+ expect(v3.exportFieldsConfiguration.toJson(), CsvExportSettings().exportFieldsConfiguration.toJson());
});
});
@@ -225,8 +226,10 @@ void main() {
cellHeight: 67.89,
headerFontSize: 67.89,
cellFontSize: 67.89,
- exportCustomFields: true,
- customFields: ['test1', 'test2'],
+ exportFieldsConfiguration: ActiveExportColumnConfiguration(
+ activePreset: ExportImportPreset.myHeart,
+ userSelectedColumnIds: ['a', 'b', 'c'],
+ ),
);
final fromJson = PdfExportSettings.fromJson(initial.toJson());
@@ -237,8 +240,7 @@ void main() {
expect(initial.cellHeight, fromJson.cellHeight);
expect(initial.headerFontSize, fromJson.headerFontSize);
expect(initial.cellFontSize, fromJson.cellFontSize);
- expect(initial.exportCustomFields, fromJson.exportCustomFields);
- expect(initial.customFields, fromJson.customFields);
+ expect(initial.exportFieldsConfiguration.toJson(), fromJson.exportFieldsConfiguration.toJson());
expect(initial.toJson(), fromJson.toJson());
});