diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/NotificationFeedFilter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/NotificationFeedFilter.kt index 39dcc920e..72e7766a8 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/NotificationFeedFilter.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/NotificationFeedFilter.kt @@ -40,4 +40,8 @@ object NotificationFeedFilter : FeedFilter() { .toList() .reversed() } + + fun isDifferentAccount(account: Account): Boolean { + return this::account.isInitialized && this.account != account + } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt index c536fb83c..a08f68c2e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt @@ -53,9 +53,13 @@ fun AppNavigation( GlobalFeedFilter.account = account val searchFeedViewModel: NostrGlobalFeedViewModel = viewModel() + val restartNotificationList = NotificationFeedFilter.isDifferentAccount(account) + NotificationFeedFilter.account = account val notifFeedViewModel: NotificationViewModel = viewModel() + if (restartNotificationList) notifFeedViewModel.clear() + NavHost(navController, startDestination = Route.Home.route) { Route.Search.let { route -> composable(route.route, route.arguments, content = { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt index 34337677e..2e1956d1b 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt @@ -160,7 +160,12 @@ open class CardFeedViewModel(val dataSource: FeedFilter) : ViewModel() { LocalCache.live.observeForever(cacheListener) } + fun clear() { + lastNotes = null + } + override fun onCleared() { + clear() LocalCache.live.removeObserver(cacheListener) super.onCleared() }