From 4d7d5bf181a85a831eceb1a4ae19416b5d23d2b3 Mon Sep 17 00:00:00 2001 From: krille-chan Date: Sun, 31 Dec 2023 09:05:04 +0100 Subject: [PATCH] chore: Delete database after failed to create --- .../flutter_matrix_sdk_database_builder.dart | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/utils/matrix_sdk_extensions/flutter_matrix_sdk_database_builder.dart b/lib/utils/matrix_sdk_extensions/flutter_matrix_sdk_database_builder.dart index 210c8831..850b8ebf 100644 --- a/lib/utils/matrix_sdk_extensions/flutter_matrix_sdk_database_builder.dart +++ b/lib/utils/matrix_sdk_extensions/flutter_matrix_sdk_database_builder.dart @@ -18,16 +18,28 @@ import 'package:fluffychat/utils/matrix_sdk_extensions/flutter_hive_collections_ import 'package:fluffychat/utils/platform_infos.dart'; Future flutterMatrixSdkDatabaseBuilder(Client client) async { + MatrixSdkDatabase? database; try { - final database = await _constructDatabase(client); + database = await _constructDatabase(client); await database.open(); return database; } catch (e) { + // Try to delete database so that it can created again on next init: + database?.delete().catchError( + (e, s) => Logs().w( + 'Unable to delete database, after failed construction', + e, + s, + ), + ); + + // Send error notification: final l10n = lookupL10n(PlatformDispatcher.instance.locale); ClientManager.sendInitNotification( l10n.initAppError, l10n.databaseBuildErrorBody(AppConfig.newIssueUrl.toString()), ); + return FlutterHiveCollectionsDatabase.databaseBuilder(client); } }