From 1d0f584c3e6e12ea79d9a7615a9614ad3e79c179 Mon Sep 17 00:00:00 2001 From: davotoula Date: Mon, 22 Sep 2025 13:58:48 +0200 Subject: [PATCH] use produceState instead of LaunchedEffect --- .../loggedIn/home/live/LiveStatusIndicator.kt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/live/LiveStatusIndicator.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/live/LiveStatusIndicator.kt index 9cd42712c..8a9c2966f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/live/LiveStatusIndicator.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/live/LiveStatusIndicator.kt @@ -24,11 +24,8 @@ import android.util.Log import androidx.compose.foundation.Canvas import androidx.compose.foundation.layout.size import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue +import androidx.compose.runtime.produceState import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp @@ -62,16 +59,17 @@ fun LiveStatusIndicatorForChannel( accountViewModel: AccountViewModel, modifier: Modifier = Modifier, ) { - var isOnline by remember { mutableStateOf(false) } - - LaunchedEffect(channel) { + val isOnline by produceState(initialValue = false, key1 = channel) { while (true) { - isOnline = checkChannelIsOnline(channel, accountViewModel) - delay(30_000) // Check every 30 seconds + value = checkChannelIsOnline(channel, accountViewModel) + delay(30_000) // Poll every 30 seconds } } - LiveStatusIndicator(isOnline = isOnline, modifier = modifier) + LiveStatusIndicator( + isOnline = isOnline, + modifier = modifier, + ) } private suspend fun checkChannelIsOnline(