6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit 5b21d423

AuthorMikkel Thygesen<mth@dwarf.dk>
Date2025-02-05 14:22:15 +0100
464: Fixed DB not starting correctly

Changed files

.../lib/authentication/authentication_repository.dart    |  3 +++
 comwell_key_app/lib/database/comwell_db.dart             | 16 +++++++---------
 comwell_key_app/lib/utils/locator.dart                   |  7 ++-----
 3 files changed, 12 insertions(+), 14 deletions(-)

Diff

diff --git a/comwell_key_app/lib/authentication/authentication_repository.dart b/comwell_key_app/lib/authentication/authentication_repository.dart
index ecdaa477..ea5a7d30 100644
--- a/comwell_key_app/lib/authentication/authentication_repository.dart
+++ b/comwell_key_app/lib/authentication/authentication_repository.dart
@@ -1,6 +1,7 @@
import 'dart:async';
import 'package:comwell_key_app/authentication/enum/authentication_status.dart';
+import 'package:comwell_key_app/database/comwell_db.dart';
import 'package:comwell_key_app/services/api.dart';
import 'package:comwell_key_app/utils/secure_storage.dart';
import 'package:comwell_key_app/common/const.dart' as constants;
@@ -13,6 +14,7 @@ class AuthenticationRepository {
late SecureStorage secureStorage;
final _controller = StreamController<AuthenticationStatus>.broadcast();
final seos = locator<SeosRepository>();
+ final database = locator<ComwellDatabase>();
final api = Api();
AuthenticationRepository() {
@@ -42,6 +44,7 @@ class AuthenticationRepository {
Future<void> logOut() async {
await secureStorage.deleteAll();
+ await database.deleteDatabase();
_controller.sink.add(AuthenticationStatus.unauthenticated);
}
diff --git a/comwell_key_app/lib/database/comwell_db.dart b/comwell_key_app/lib/database/comwell_db.dart
index 9db049be..e540f6c4 100644
--- a/comwell_key_app/lib/database/comwell_db.dart
+++ b/comwell_key_app/lib/database/comwell_db.dart
@@ -2,9 +2,9 @@ import 'dart:io';
import 'package:comwell_key_app/database/tables/booking_table.dart';
import 'package:comwell_key_app/database/tables/user_table.dart';
+import 'package:comwell_key_app/utils/secure_storage.dart';
import 'package:drift/drift.dart';
import 'package:drift/native.dart';
-import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart';
import 'package:sqlcipher_flutter_libs/sqlcipher_flutter_libs.dart';
@@ -17,7 +17,7 @@ import 'daos/user_dao.dart';
part '../.generated/database/comwell_db.g.dart';
-const secureStorage = FlutterSecureStorage();
+final secureStorage = SecureStorage();
@DriftDatabase(
tables: [BookingEntity, UserEntity], daos: [BookingsDao, UserDAO])
@@ -25,9 +25,7 @@ class ComwellDatabase extends _$ComwellDatabase {
static const String _cipherKey = "sql_cipher";
static const String _dbFileName = "comwell.db.enc";
- ComwellDatabase() : super(_openDatabase()) {
- deleteDatabase();
- }
+ ComwellDatabase() : super(_openDatabase());
@override
int get schemaVersion => 1;
@@ -36,8 +34,9 @@ class ComwellDatabase extends _$ComwellDatabase {
MigrationStrategy get migration => destructiveFallback;
Future<void> deleteDatabase() async {
+ await close();
final supportDir = await getApplicationSupportDirectory();
- final databaseDir = File("${supportDir.path}/app.db.enc");
+ final databaseDir = File(p.join(supportDir.path, _dbFileName));
final exists = await databaseDir.exists();
if (exists) {
await databaseDir.delete();
@@ -45,14 +44,13 @@ class ComwellDatabase extends _$ComwellDatabase {
}
static Future<String> getCipher() async {
- final cipher = await secureStorage.read(key: _cipherKey);
+ final cipher = await secureStorage.read(_cipherKey);
if (cipher == null || cipher.isEmpty) {
final newCipher = const uuid.Uuid().v4obj().toString();
- await secureStorage.write(key: _cipherKey, value: newCipher);
+ await secureStorage.write(_cipherKey, newCipher);
} else {
return cipher;
}
-
return getCipher();
}
diff --git a/comwell_key_app/lib/utils/locator.dart b/comwell_key_app/lib/utils/locator.dart
index 14891162..91d8087c 100644
--- a/comwell_key_app/lib/utils/locator.dart
+++ b/comwell_key_app/lib/utils/locator.dart
@@ -1,6 +1,5 @@
import 'package:comwell_key_app/authentication/authentication_repository.dart';
import 'package:comwell_key_app/database/comwell_db.dart';
-import 'package:comwell_key_app/hotel_information/cubit/hotel_information_cubit.dart';
import 'package:comwell_key_app/hotel_information/repository/hotel_information_repository.dart';
import 'package:comwell_key_app/key/repository/key_repository.dart';
import 'package:comwell_key_app/overview/repository/overview_repository.dart';
@@ -9,7 +8,6 @@ import 'package:comwell_key_app/profile/profile_repository.dart';
import 'package:comwell_key_app/profile_settings/repostiory/profile_settings_repository.dart';
import 'package:comwell_key_app/tracking/comwell_tracking.dart';
import 'package:comwell_key_app/utils/seos_repository.dart';
-import 'package:comwell_key_app/tracking/trackers/firebase_tracker.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/foundation.dart';
import 'package:get_it/get_it.dart';
@@ -22,6 +20,8 @@ final locator = GetIt.I;
void setupLocator() {
locator.registerFactory<DeviceInfoPlugin>(() => DeviceInfoPlugin());
if (!kIsWeb) {
+ locator.registerSingleton<ComwellTracking>(ComwellTracking());
+ locator.registerSingleton<ComwellDatabase>(ComwellDatabase());
locator.registerSingleton(SeosMobileKeysPlugin());
locator.registerFactory<KeyRepository>(() => KeyRepository(
deviceInfoPlugin: locator<DeviceInfoPlugin>(),
@@ -35,9 +35,6 @@ void setupLocator() {
locator.registerFactory<ProfileRepository>(() => ProfileRepository());
locator.registerFactory<PreregistrationRepository>(
() => PreregistrationRepository());
- locator.registerSingleton<ComwellTracking>(ComwellTracking());
- locator.registerSingleton<ComwellDatabase>(ComwellDatabase());
locator.registerFactory<HotelInformationRepository>(() => HotelInformationRepository());
-
}
}