diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt b/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt index 3bd5bb851..87a632f43 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt @@ -51,7 +51,7 @@ object ServiceManager { NostrSingleEventDataSource.start() NostrSingleChannelDataSource.start() NostrSingleUserDataSource.start() - NostrThreadDataSource.start() + //NostrThreadDataSource.start() NostrChatroomListDataSource.start() } else { // if not logged in yet, start a basic service wit default relays diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ThreadScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ThreadScreen.kt index 96a095e97..93bd883e1 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ThreadScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ThreadScreen.kt @@ -8,19 +8,40 @@ import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.unit.dp +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavController import com.vitorpamplona.amethyst.service.NostrThreadDataSource +import com.vitorpamplona.amethyst.service.NostrUserProfileDataSource +import com.vitorpamplona.amethyst.service.NostrUserProfileFollowersDataSource +import com.vitorpamplona.amethyst.service.NostrUserProfileFollowsDataSource +import com.vitorpamplona.amethyst.service.NostrUserProfileZapsDataSource import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @Composable fun ThreadScreen(noteId: String?, accountViewModel: AccountViewModel, navController: NavController) { val account by accountViewModel.accountLiveData.observeAsState() - DisposableEffect(account) { + val lifeCycleOwner = LocalLifecycleOwner.current + + DisposableEffect(accountViewModel) { + val observer = LifecycleEventObserver { source, event -> + if (event == Lifecycle.Event.ON_RESUME) { + println("Thread Start") + NostrThreadDataSource.start() + } + if (event == Lifecycle.Event.ON_PAUSE) { + println("Thread Stop") + NostrThreadDataSource.stop() + } + } + + lifeCycleOwner.lifecycle.addObserver(observer) onDispose { - NostrThreadDataSource.stop() + lifeCycleOwner.lifecycle.removeObserver(observer) } }