Commit ea253ea
Changed files (3)
lib
lib/l10n/app_en.arb
@@ -110,6 +110,14 @@
"import": "IMPORT",
"sourceCode": "source code",
"licenses": "3rd party licenses",
+ "importSuccess": "Successfully imported {count} entries",
+ "@importSuccess": {
+ "placeholders": {
+ "count": {
+ "type": "int"
+ }
+ }
+ },
"statistics": "Statistics",
"measurementCount": "Measurement count",
lib/model/export_import.dart
@@ -74,9 +74,6 @@ class DataExporter {
String fileContents = utf8.decode(data.toList());
final converter = CsvToListConverter(fieldDelimiter: settings.csvFieldDelimiter, textDelimiter: settings.csvTextDelimiter);
final csvLines = converter.convert(fileContents);
- if (csvLines.length <= 1) {
- throw const FormatException('empty file');
- }
final attributes = csvLines.removeAt(0);
var creationTimePos = -1;
var sysPos = -1;
@@ -119,9 +116,6 @@ class DataExporter {
)
);
}
- // TODO: maybe use customized fields if no header is present?
- // requires changes in screen class
-
return records;
}
}
lib/screens/subsettings/export_import_screen.dart
@@ -206,13 +206,11 @@ class ExportImportScreen extends StatelessWidget {
content: Text(AppLocalizations.of(context)!.errNeedHeadline)));
}
- // TODO: import from here
-
-
var result = await FilePicker.platform.pickFiles(
allowMultiple: false,
withData: true,
);
+ if (!context.mounted) return;
if (result == null) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(AppLocalizations.of(context)!.errNoFileOpened)));
@@ -224,7 +222,15 @@ class ExportImportScreen extends StatelessWidget {
content: Text(AppLocalizations.of(context)!.errCantReadFile)));
return;
}
- DataExporter(settings).parseCSVFile(binaryContent);
+
+ var fileContents = DataExporter(settings).parseCSVFile(binaryContent);
+ ScaffoldMessenger.of(context).showSnackBar(SnackBar(
+ content: Text(AppLocalizations.of(context)!.importSuccess(fileContents.length))));
+ var model = Provider.of<BloodPressureModel>(context, listen: false);
+ for (final e in fileContents) {
+ model.add(e);
+ }
+
},
)
),