Commit 54e5dcd
Changed files (2)
lib
test
model
lib/model/ram_only_implementations.dart
@@ -1,14 +1,8 @@
import 'dart:collection';
import 'package:blood_pressure_app/model/blood_pressure.dart';
-import 'package:blood_pressure_app/model/export_import.dart';
-import 'package:blood_pressure_app/model/export_options.dart';
-import 'package:blood_pressure_app/model/settings_store.dart';
-import 'package:file_saver/file_saver.dart' show MimeType;
import 'package:flutter/material.dart';
-import 'horizontal_graph_line.dart';
-
class RamBloodPressureModel extends ChangeNotifier implements BloodPressureModel {
final List<BloodPressureRecord> _records = [];
@@ -47,559 +41,4 @@ class RamBloodPressureModel extends ChangeNotifier implements BloodPressureModel
@override
void close() {}
-}
-
-class RamSettings extends ChangeNotifier implements Settings {
- MaterialColor _accentColor = Colors.pink;
- bool _allowManualTimeInput = true;
- int _animationSpeed = 150;
- bool _confirmDeletion = true;
- bool _darkMode = true;
- String _dateFormatString = 'yyyy-MM-dd HH:mm';
- MaterialColor _diaColor = Colors.pink;
- int _diaWarn = 80;
- DateTime? _displayDataEnd;
- DateTime? _displayDataStart;
- bool _followSystemDarkMode = true;
- double _graphLineThickness = 3;
- TimeStep _graphStepSize = TimeStep.day;
- MaterialColor _pulColor = Colors.pink;
- MaterialColor _sysColor = Colors.pink;
- int _sysWarn = 120;
- bool _useExportCompatability = false;
- bool _validateInputs = true;
- ExportFormat _exportFormat = ExportFormat.csv;
- String _csvFieldDelimiter = ',';
- String _csvTextDelimiter = '"';
- bool _exportCsvHeadline = true;
- bool _exportCustomEntries = false;
- List<String> _exportItems = ['timestampUnixMs', 'systolic', 'diastolic', 'pulse', 'notes'];
- MimeType _exportMimeType = MimeType.csv;
- String _defaultExportDir = '';
- bool _exportAfterEveryEntry = false;
- bool _allowMissingValues = false;
- Locale? _language;
- bool _drawRegressionLines = false;
-
- RamSettings() {
- _accentColor = createMaterialColor(0xFF009688);
- _diaColor = createMaterialColor(0xFF4CAF50);
- _pulColor = createMaterialColor(0xFFF44336);
- _sysColor = createMaterialColor(0xFF009688);
- }
-
- @override
- int get diaWarn {
- return _diaWarn;
- }
-
- @override
- set diaWarn(int newWarn) {
- _diaWarn = newWarn;
- notifyListeners();
- }
-
- @override
- DateTime get displayDataStart {
- final s = _displayDataStart ?? getMostRecentDisplayIntervall()[0];
- if(s.millisecondsSinceEpoch < 0) {
- changeStepSize(TimeStep.last7Days);
- }
- return s;
- }
-
- @override
- set displayDataStart(DateTime newGraphStart) {
- _displayDataStart = newGraphStart;
- notifyListeners();
- }
-
- @override
- DateTime get displayDataEnd {
- final s = _displayDataEnd ?? getMostRecentDisplayIntervall()[1];
- if(s.millisecondsSinceEpoch < 0) {
- changeStepSize(TimeStep.last7Days);
- }
- return s;
- }
-
- @override
- set displayDataEnd(DateTime newGraphEnd) {
- _displayDataEnd = newGraphEnd;
- notifyListeners();
- }
-
- @override
- int get sysWarn {
- return _sysWarn;
- }
-
- @override
- set sysWarn(int newWarn) {
- _sysWarn = newWarn;
- notifyListeners();
- }
-
- @override
- MaterialColor get accentColor => _accentColor;
-
- @override
- set accentColor(MaterialColor value) {
- _accentColor = value;
- notifyListeners();
- }
-
- @override
- bool get allowManualTimeInput => _allowManualTimeInput;
-
- @override
- set allowManualTimeInput(bool value) {
- _allowManualTimeInput = value;
- notifyListeners();
- }
-
- @override
- int get animationSpeed => _animationSpeed;
-
- @override
- set animationSpeed(int value) {
- _animationSpeed = value;
- notifyListeners();
- }
-
- @override
- bool get confirmDeletion => _confirmDeletion;
-
- @override
- set confirmDeletion(bool value) {
- _confirmDeletion = value;
- notifyListeners();
- }
-
- @override
- bool get darkMode => _darkMode;
-
- @override
- set darkMode(bool value) {
- _darkMode = value;
- notifyListeners();
- }
-
- @override
- String get dateFormatString => _dateFormatString;
-
- @override
- set dateFormatString(String value) {
- _dateFormatString = value;
- notifyListeners();
- }
-
- @override
- MaterialColor get diaColor => _diaColor;
-
- @override
- set diaColor(MaterialColor value) {
- _diaColor = value;
- notifyListeners();
- }
-
- @override
- bool get followSystemDarkMode => _followSystemDarkMode;
-
- @override
- set followSystemDarkMode(bool value) {
- _followSystemDarkMode = value;
- notifyListeners();
- }
-
- @override
- double get graphLineThickness => _graphLineThickness;
-
- @override
- set graphLineThickness(double value) {
- _graphLineThickness = value;
- notifyListeners();
- }
-
- @override
- TimeStep get graphStepSize => _graphStepSize;
-
- @override
- set graphStepSize(TimeStep value) {
- _graphStepSize = value;
- notifyListeners();
- }
-
- @override
- MaterialColor get pulColor => _pulColor;
-
- @override
- set pulColor(MaterialColor value) {
- _pulColor = value;
- notifyListeners();
- }
-
- @override
- MaterialColor get sysColor => _sysColor;
-
- @override
- set sysColor(MaterialColor value) {
- _sysColor = value;
- notifyListeners();
- }
-
- @override
- bool get validateInputs => _validateInputs;
-
- @override
- set validateInputs(bool value) {
- _validateInputs = value;
- notifyListeners();
- }
-
- @override
- ExportFormat get exportFormat => _exportFormat;
-
- @override
- set exportFormat(ExportFormat value) {
- _exportFormat = value;
- notifyListeners();
- }
-
-
- @override
- String get csvFieldDelimiter => _csvFieldDelimiter;
-
- @override
- set csvFieldDelimiter(String value) {
- _csvFieldDelimiter = value;
- notifyListeners();
- }
-
- @override
- String get csvTextDelimiter => _csvTextDelimiter;
-
- @override
- set csvTextDelimiter(String value) {
- _csvTextDelimiter = value;
- notifyListeners();
- }
-
- @override
- bool get exportCsvHeadline => _exportCsvHeadline;
-
- @override
- set exportCsvHeadline(bool value) {
- _exportCsvHeadline = value;
- notifyListeners();
- }
-
- @override
- bool get exportCustomEntriesCsv => _exportCustomEntries;
-
- @override
- set exportCustomEntriesCsv(bool value) {
- _exportCustomEntries = value;
- notifyListeners();
- }
-
- @override
- List<String> get exportItemsCsv => _exportItems;
-
- @override
- set exportItemsCsv(List<String> value) {
- _exportItems = value;
- notifyListeners();
- }
-
- @override
- MimeType get exportMimeType => _exportMimeType;
-
- @override
- set exportMimeType(MimeType value) {
- _exportMimeType = value;
- notifyListeners();
- }
-
- @override
- String get defaultExportDir => _defaultExportDir;
-
- @override
- set defaultExportDir(String value) {
- _defaultExportDir = value;
- notifyListeners();
- }
-
- @override
- bool get exportAfterEveryEntry => _exportAfterEveryEntry;
-
- @override
- set exportAfterEveryEntry(bool value) {
- _exportAfterEveryEntry = value;
- notifyListeners();
- }
-
- @override
- bool get allowMissingValues => _allowMissingValues;
-
- @override
- set allowMissingValues(bool value) {
- _allowMissingValues = value;
- notifyListeners();
- }
-
- @override
- Locale? get language => _language;
-
- @override
- set language(Locale? value) {
- _language = value;
- notifyListeners();
- }
-
- @override
- bool get drawRegressionLines => _drawRegressionLines;
-
- @override
- set drawRegressionLines(bool value) {
- _drawRegressionLines = value;
- notifyListeners();
- }
-
- double _exportPdfHeaderHeight = 20;
- @override
- double get exportPdfHeaderHeight {
- return _exportPdfHeaderHeight;
- }
- @override
- set exportPdfHeaderHeight(double value) {
- _exportPdfHeaderHeight = value;
- notifyListeners();
- }
-
- double _exportPdfCellHeight = 15;
- @override
- double get exportPdfCellHeight {
- return _exportPdfCellHeight;
- }
- @override
- set exportPdfCellHeight(double value) {
- _exportPdfCellHeight = value;
- notifyListeners();
- }
-
- double _exportPdfHeaderFontSize = 10;
-
- @override
- double get exportPdfHeaderFontSize {
- return _exportPdfHeaderFontSize;
- }
-
- @override
- set exportPdfHeaderFontSize(double value) {
- _exportPdfHeaderFontSize = value;
- notifyListeners();
- }
-
- double _exportPdfCellFontSize = 8;
-
- @override
- double get exportPdfCellFontSize {
- return _exportPdfCellFontSize;
- }
-
- @override
- set exportPdfCellFontSize(double value) {
- _exportPdfCellFontSize = value;
- notifyListeners();
- }
-
- bool _exportPdfExportTitle = true;
-
- @override
- bool get exportPdfExportTitle {
- return _exportPdfExportTitle;
- }
-
- @override
- set exportPdfExportTitle(bool value) {
- _exportPdfExportTitle = value;
- notifyListeners();
- }
-
- bool _exportPdfExportStatistics = false;
-
- @override
- bool get exportPdfExportStatistics {
- return _exportPdfExportStatistics;
- }
-
- @override
- set exportPdfExportStatistics(bool value) {
- _exportPdfExportStatistics = value;
- notifyListeners();
- }
-
- bool _exportPdfExportData = true;
-
- @override
- bool get exportPdfExportData {
- return _exportPdfExportData;
- }
-
- @override
- set exportPdfExportData(bool value) {
- _exportPdfExportData = value;
- notifyListeners();
- }
-
- bool _startWithAddMeasurementPage = false;
-
- @override
- bool get startWithAddMeasurementPage {
- return _startWithAddMeasurementPage;
- }
-
- @override
- set startWithAddMeasurementPage(bool value) {
- _startWithAddMeasurementPage = value;
- notifyListeners();
- }
-
- bool _exportCustomEntriesPdf = false;
-
- @override
- bool get exportCustomEntriesPdf {
- return _exportCustomEntriesPdf;
- }
-
- @override
- set exportCustomEntriesPdf(bool value) {
- _exportCustomEntriesPdf = value;
- notifyListeners();
- }
-
- List<String> _exportItemsPdf = ExportFields.defaultPdf;
-
- @override
- List<String> get exportItemsPdf {
- return _exportItemsPdf;
- }
-
- @override
- set exportItemsPdf(List<String> value) {
- _exportItemsPdf = value;
- notifyListeners();
- }
-
- Iterable<HorizontalGraphLine> _horizontalGraphLines = [];
-
- @override
- Iterable<HorizontalGraphLine> get horizontalGraphLines {
- return _horizontalGraphLines;
- }
-
- @override
- set horizontalGraphLines(Iterable<HorizontalGraphLine> value) {
- _horizontalGraphLines = value;
- notifyListeners();
- }
-
- bool _useLegacyList = false;
-
- @override
- bool get useLegacyList {
- return _useLegacyList;
- }
-
- @override
- set useLegacyList(bool value) {
- _useLegacyList = value;
- notifyListeners();
- }
-
- @override
- void changeStepSize(TimeStep value) {
- graphStepSize = value;
- final newInterval = getMostRecentDisplayIntervall();
- displayDataStart = newInterval[0];
- displayDataEnd = newInterval[1];
- }
-
- @override
- void setToMostRecentIntervall() {
- changeStepSize(graphStepSize);
- }
-
- @override
- void moveDisplayDataByStep(int directionalStep) {
- final oldStart = displayDataStart;
- final oldEnd = displayDataEnd;
- switch (graphStepSize) {
- case TimeStep.day:
- displayDataStart = oldStart.copyWith(day: oldStart.day + directionalStep);
- displayDataEnd = oldEnd.copyWith(day: oldEnd.day + directionalStep);
- break;
- case TimeStep.week:
- case TimeStep.last7Days:
- displayDataStart = oldStart.copyWith(day: oldStart.day + directionalStep * 7);
- displayDataEnd = oldEnd.copyWith(day: oldEnd.day + directionalStep * 7);
- break;
- case TimeStep.month:
- displayDataStart = oldStart.copyWith(month: oldStart.month + directionalStep);
- displayDataEnd = oldEnd.copyWith(month: oldEnd.month + directionalStep);
- break;
- case TimeStep.year:
- displayDataStart = oldStart.copyWith(year: oldStart.year + directionalStep);
- displayDataEnd = oldEnd.copyWith(year: oldEnd.year + directionalStep);
- break;
- case TimeStep.lifetime:
- displayDataStart = DateTime.fromMillisecondsSinceEpoch(1);
- displayDataEnd = DateTime.now().copyWith(hour: 23, minute: 59, second: 59);
- break;
- case TimeStep.last30Days:
- displayDataStart = oldStart.copyWith(day: oldStart.day + directionalStep * 30);
- displayDataEnd = oldEnd.copyWith(day: oldEnd.day + directionalStep * 30);
- break;
- case TimeStep.custom:
- final step = oldStart.difference(oldEnd) * directionalStep;
- displayDataStart = oldStart.add(step);
- displayDataEnd = oldEnd.add(step);
- break;
- }
- }
-
- @override
- List<DateTime> getMostRecentDisplayIntervall() {
- final now = DateTime.now();
- switch (graphStepSize) {
- case TimeStep.day:
- final start = DateTime(now.year, now.month, now.day);
- return [start, start.copyWith(day: now.day + 1)];
- case TimeStep.week:
- final start = DateTime(now.year, now.month, now.day - (now.weekday - 1)); // monday
- return [start, start.copyWith(day: start.day + DateTime.sunday)]; // end of sunday
- case TimeStep.month:
- final start = DateTime(now.year, now.month);
- return [start, start.copyWith(month: now.month + 1)];
- case TimeStep.year:
- final start = DateTime(now.year);
- return [start, start.copyWith(year: now.year + 1)];
- case TimeStep.lifetime:
- final start = DateTime.fromMillisecondsSinceEpoch(1);
- final endOfToday = now.copyWith(hour: 23, minute: 59, second: 59);
- return [start, endOfToday];
- case TimeStep.last7Days:
- final start = now.copyWith(day: now.day - 7);
- final endOfToday = now.copyWith(hour: 23, minute: 59, second: 59);
- return [start, endOfToday];
- case TimeStep.last30Days:
- final start = now.copyWith(day: now.day - 30);
- final endOfToday = now.copyWith(hour: 23, minute: 59, second: 59);
- return [start, endOfToday];
- case TimeStep.custom:
- // fallback, TimeStep will be reset by getter
- return [DateTime.fromMillisecondsSinceEpoch(-1), DateTime.fromMillisecondsSinceEpoch(-1)];
- }
- }
-}
+}
\ No newline at end of file
test/model/settings_test.dart
@@ -1,301 +0,0 @@
-import 'dart:ui';
-
-import 'package:blood_pressure_app/model/ram_only_implementations.dart';
-import 'package:blood_pressure_app/model/settings_store.dart';
-import 'package:file_saver/file_saver.dart';
-import 'package:flutter_test/flutter_test.dart';
-import 'package:package_info_plus/package_info_plus.dart';
-import 'package:shared_preferences/shared_preferences.dart';
-import 'package:sqflite_common_ffi/sqflite_ffi.dart';
-
-void main() {
- TestWidgetsFlutterBinding.ensureInitialized();
- SharedPreferences.setMockInitialValues({});
- final testPackageInfo = PackageInfo(appName: 'blood_pressure_app', packageName: 'com.derdilla.bloodPressureApp', version: 'UnitTests', buildNumber: '999999');
-
- group('Settings model', () {
- // setup db path
- databaseFactory = databaseFactoryFfi;
-
- test('should initialize', () async {
- expect(() async {
- await Settings.create(testPackageInfo);
- }, returnsNormally);
- });
-
- test('fields defaults should be set after initialization', () async {
- var s = await Settings.create(testPackageInfo);
- expect(s.graphStepSize, TimeStep.day);
- expect(s.followSystemDarkMode, true);
- expect(s.darkMode, true);
- expect(s.accentColor.value, 0xFF009688);
- expect(s.sysColor.value, 0xFF009688);
- expect(s.diaColor.value, 0xFF4CAF50);
- expect(s.pulColor.value, 0xFFF44336);
- expect(s.allowManualTimeInput, true);
- expect(s.dateFormatString, 'yyyy-MM-dd HH:mm');
- expect(s.sysWarn, 120);
- expect(s.diaWarn, 80);
- expect(s.validateInputs, true);
- expect(s.graphLineThickness, 3);
- expect(s.animationSpeed, 150);
- expect(s.confirmDeletion, true);
- expect(s.csvFieldDelimiter, ',');
- expect(s.csvTextDelimiter, '"');
- expect(s.exportCsvHeadline, true);
- expect(s.exportMimeType, MimeType.csv);
- expect(s.defaultExportDir.isEmpty, true);
- expect(s.exportAfterEveryEntry, false);
- expect(s.allowMissingValues, false);
- expect(s.language, null);
- });
-
- test('setting fields should save changes', () async {
- var s = await Settings.create(testPackageInfo);
-
- int i = 0;
- s.addListener(() {
- i++;
- if (i >= 1) {
- expect(s.graphStepSize, TimeStep.lifetime);
- }
- if (i >= 11) {
- expect(s.dateFormatString, 'yy:dd @ H:mm.ss');
- }
- });
-
- s.graphStepSize = TimeStep.lifetime;
- s.displayDataStart = DateTime.fromMillisecondsSinceEpoch(10000);
- s.displayDataEnd = DateTime.fromMillisecondsSinceEpoch(200000);
- s.followSystemDarkMode = false;
- s.darkMode = false;
- s.accentColor = createMaterialColor(0xFF942DA4);
- s.sysColor = createMaterialColor(0xFF942DA5);
- s.diaColor = createMaterialColor(0xFF942DA6);
- s.pulColor = createMaterialColor(0xFF942DA7);
- s.allowManualTimeInput = false;
- s.dateFormatString = 'yy:dd @ H:mm.ss';
- s.sysWarn = 314;
- s.diaWarn = 159;
- s.validateInputs = false;
- s.graphLineThickness = 5;
- s.animationSpeed = 100;
- s.confirmDeletion = false;
- s.csvFieldDelimiter = '|';
- s.csvTextDelimiter = '\'';
- s.exportItemsCsv = ['systolic', 'diastolic', 'pulse', 'notes', 'isoUTCTime'];
- s.exportCsvHeadline = false;
- s.exportMimeType = MimeType.pdf;
- s.defaultExportDir = '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv';
- s.exportAfterEveryEntry = true;
- s.allowMissingValues = true;
- s.language = const Locale('de');
-
- expect(s.displayDataStart, DateTime.fromMillisecondsSinceEpoch(10000));
- expect(s.displayDataEnd, DateTime.fromMillisecondsSinceEpoch(200000));
- expect(s.followSystemDarkMode, false);
- expect(s.darkMode, false);
- expect(s.accentColor.value, 0xFF942DA4);
- expect(s.sysColor.value, 0xFF942DA5);
- expect(s.diaColor.value, 0xFF942DA6);
- expect(s.pulColor.value, 0xFF942DA7);
- expect(s.allowManualTimeInput, false);
- expect(s.sysWarn, 314);
- expect(s.diaWarn, 159);
- expect(s.validateInputs, false);
- expect(s.graphLineThickness, 5);
- expect(s.animationSpeed, 100);
- expect(s.confirmDeletion, false);
- expect(s.csvFieldDelimiter, '|');
- expect(s.csvTextDelimiter, '\'');
- expect(s.exportItemsCsv, ['systolic', 'diastolic', 'pulse', 'notes', 'isoUTCTime']);
- expect(s.exportCsvHeadline, false);
- 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);
- expect(s.language, const Locale('de'));
- });
-
- test('setting fields should notify listeners and change values', () async {
- var s = await Settings.create(testPackageInfo);
-
- int i = 0;
- s.addListener(() {
- i++;
- });
-
- s.graphStepSize = TimeStep.lifetime;
- s.displayDataStart = DateTime.fromMillisecondsSinceEpoch(10000);
- s.displayDataEnd = DateTime.fromMillisecondsSinceEpoch(200000);
- s.followSystemDarkMode = false;
- s.darkMode = false;
- s.accentColor = createMaterialColor(0xFF942DA4);
- s.sysColor = createMaterialColor(0xFF942DA5);
- s.diaColor = createMaterialColor(0xFF942DA6);
- s.pulColor = createMaterialColor(0xFF942DA7);
- s.allowManualTimeInput = false;
- s.dateFormatString = 'yy:dd @ H:mm.ss';
- s.sysWarn = 314;
- s.diaWarn = 159;
- s.validateInputs = false;
- s.graphLineThickness = 5;
- s.animationSpeed = 100;
- s.confirmDeletion = true;
- s.csvFieldDelimiter = '|';
- s.csvTextDelimiter = '\'';
- s.exportItemsCsv = ['systolic', 'diastolic', 'pulse', 'notes', 'isoUTCTime'];
- s.exportCsvHeadline = false;
- s.exportMimeType = MimeType.pdf;
- s.defaultExportDir = '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv';
- s.exportAfterEveryEntry = true;
- s.allowMissingValues = true;
- s.language = const Locale('de');
-
- expect(i, 26);
- });
- });
-
- group('RamSettings model', () {
- // setup db path
- databaseFactory = databaseFactoryFfi;
-
- test('should initialize', () async {
- expect(() async {
- RamSettings();
- }, returnsNormally);
- });
-
- test('fields defaults should be set after initialization', () async {
- var s = RamSettings();
- expect(s.graphStepSize, TimeStep.day);
- expect(s.followSystemDarkMode, true);
- expect(s.darkMode, true);
- expect(s.accentColor.value, 0xFF009688);
- expect(s.sysColor.value, 0xFF009688);
- expect(s.diaColor.value, 0xFF4CAF50);
- expect(s.pulColor.value, 0xFFF44336);
- expect(s.allowManualTimeInput, true);
- expect(s.dateFormatString, 'yyyy-MM-dd HH:mm');
- expect(s.sysWarn, 120);
- expect(s.diaWarn, 80);
- expect(s.validateInputs, true);
- expect(s.graphLineThickness, 3);
- expect(s.animationSpeed, 150);
- expect(s.confirmDeletion, true);
- expect(s.csvFieldDelimiter, ',');
- expect(s.csvTextDelimiter, '"');
- expect(s.exportCsvHeadline, true);
- expect(s.exportMimeType, MimeType.csv);
- expect(s.defaultExportDir.isEmpty, true);
- expect(s.exportAfterEveryEntry, false);
- expect(s.allowMissingValues, false);
- expect(s.language, null);
- });
-
- test('setting fields should save changes', () async {
- var s = RamSettings();
-
- int i = 0;
- s.addListener(() {
- i++;
- if (i >= 1) {
- expect(s.graphStepSize, TimeStep.lifetime);
- }
- if (i >= 11) {
- expect(s.dateFormatString, 'yy:dd @ H:mm.ss');
- }
- });
-
- s.graphStepSize = TimeStep.lifetime;
- s.displayDataStart = DateTime.fromMillisecondsSinceEpoch(10000);
- s.displayDataEnd = DateTime.fromMillisecondsSinceEpoch(200000);
- s.followSystemDarkMode = false;
- s.darkMode = false;
- s.accentColor = createMaterialColor(0xFF942DA4);
- s.sysColor = createMaterialColor(0xFF942DA5);
- s.diaColor = createMaterialColor(0xFF942DA6);
- s.pulColor = createMaterialColor(0xFF942DA7);
- s.allowManualTimeInput = false;
- s.dateFormatString = 'yy:dd @ H:mm.ss';
- s.sysWarn = 314;
- s.diaWarn = 159;
- s.validateInputs = false;
- s.graphLineThickness = 5;
- s.animationSpeed = 100;
- s.confirmDeletion = false;
- s.csvFieldDelimiter = '|';
- s.csvTextDelimiter = '\'';
- s.exportItemsCsv = ['systolic', 'diastolic', 'pulse', 'notes', 'isoUTCTime'];
- s.exportCsvHeadline = false;
- s.exportMimeType = MimeType.pdf;
- s.defaultExportDir = '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv';
- s.exportAfterEveryEntry = true;
- s.allowMissingValues = true;
- s.language = const Locale('de');
-
- expect(s.displayDataStart, DateTime.fromMillisecondsSinceEpoch(10000));
- expect(s.displayDataEnd, DateTime.fromMillisecondsSinceEpoch(200000));
- expect(s.followSystemDarkMode, false);
- expect(s.darkMode, false);
- expect(s.accentColor.value, 0xFF942DA4);
- expect(s.sysColor.value, 0xFF942DA5);
- expect(s.diaColor.value, 0xFF942DA6);
- expect(s.pulColor.value, 0xFF942DA7);
- expect(s.allowManualTimeInput, false);
- expect(s.sysWarn, 314);
- expect(s.diaWarn, 159);
- expect(s.validateInputs, false);
- expect(s.graphLineThickness, 5);
- expect(s.animationSpeed, 100);
- expect(s.confirmDeletion, false);
- expect(s.csvFieldDelimiter, '|');
- expect(s.csvTextDelimiter, '\'');
- expect(s.exportItemsCsv, ['systolic', 'diastolic', 'pulse', 'notes', 'isoUTCTime']);
- expect(s.exportCsvHeadline, false);
- 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);
- expect(s.language, const Locale('de'));
- });
-
- test('setting fields should notify listeners and change values', () async {
- var s = RamSettings();
-
- int i = 0;
- s.addListener(() {
- i++;
- });
-
- s.graphStepSize = TimeStep.lifetime;
- s.displayDataStart = DateTime.fromMillisecondsSinceEpoch(10000);
- s.displayDataEnd = DateTime.fromMillisecondsSinceEpoch(200000);
- s.followSystemDarkMode = false;
- s.darkMode = false;
- s.accentColor = createMaterialColor(0xFF942DA4);
- s.sysColor = createMaterialColor(0xFF942DA5);
- s.diaColor = createMaterialColor(0xFF942DA6);
- s.pulColor = createMaterialColor(0xFF942DA7);
- s.allowManualTimeInput = false;
- s.dateFormatString = 'yy:dd @ H:mm.ss';
- s.sysWarn = 314;
- s.diaWarn = 159;
- s.validateInputs = false;
- s.graphLineThickness = 5;
- s.animationSpeed = 100;
- s.confirmDeletion = true;
- s.csvFieldDelimiter = '|';
- s.csvTextDelimiter = '\'';
- s.exportItemsCsv = ['systolic', 'diastolic', 'pulse', 'notes', 'isoUTCTime'];
- s.exportCsvHeadline = false;
- s.exportMimeType = MimeType.pdf;
- s.defaultExportDir = '/storage/emulated/0/Android/data/com.derdilla.bloodPressureApp/files/file.csv';
- s.exportAfterEveryEntry = true;
- s.allowMissingValues = true;
- s.language = const Locale('de');
-
- expect(i, 26);
- });
- });
-}