@@ -47,6 +47,7 @@ import io.element.android.libraries.architecture.BaseFlowNode
47
47
import io.element.android.libraries.architecture.NodeInputs
48
48
import io.element.android.libraries.architecture.createNode
49
49
import io.element.android.libraries.architecture.inputs
50
+ import io.element.android.libraries.core.bool.orFalse
50
51
import io.element.android.libraries.di.SessionScope
51
52
import io.element.android.libraries.matrix.api.MatrixClient
52
53
import io.element.android.libraries.matrix.api.core.RoomAlias
@@ -55,7 +56,6 @@ import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
55
56
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
56
57
import kotlinx.coroutines.flow.combine
57
58
import kotlinx.coroutines.flow.distinctUntilChanged
58
- import kotlinx.coroutines.flow.filterNotNull
59
59
import kotlinx.coroutines.flow.launchIn
60
60
import kotlinx.coroutines.flow.map
61
61
import kotlinx.coroutines.launch
@@ -123,12 +123,10 @@ class RoomFlowNode @AssistedInject constructor(
123
123
private fun subscribeToRoomInfoFlow (roomId : RoomId ) {
124
124
val roomInfoFlow = client.getRoomInfoFlow(
125
125
roomId = roomId
126
- )
127
- .map { it.getOrNull() }
128
- .filterNotNull()
126
+ ).map { it.getOrNull() }
129
127
130
- val isSpaceFlow = roomInfoFlow.map { it.isSpace }.distinctUntilChanged()
131
- val currentMembershipFlow = roomInfoFlow.map { it.currentUserMembership }.distinctUntilChanged()
128
+ val isSpaceFlow = roomInfoFlow.map { it? .isSpace.orFalse() }.distinctUntilChanged()
129
+ val currentMembershipFlow = roomInfoFlow.map { it? .currentUserMembership }.distinctUntilChanged()
132
130
combine(currentMembershipFlow, isSpaceFlow) { membership, isSpace ->
133
131
Timber .d(" Room membership: $membership " )
134
132
when (membership) {
@@ -147,8 +145,8 @@ class RoomFlowNode @AssistedInject constructor(
147
145
// Left the room, navigate out of this flow
148
146
navigateUp()
149
147
}
150
- CurrentUserMembership . INVITED -> {
151
- // Was invited, display the join room screen
148
+ else -> {
149
+ // Was invited or the room is not known , display the join room screen
152
150
backstack.newRoot(NavTarget .JoinRoom (roomId))
153
151
}
154
152
}
0 commit comments