mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-23 20:48:43 +00:00
Prevent conversation re-launch on reconfiguration of screen.
This commit is contained in:
@@ -130,7 +130,7 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
|
|||||||
setContent {
|
setContent {
|
||||||
val navState = rememberFragmentState()
|
val navState = rememberFragmentState()
|
||||||
val listHostState = rememberFragmentState()
|
val listHostState = rememberFragmentState()
|
||||||
val detailLocation by navigator.viewModel.detailLocation.collectAsStateWithLifecycle()
|
val detailLocation by navigator.viewModel.detailLocation.collectAsStateWithLifecycle(MainNavigationDetailLocation.Empty)
|
||||||
|
|
||||||
LaunchedEffect(detailLocation) {
|
LaunchedEffect(detailLocation) {
|
||||||
if (detailLocation is MainNavigationDetailLocation.Conversation) {
|
if (detailLocation is MainNavigationDetailLocation.Conversation) {
|
||||||
|
|||||||
@@ -6,16 +6,19 @@
|
|||||||
package org.thoughtcrime.securesms.main
|
package org.thoughtcrime.securesms.main
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import androidx.lifecycle.viewModelScope
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
import kotlinx.coroutines.flow.update
|
import kotlinx.coroutines.flow.SharedFlow
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class MainNavigationViewModel : ViewModel() {
|
class MainNavigationViewModel : ViewModel() {
|
||||||
private val detailLocationFlow = MutableStateFlow<MainNavigationDetailLocation>(MainNavigationDetailLocation.Empty)
|
private val detailLocationFlow = MutableSharedFlow<MainNavigationDetailLocation>()
|
||||||
|
|
||||||
val detailLocation: StateFlow<MainNavigationDetailLocation> = detailLocationFlow
|
val detailLocation: SharedFlow<MainNavigationDetailLocation> = detailLocationFlow
|
||||||
|
|
||||||
fun goTo(location: MainNavigationDetailLocation) {
|
fun goTo(location: MainNavigationDetailLocation) {
|
||||||
detailLocationFlow.update { location }
|
viewModelScope.launch {
|
||||||
|
detailLocationFlow.emit(location)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user