Commit a18d942
Changed files (3)
test
lib/model/blood_pressure.dart
@@ -1,13 +1,8 @@
-import 'dart:convert' show utf8;
import 'dart:io';
import 'package:collection/collection.dart';
-import 'package:csv/csv.dart';
-import 'package:file_picker/file_picker.dart';
-import 'package:file_saver/file_saver.dart';
import 'package:flutter/foundation.dart';
import 'package:path/path.dart';
-import 'package:share_plus/share_plus.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
class BloodPressureModel extends ChangeNotifier {
@@ -156,63 +151,6 @@ class BloodPressureModel extends ChangeNotifier {
return (res as int?) ?? -1;
}
- Future<void> save(void Function(bool success, String? msg) callback, {bool exportAsText = false}) async {
- // create csv
- String csvData = 'timestampUnixMs, systolic, diastolic, pulse, notes\n';
- List<Map<String, Object?>> allEntries = await _database.query('bloodPressureModel', orderBy: 'timestamp DESC');
- List<List<dynamic>> data = [];
- for (var e in allEntries) {
- data.add([e['timestamp'],e['systolic'], e['diastolic'], e['pulse'], e['notes']]);
- }
- csvData += const ListToCsvConverter().convert(data, delimitAllFields: true);
-
- // save data
- String filename = 'blood_press_${DateTime.now().toIso8601String()}';
- String path = await FileSaver.instance
- .saveFile(name: filename, bytes: Uint8List.fromList(utf8.encode(csvData)), ext: 'csv', mimeType: MimeType.csv);
-
-
- // notify user about location
- if (Platform.isLinux || Platform.isWindows || Platform.isMacOS) {
- callback(true, path);
- } else if (Platform.isAndroid || Platform.isIOS) {
- var mimeType = MimeType.csv;
- if (exportAsText) {
- mimeType = MimeType.text;
- }
- Share.shareXFiles([
- XFile(
- path,
- mimeType: mimeType.type,
- )
- ]);
- callback(true, null);
- } else {}
- }
-
- Future<void> import(void Function(bool) callback) async {
- var result = await FilePicker.platform.pickFiles(
- allowMultiple: false,
- withData: true,
- );
-
- if (result != null) {
- var binaryContent = result.files.single.bytes;
- if (binaryContent != null) {
- final csvContents = const CsvToListConverter()
- .convert(utf8.decode(binaryContent), fieldDelimiter: ',', textDelimiter: '"', eol: '\n');
- for (var i = 1; i < csvContents.length; i++) {
- var line = csvContents[i];
- BloodPressureRecord record = BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(line[0] as int),
- (line[1] as int), (line[2] as int), (line[3] as int), line[4].toString());
- add(record);
- }
- return callback(true);
- }
- }
- return callback(false);
- }
-
void close() {
_database.close();
}
lib/model/ram_only_implementations.dart
@@ -77,18 +77,6 @@ class RamBloodPressureModel extends ChangeNotifier implements BloodPressureModel
@override
void close() {}
-
- @override
- Future<void> import(void Function(bool p1) callback) {
- // TODO: implement import
- throw UnimplementedError();
- }
-
- @override
- Future<void> save(void Function(bool success, String? msg) callback, {bool exportAsText = false}) {
- // TODO: implement save
- throw UnimplementedError();
- }
}
class RamSettings extends ChangeNotifier implements Settings {
test/model/bood_pressure_test.dart
@@ -83,17 +83,6 @@ void main() {
expect(res.notes, r.notes);
});
- test('should import exported values', () async {
- var m = await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_import_exported');
- var r = BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(31415926), -172, 10000, 0,
- "((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈๏ แผ่นดินฮั่นเABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвг, \n \t д∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა");
- await m.add(r);
-
- m.save((success, msg) {
- expect(success, true);
- });
- });
-
test('should delete', () async {
var m = await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_delete');