diff --git a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt index 4f7b7f4f43..0d61b2dab7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt @@ -130,7 +130,7 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner setContent { val navState = rememberFragmentState() val listHostState = rememberFragmentState() - val detailLocation by navigator.viewModel.detailLocation.collectAsStateWithLifecycle() + val detailLocation by navigator.viewModel.detailLocation.collectAsStateWithLifecycle(MainNavigationDetailLocation.Empty) LaunchedEffect(detailLocation) { if (detailLocation is MainNavigationDetailLocation.Conversation) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigationViewModel.kt index 09ec98ddbc..13600bebae 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigationViewModel.kt @@ -6,16 +6,19 @@ package org.thoughtcrime.securesms.main import androidx.lifecycle.ViewModel -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.update +import androidx.lifecycle.viewModelScope +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.launch class MainNavigationViewModel : ViewModel() { - private val detailLocationFlow = MutableStateFlow(MainNavigationDetailLocation.Empty) + private val detailLocationFlow = MutableSharedFlow() - val detailLocation: StateFlow = detailLocationFlow + val detailLocation: SharedFlow = detailLocationFlow fun goTo(location: MainNavigationDetailLocation) { - detailLocationFlow.update { location } + viewModelScope.launch { + detailLocationFlow.emit(location) + } } }