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 fa8a42c76..faef3c67e 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 @@ -11,12 +11,17 @@ import androidx.compose.material.Tab import androidx.compose.material.TabRow import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.viewmodel.compose.viewModel import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.ui.dal.HiddenAccountsFeedFilter @@ -30,10 +35,34 @@ fun HiddenUsersScreen(accountViewModel: AccountViewModel, nav: (String) -> Unit) val accountState by accountViewModel.accountLiveData.observeAsState() val account = accountState?.account + val lifeCycleOwner = LocalLifecycleOwner.current + val feedViewModel: NostrHiddenAccountsFeedViewModel = viewModel() + if (account != null) { HiddenAccountsFeedFilter.account = account - val feedViewModel: NostrHiddenAccountsFeedViewModel = viewModel() + LaunchedEffect(accountViewModel) { + HiddenAccountsFeedFilter.account = account + feedViewModel.invalidateData() + } + + DisposableEffect(accountViewModel) { + val observer = LifecycleEventObserver { _, event -> + if (event == Lifecycle.Event.ON_RESUME) { + println("Hidden Users Start") + HiddenAccountsFeedFilter.account = account + feedViewModel.invalidateData() + } + if (event == Lifecycle.Event.ON_PAUSE) { + println("Hidden Users Stop") + } + } + + lifeCycleOwner.lifecycle.addObserver(observer) + onDispose { + lifeCycleOwner.lifecycle.removeObserver(observer) + } + } Column(Modifier.fillMaxHeight()) { Column(modifier = Modifier.padding(start = 10.dp, end = 10.dp)) {