diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a84f79078adbb5272cd9e36e7eb0d7c05648ea2..e24fc6e8d73c89eb7832188e6de70178992d63f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Duplicated libraries in the About > Licenses are now differentiable +- Update selected account when deleting account ### Security diff --git a/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/MatrixMessengerSettings.kt b/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/MatrixMessengerSettings.kt index df4712a1a0021aed5dc9f34baef254122562d467..00d246a31623da1af99534b959b9969eb7d2396d 100644 --- a/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/MatrixMessengerSettings.kt +++ b/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/MatrixMessengerSettings.kt @@ -154,7 +154,14 @@ class MatrixMessengerSettingsHolderImpl( } override suspend fun delete(userId: UserId) = update<MatrixMessengerSettingsBase> { - it.copy(accounts = it.accounts - userId) + val accounts = it.accounts - userId + val selectedAccount = + if (it.selectedAccount == userId) accounts.keys.firstOrNull() + else it.selectedAccount + it.copy( + accounts = accounts, + selectedAccount = selectedAccount, + ) } }