Commit 52936a4
Changed files (4)
lib
lib/l10n/app_de.arb
@@ -35,6 +35,7 @@
"errNoValue": "Bitte Wert eingeben",
"errNotEnoughDataToGraph": "Zuwenig Daten für Graphen",
"errNoData": "Keine Daten",
+ "errNoRangeForExport": "Sie müssen angeben, welche daten sie exportieren wollen.",
"btnCancel": "ABBRUCH",
"btnSave": "OK",
@@ -75,7 +76,9 @@
"sysWarn": "Warnwert Sys",
"diaWarn": "Warnwert Dia",
"data": "Daten",
+
"exportImport": "Exportieren / Importieren",
+ "exportInterval": "Datenbereich",
"exportFormat": "Exportformat",
"exportMimeType": "Export MIME typ",
"csv": "CSV",
lib/l10n/app_en.arb
@@ -35,6 +35,7 @@
"errNoValue": "Please enter a value",
"errNotEnoughDataToGraph": "not enough data to draw graph",
"errNoData": "no data",
+ "errNoRangeForExport": "You need to specify a range in which data is exported.",
"btnCancel": "CANCEL",
"btnSave": "SAVE",
@@ -75,7 +76,9 @@
"sysWarn": "systolic warn",
"diaWarn": "diastolic warn",
"data": "data",
+
"exportImport": "export / import",
+ "exportInterval": "data range",
"exportFormat": "export format",
"exportMimeType": "export MIME type",
"exportMimeTypeDesc": "signalizes type to other apps",
lib/model/settings_store.dart
@@ -11,6 +11,8 @@ class Settings extends ChangeNotifier {
DateTime? _displayDataStart;
DateTime? _displayDataEnd;
+ DateTimeRange? _exportDataRange;
+
Settings._create();
// factory method, to allow for async constructor
static Future<Settings> create() async {
@@ -334,7 +336,15 @@ class Settings extends ChangeNotifier {
notifyListeners();
}
+ DateTimeRange? get exportDataRange {
+ return _exportDataRange;
+ }
+ set exportDataRange(DateTimeRange? value) {
+ _exportDataRange = value;
+ notifyListeners();
+ }
+
}
lib/screens/subsettings/export_import_screen.dart
@@ -5,6 +5,7 @@ import 'package:blood_pressure_app/model/export_import.dart';
import 'package:blood_pressure_app/model/settings_store.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
class ExportImportScreen extends StatelessWidget {
@@ -18,6 +19,13 @@ class ExportImportScreen extends StatelessWidget {
backgroundColor: Theme.of(context).primaryColor,
),
body: Consumer<Settings>(builder: (context, settings, child) {
+ var exportRange = settings.exportDataRange;
+ String? exportRangeText;
+ if (exportRange != null) {
+ var formatter = DateFormat.yMMMd(AppLocalizations.of(context)!.localeName);
+ exportRangeText = '${formatter.format(exportRange.start)} - ${formatter.format(exportRange.end)}';
+ }
+
List<Widget> modeSpecificSettings = [];
if (settings.exportFormat == ExportFormat.csv) {
modeSpecificSettings = [
@@ -45,6 +53,21 @@ class ExportImportScreen extends StatelessWidget {
}
List<Widget> options = [
+ SettingsTile(
+ title: Text(AppLocalizations.of(context)!.exportInterval),
+ description: (exportRangeText != null) ? Text(exportRangeText) : null,
+ onPressed: (context) async {
+ var model = Provider.of<BloodPressureModel>(context, listen: false);
+ var newRange = await showDateRangePicker(context: context, firstDate: await model.firstDay, lastDate: await model.lastDay);
+ if (newRange == null && context.mounted) {
+ ScaffoldMessenger.of(context)
+ .showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.errNoRangeForExport)));
+ return;
+ }
+ settings.exportDataRange = newRange;
+
+ }
+ ),
DropDownSettingsTile<ExportFormat>(
key: const Key('exportFormat'),
title: Text(AppLocalizations.of(context)!.exportFormat),