Commit 19a20e8
Changed files (5)
lib
test
model
lib/l10n/app_en.arb
@@ -322,5 +322,6 @@
}
},
"last7Days": "7 days",
- "last30Days": "30 days"
+ "last30Days": "30 days",
+ "allowMissingValues": "Allow missing values"
}
lib/model/ram_only_implementations.dart
@@ -114,6 +114,7 @@ class RamSettings extends ChangeNotifier implements Settings {
MimeType _exportMimeType = MimeType.csv;
String _defaultExportDir = '';
bool _exportAfterEveryEntry = false;
+ bool _allowMissingValues = false;
RamSettings() {
_accentColor = createMaterialColor(0xFF009688);
@@ -416,6 +417,15 @@ class RamSettings extends ChangeNotifier implements Settings {
notifyListeners();
}
+ @override
+ bool get allowMissingValues => _allowMissingValues;
+
+ @override
+ set allowMissingValues(bool value) {
+ _allowMissingValues = value;
+ notifyListeners();
+ }
+
@override
void changeStepSize(int value) {
graphStepSize = value;
lib/model/settings_store.dart
@@ -244,6 +244,15 @@ class Settings extends ChangeNotifier {
notifyListeners();
}
+ bool get allowMissingValues {
+ return _prefs.getBool('allowMissingValues') ?? false;
+ }
+
+ set allowMissingValues(bool allowMissingValues) {
+ _prefs.setBool('allowMissingValues', allowMissingValues);
+ notifyListeners();
+ }
+
double get graphLineThickness {
return _prefs.getDouble('graphLineThickness') ?? 3;
}
lib/screens/settings.dart
@@ -159,6 +159,14 @@ class SettingsPage extends StatelessWidget {
onToggle: (value) {
settings.validateInputs = value;
}),
+ SwitchSettingsTile(
+ key: const Key('allowMissingValues'),
+ initialValue: settings.allowMissingValues,
+ title: Text(AppLocalizations.of(context)!.allowMissingValues),
+ leading: const Icon(Icons.report_off_outlined),
+ onToggle: (value) {
+ settings.allowMissingValues = value;
+ }),
SwitchSettingsTile(
key: const Key('confirmDeletion'),
initialValue: settings.confirmDeletion,
test/model/settings_test.dart
@@ -49,6 +49,7 @@ void main() {
expect(s.exportMimeType, MimeType.csv);
expect(s.defaultExportDir.isEmpty, true);
expect(s.exportAfterEveryEntry, false);
+ expect(s.allowMissingValues, false);
});
test('setting fields should save changes', () async {
@@ -93,6 +94,7 @@ void main() {
s.exportMimeType = MimeType.pdf;
s.defaultExportDir = '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv';
s.exportAfterEveryEntry = true;
+ s.allowMissingValues = true;
expect(s.displayDataStart, DateTime.fromMillisecondsSinceEpoch(10000));
expect(s.displayDataEnd, DateTime.fromMillisecondsSinceEpoch(200000));
@@ -120,6 +122,7 @@ void main() {
expect(s.exportMimeType, MimeType.pdf);
expect(s.defaultExportDir, '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv');
expect(s.exportAfterEveryEntry, true);
+ expect(s.allowMissingValues, true);
});
test('setting fields should notify listeners and change values', () async {
@@ -159,8 +162,9 @@ void main() {
s.exportMimeType = MimeType.pdf;
s.defaultExportDir = '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv';
s.exportAfterEveryEntry = true;
+ s.allowMissingValues = true;
- expect(i, 29);
+ expect(i, 30);
});
});
@@ -203,6 +207,7 @@ void main() {
expect(s.exportMimeType, MimeType.csv);
expect(s.defaultExportDir.isEmpty, true);
expect(s.exportAfterEveryEntry, false);
+ expect(s.allowMissingValues, false);
});
test('setting fields should save changes', () async {
@@ -247,7 +252,7 @@ void main() {
s.exportMimeType = MimeType.pdf;
s.defaultExportDir = '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv';
s.exportAfterEveryEntry = true;
-
+ s.allowMissingValues = true;
expect(s.displayDataStart, DateTime.fromMillisecondsSinceEpoch(10000));
expect(s.displayDataEnd, DateTime.fromMillisecondsSinceEpoch(200000));
@@ -275,6 +280,8 @@ void main() {
expect(s.exportMimeType, MimeType.pdf);
expect(s.defaultExportDir, '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv');
expect(s.exportAfterEveryEntry, true);
+ expect(s.allowMissingValues, true);
+
});
test('setting fields should notify listeners and change values', () async {
@@ -314,8 +321,9 @@ void main() {
s.exportMimeType = MimeType.pdf;
s.defaultExportDir = '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv';
s.exportAfterEveryEntry = true;
+ s.allowMissingValues = true;
- expect(i, 29);
+ expect(i, 30);
});
});
}