Commit 0961a74

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-12-22 12:29:06
add warning for exporting custom time formats
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent a28879c
Changed files (2)
lib/components/export_warn_banner.dart
@@ -1,3 +1,4 @@
+import 'package:blood_pressure_app/model/export_import/column.dart';
 import 'package:blood_pressure_app/model/export_import/export_configuration.dart';
 import 'package:blood_pressure_app/model/export_import/import_field_type.dart';
 import 'package:blood_pressure_app/model/storage/export_columns_store.dart';
@@ -51,12 +52,15 @@ class _ExportWarnBannerState extends State<ExportWarnBanner> {
           case ExportImportPreset.myHeart:
             return _buildNotExportable(context);
           case ExportImportPreset.none:
-            final exportedTypes = widget.csvExportSettings.exportFieldsConfiguration
-                .getActiveColumns(widget.availableColumns)
+            final exportedColumns = widget.csvExportSettings.exportFieldsConfiguration
+                .getActiveColumns(widget.availableColumns);
+            final exportedTypes = exportedColumns
                 .map((column) => column.restoreAbleType);
 
             if (!exportedTypes.contains(RowDataFieldType.timestamp)) return _buildNotExportable(context);
 
+            if (exportedColumns.firstWhereOrNull((e) => (e is TimeColumn)) != null) return _buildAccuracyLoss(context);
+
             final neededForFullExport = ActiveExportColumnConfiguration()
                 .getActiveColumns(widget.availableColumns)
                 .map((column) => column.restoreAbleType);
@@ -85,6 +89,12 @@ class _ExportWarnBannerState extends State<ExportWarnBanner> {
     return _banner(localizations.errNeedHeadline, localizations);
   }
 
+  /// The exported time looses accuracy.
+  Widget _buildAccuracyLoss(BuildContext context) {
+    final localizations = AppLocalizations.of(context)!;
+    return _banner(localizations.errAccuracyLoss, localizations);
+  }
+
   /// Exports made with this configuration are not fully importable.
   Widget _buildIncompleteExport(BuildContext context, Iterable<RowDataFieldType?> missingTypes) {
     final localizations = AppLocalizations.of(context)!;
lib/l10n/app_en.arb
@@ -484,5 +484,7 @@
   "recordFormat": "Record format",
   "@recordFormat": {},
   "timeFormat": "Time format",
-  "@timeFormat": {}
+  "@timeFormat": {},
+  "errAccuracyLoss": "There is precision loss expected when exporting with custom time formatters.",
+  "@errAccuracyLoss": {}
 }