From 6600a495646aecd9455f0425e44c164f67f913b4 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Thu, 18 Apr 2024 19:34:15 -0400 Subject: [PATCH] Fixes the lack of refresh when adding hidden words in the Security filters --- .../ui/screen/loggedIn/HiddenUsersScreen.kt | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HiddenUsersScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HiddenUsersScreen.kt index 37ee700b..3ae9fed9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HiddenUsersScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HiddenUsersScreen.kt @@ -74,7 +74,6 @@ import com.vitorpamplona.amethyst.ui.screen.NostrSpammerAccountsFeedViewModel import com.vitorpamplona.amethyst.ui.screen.RefresheableBox import com.vitorpamplona.amethyst.ui.screen.RefreshingFeedUserFeedView import com.vitorpamplona.amethyst.ui.screen.StringFeedView -import com.vitorpamplona.amethyst.ui.screen.UserFeedViewModel import com.vitorpamplona.amethyst.ui.theme.ButtonBorder import com.vitorpamplona.amethyst.ui.theme.ButtonPadding import com.vitorpamplona.amethyst.ui.theme.DividerThickness @@ -104,6 +103,12 @@ fun HiddenUsersScreen( factory = NostrSpammerAccountsFeedViewModel.Factory(accountViewModel.account), ) + WatchAccountAndBlockList(accountViewModel = accountViewModel) { + hiddenFeedViewModel.invalidateData() + spammerFeedViewModel.invalidateData() + hiddenWordsFeedViewModel.invalidateData() + } + HiddenUsersScreen( hiddenFeedViewModel, hiddenWordsFeedViewModel, @@ -197,14 +202,8 @@ fun HiddenUsersScreen( } HorizontalPager(state = pagerState) { page -> when (page) { - 0 -> - RefreshingUserFeedView(hiddenFeedViewModel, accountViewModel) { - RefreshingFeedUserFeedView(hiddenFeedViewModel, accountViewModel, nav) - } - 1 -> - RefreshingUserFeedView(spammerFeedViewModel, accountViewModel) { - RefreshingFeedUserFeedView(spammerFeedViewModel, accountViewModel, nav) - } + 0 -> RefreshingFeedUserFeedView(hiddenFeedViewModel, accountViewModel, nav) + 1 -> RefreshingFeedUserFeedView(spammerFeedViewModel, accountViewModel, nav) 2 -> HiddenWordsFeed(hiddenWordsViewModel, accountViewModel) } } @@ -268,25 +267,17 @@ private fun AddMuteWordTextField(accountViewModel: AccountViewModel) { } } -@Composable -fun RefreshingUserFeedView( - feedViewModel: UserFeedViewModel, - accountViewModel: AccountViewModel, - inner: @Composable () -> Unit, -) { - WatchAccountAndBlockList(feedViewModel, accountViewModel) - inner() -} - @Composable fun WatchAccountAndBlockList( - feedViewModel: UserFeedViewModel, accountViewModel: AccountViewModel, + invalidate: () -> Unit, ) { val accountState by accountViewModel.accountLiveData.observeAsState() val blockListState by accountViewModel.account.flowHiddenUsers.collectAsStateWithLifecycle() - LaunchedEffect(accountViewModel, accountState, blockListState) { feedViewModel.invalidateData() } + LaunchedEffect(accountViewModel, accountState, blockListState) { + invalidate() + } } @Composable