From f6b611aa30655ab61ac37c69b3fa961434e4fc7b Mon Sep 17 00:00:00 2001 From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:58:21 +0700 Subject: [PATCH] android, desktop: check existence before deleting database (#5298) --- .../chat/simplex/common/views/database/DatabaseView.kt | 5 ++++- .../chat/simplex/common/views/helpers/DatabaseUtils.kt | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/database/DatabaseView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/database/DatabaseView.kt index 8185122089..af40aa2e70 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/database/DatabaseView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/database/DatabaseView.kt @@ -719,13 +719,16 @@ private fun deleteChatAlert(onConfirm: () -> Unit) { } private suspend fun deleteChat(m: ChatModel, progressIndicator: MutableState) { + if (!DatabaseUtils.hasAtLeastOneDatabase(dataDir.absolutePath)) { + return + } progressIndicator.value = true try { deleteChatAsync(m) operationEnded(m, progressIndicator) { AlertManager.shared.showAlertMsg(generalGetString(MR.strings.chat_database_deleted), generalGetString(MR.strings.restart_the_app_to_create_a_new_chat_profile)) } - } catch (e: Error) { + } catch (e: Throwable) { operationEnded(m, progressIndicator) { AlertManager.shared.showAlertMsg(generalGetString(MR.strings.error_deleting_database), e.toString()) } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/DatabaseUtils.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/DatabaseUtils.kt index c621f186cd..4827e6ae61 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/DatabaseUtils.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/DatabaseUtils.kt @@ -39,7 +39,7 @@ object DatabaseUtils { } } - private fun hasAtLeastOneDatabase(rootDir: String): Boolean = + fun hasAtLeastOneDatabase(rootDir: String): Boolean = File(rootDir + File.separator + chatDatabaseFileName).exists() || File(rootDir + File.separator + agentDatabaseFileName).exists() fun hasOnlyOneDatabase(rootDir: String): Boolean =