Commit 35983a1
Changed files (5)
lib
screens
subsettings
lib/l10n/app_de.arb
@@ -82,6 +82,8 @@
"exportLimitDataRange": "Datenbereich einschränken",
"exportInterval": "Datenbereich",
"exportFormat": "Exportformat",
+ "exportCustomEntries": "Eigene Felder",
+ "addEntry": "Feld hinzufügen",
"exportMimeType": "Export MIME typ",
"csv": "CSV",
"pdf": "PDF",
lib/l10n/app_en.arb
@@ -82,6 +82,8 @@
"exportLimitDataRange": "limit data range",
"exportInterval": "data range",
"exportFormat": "export format",
+ "exportCustomEntries": "customize fields",
+ "addEntry": "Feld hinzufügen",
"exportMimeType": "export MIME type",
"exportMimeTypeDesc": "signalizes type to other apps",
"csv": "CSV",
lib/model/export_import.dart
@@ -14,17 +14,26 @@ class DataExporter {
Uint8List createFile(List<BloodPressureRecord> records) {
if (settings.exportFormat == ExportFormat.csv) {
+ List<String> exportItems;
+ if (settings.exportCustomEntries) {
+ exportItems = settings.exportItems;
+ } else {
+ exportItems = ['timestampUnixMs', 'systolic', 'diastolic', 'pulse', 'notes'];
+ }
+
var csvHead = '';
- for (var attribute in settings.exportItems) {
- csvHead += attribute;
- csvHead += settings.csvFieldDelimiter;
+ for (var i = 0; i<exportItems.length; i++) {
+ csvHead += exportItems[i];
+ if (i<(exportItems.length - 1)) {
+ csvHead += settings.csvFieldDelimiter;
+ }
}
csvHead += '\n';
List<List<dynamic>> items = [];
for (var record in records) {
List<dynamic> row = [];
- for (var attribute in settings.exportItems) {
+ for (var attribute in exportItems) {
switch (attribute) {
case 'timestampUnixMs':
row.add(record.creationTime.millisecondsSinceEpoch);
lib/model/settings_store.dart
@@ -358,6 +358,15 @@ class Settings extends ChangeNotifier {
_prefs.setInt('exportDataRangeEndEpochMs', value.end.millisecondsSinceEpoch);
notifyListeners();
}
+
+ bool get exportCustomEntries {
+ return _prefs.getBool('exportCustomEntries') ?? false;
+ }
+
+ set exportCustomEntries(bool value) {
+ _prefs.setBool('exportCustomEntries', value);
+ notifyListeners();
+ }
List<String> get exportAddableItems {
return _prefs.getStringList('exportAddableItems') ?? [];
lib/screens/subsettings/export_import_screen.dart
@@ -58,7 +58,14 @@ class ExportImportScreen extends StatelessWidget {
}
},
),
- const CsvItemsOrderCreator()
+ SwitchSettingsTile(
+ title: Text(AppLocalizations.of(context)!.exportCustomEntries),
+ initialValue: settings.exportCustomEntries,
+ onToggle: (value) {
+ settings.exportCustomEntries = value;
+ }
+ ),
+ (settings.exportCustomEntries) ? const CsvItemsOrderCreator(): const SizedBox.shrink()
];
}
@@ -268,14 +275,17 @@ class CsvItemsOrderCreator extends StatelessWidget {
}
);
},
- child: const Center(
- child: Row(
- mainAxisSize: MainAxisSize.min,
- children: [
- Icon(Icons.add),
- SizedBox(width: 10,),
- Text('ADD ENTRY')
- ],
+ child: Container(
+ margin: const EdgeInsets.only(top: 15),
+ child: Center(
+ child: Row(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ const Icon(Icons.add),
+ const SizedBox(width: 10,),
+ Text(AppLocalizations.of(context)!.addEntry)
+ ],
+ ),
),
),
) : null,