favorite : use distinctUntilChanged
This commit is contained in:
parent
fdba1b2dc6
commit
497f4d9526
1 changed files with 14 additions and 14 deletions
|
|
@ -54,8 +54,10 @@ import io.element.android.libraries.matrix.api.verification.SessionVerificationS
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.flow.collect
|
import kotlinx.coroutines.flow.collect
|
||||||
|
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||||
import kotlinx.coroutines.flow.first
|
import kotlinx.coroutines.flow.first
|
||||||
import kotlinx.coroutines.flow.flatMapLatest
|
import kotlinx.coroutines.flow.flatMapLatest
|
||||||
|
import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.flow.takeWhile
|
import kotlinx.coroutines.flow.takeWhile
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
@ -206,23 +208,21 @@ class RoomListPresenter @Inject constructor(
|
||||||
|
|
||||||
client.getRoom(event.roomListRoomSummary.roomId)?.use { room ->
|
client.getRoom(event.roomListRoomSummary.roomId)?.use { room ->
|
||||||
|
|
||||||
val isContextMenuShownFlow = snapshotFlow {
|
val isShowingContextMenuFlow = snapshotFlow { contextMenuState.value is RoomListState.ContextMenu.Shown }
|
||||||
contextMenuState.value is RoomListState.ContextMenu.Shown
|
.distinctUntilChanged()
|
||||||
}
|
|
||||||
|
|
||||||
room.roomInfoFlow
|
val isFavoriteFlow = room.roomInfoFlow
|
||||||
.onEach { roomInfo ->
|
.map { it.isFavorite }
|
||||||
contextMenuState.value = initialState.copy(
|
.distinctUntilChanged()
|
||||||
isFavorite = roomInfo.isFavorite,
|
|
||||||
)
|
isFavoriteFlow
|
||||||
}
|
.onEach { isFavorite ->
|
||||||
.flatMapLatest {
|
contextMenuState.value = initialState.copy(isFavorite = isFavorite)
|
||||||
isContextMenuShownFlow
|
|
||||||
}
|
|
||||||
.takeWhile { isContextMenuShown ->
|
|
||||||
isContextMenuShown
|
|
||||||
}
|
}
|
||||||
|
.flatMapLatest { isShowingContextMenuFlow }
|
||||||
|
.takeWhile { isShowingContextMenu -> isShowingContextMenu }
|
||||||
.collect()
|
.collect()
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue