From 7071174aed90c193d6f7fd14f9574a810d07311b Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sun, 24 Sep 2023 18:12:50 -0400 Subject: [PATCH] BugFix for restarting the relay connection when switching accounts after Amber's integration. --- .../main/java/com/vitorpamplona/amethyst/ServiceManager.kt | 7 +++++++ .../amethyst/ui/screen/AccountStateViewModel.kt | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt b/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt index 3fccace90..12b433016 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt @@ -142,6 +142,13 @@ object ServiceManager { LocalCache.pruneExpiredEvents() } } + + fun restartIfDifferentAccount(account: Account, context: Context) { + if (this.account != account) { + pause() + start(account, context) + } + } } object SingletonDiskCache { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt index a140c9dae..090892a66 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt @@ -88,7 +88,7 @@ class AccountStateViewModel(val context: Context) : ViewModel() { _accountContent.update { AccountState.LoggedInViewOnly(account) } } GlobalScope.launch(Dispatchers.IO) { - ServiceManager.start(account, context) + ServiceManager.restartIfDifferentAccount(account, context) } GlobalScope.launch(Dispatchers.Main) { account.saveable.observeForever(saveListener)