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)