mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 04:58:45 +00:00
Deselect active item when in full-screen pane.
This commit is contained in:
committed by
jeffrey-signal
parent
4fc516c84f
commit
7b7b6a32ee
@@ -19,6 +19,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.SharedFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -49,11 +50,18 @@ class MainNavigationViewModel(
|
||||
private val internalDetailLocation = MutableSharedFlow<MainNavigationDetailLocation>()
|
||||
val detailLocation: SharedFlow<MainNavigationDetailLocation> = internalDetailLocation
|
||||
|
||||
private val internalIsFullScreenPane = MutableStateFlow(false)
|
||||
val isFullScreenPane: StateFlow<Boolean> = internalIsFullScreenPane
|
||||
|
||||
private val internalActiveChatThreadId = MutableStateFlow(-1L)
|
||||
val observableActiveChatThreadId: Observable<Long> = internalActiveChatThreadId.asObservable()
|
||||
val observableActiveChatThreadId: Observable<Long> = internalActiveChatThreadId.combine(isFullScreenPane) { id, expanded ->
|
||||
if (expanded) -1L else id
|
||||
}.asObservable()
|
||||
|
||||
private val internalActiveCallId = MutableStateFlow<CallLogRow.Id?>(null)
|
||||
val observableActiveCallId: Observable<Optional<CallLogRow.Id>> = internalActiveCallId.map { Optional.ofNullable(it) }.asObservable()
|
||||
val observableActiveCallId: Observable<Optional<out CallLogRow.Id>> = internalActiveCallId.map { Optional.ofNullable(it) }.combine(isFullScreenPane) { id, expanded ->
|
||||
if (expanded) Optional.ofNullable(null) else id
|
||||
}.asObservable()
|
||||
|
||||
private val internalMegaphone = MutableStateFlow(Megaphone.NONE)
|
||||
val megaphone: StateFlow<Megaphone> = internalMegaphone
|
||||
@@ -69,9 +77,6 @@ class MainNavigationViewModel(
|
||||
private val internalMainNavigationState = MutableStateFlow(MainNavigationState(currentListLocation = initialListLocation))
|
||||
val mainNavigationState: StateFlow<MainNavigationState> = internalMainNavigationState
|
||||
|
||||
private val internalIsFullScreenPane = MutableStateFlow(false)
|
||||
val isFullScreenPane: StateFlow<Boolean> = internalIsFullScreenPane
|
||||
|
||||
/**
|
||||
* This is Rx because these are still accessed from Java.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user