From cd0e44ab307e2e1f7c03bccda2d0e9b077387b32 Mon Sep 17 00:00:00 2001
From: Crondung <1922635@stud.hs-mannheim.de>
Date: Tue, 7 Mar 2023 00:14:22 +0100
Subject: [PATCH] update readme
---
README.md | 5 ++++
lib/globals.dart | 3 ++
lib/mock/db_mock.dart | 67 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 75 insertions(+)
create mode 100644 lib/mock/db_mock.dart
diff --git a/README.md b/README.md
index ee7623a..43d53bf 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,11 @@ Eine Flutter App, um Teilnehmer einer Studie des [ZI-Mannheim](https://www.zi-ma
Vor App-Start:
flutter pub get
+### Datenbank
+
+Auf mobilen Geräten wird eine sqlite Datenbank benutzt. Beim Ausführen als Webapp kann nicht auf den DocumentPath zugegriffen werden, der zum initialisieren der Datenbank benötigt wird, weshalb sqlite nicht benutzt werden kann. Stattdessen kann eine Mock-Datenbank genutzt werden.
+Dazu muss in [globals.dart](./lib/globals.dart) die DatabaseService databaseService = DatabaseMock();
gesetzt werden.
+
## App starten
Die App lässt sich als Android- und iOS App ausführen und zu Debugzwecken ebenfalls als Webapp.
diff --git a/lib/globals.dart b/lib/globals.dart
index 9e7c817..cebeea2 100644
--- a/lib/globals.dart
+++ b/lib/globals.dart
@@ -1,8 +1,11 @@
library app.globals;
+// ignore: unused_import
+import 'package:smoke_cess_app/mock/db_mock.dart';
import 'package:smoke_cess_app/services/database_service.dart';
DatabaseService databaseService = DatabaseService.instance;
+//DatabaseService databaseService = DatabaseMock();
// set this to read settings from local json file instead of scanning a qr code
bool useLocalConfig = true;
diff --git a/lib/mock/db_mock.dart b/lib/mock/db_mock.dart
new file mode 100644
index 0000000..4e5d0e6
--- /dev/null
+++ b/lib/mock/db_mock.dart
@@ -0,0 +1,67 @@
+import 'package:smoke_cess_app/models/mood.dart';
+import 'package:smoke_cess_app/models/relapse.dart';
+import 'package:smoke_cess_app/models/sleep.dart';
+import 'package:smoke_cess_app/models/workout.dart';
+import 'package:smoke_cess_app/services/database_service.dart';
+// ignore: depend_on_referenced_packages
+import 'package:sqflite_common/sqlite_api.dart';
+
+class DatabaseMock implements DatabaseService {
+ static final DatabaseMock _databaseMock = DatabaseMock._internal();
+ factory DatabaseMock() {
+ return _databaseMock;
+ }
+ DatabaseMock._internal();
+
+ final List _moodRecords = [];
+ final List _sleepRecords = [];
+ final List _relapseRecords = [];
+ final List _workoutRecords = [];
+
+ @override
+ Future addMood(Mood mood) {
+ _moodRecords.add(mood);
+ return Future.value(1);
+ }
+
+ @override
+ Future addSleep(Sleep sleep) {
+ _sleepRecords.add(sleep);
+ return Future.value(1);
+ }
+
+ @override
+ Future addWorkout(Workout workout) {
+ _workoutRecords.add(workout);
+ return Future.value(1);
+ }
+
+ @override
+ Future addRelapse(Relapse relapse) {
+ _relapseRecords.add(relapse);
+ return Future.value(1);
+ }
+
+ @override
+ Future get database => DatabaseService.instance.database;
+
+ @override
+ Future> getMoodRecords() {
+ return Future.value(_moodRecords);
+ }
+
+ @override
+ Future> getSleepRecords() {
+ return Future.value(_sleepRecords);
+ }
+
+ @override
+ Future> getRelapseRecords() {
+ return Future.value(_relapseRecords);
+ }
+
+ @override
+ Future> getWorkoutRecords() {
+ return Future.value(_workoutRecords);
+ }
+}