Leave space - Add screen to leave a space.
This commit is contained in:
committed by
Benoit Marty
parent
a8c4d5d019
commit
74c2ee46d8
+14
-2
@@ -15,6 +15,7 @@ import kotlinx.coroutines.flow.asSharedFlow
|
||||
class RoomMembershipObserver {
|
||||
data class RoomMembershipUpdate(
|
||||
val roomId: RoomId,
|
||||
val isSpace: Boolean,
|
||||
val isUserInRoom: Boolean,
|
||||
val change: MembershipChange,
|
||||
)
|
||||
@@ -22,12 +23,23 @@ class RoomMembershipObserver {
|
||||
private val _updates = MutableSharedFlow<RoomMembershipUpdate>(extraBufferCapacity = 10)
|
||||
val updates = _updates.asSharedFlow()
|
||||
|
||||
suspend fun notifyUserLeftRoom(roomId: RoomId, membershipBeforeLeft: CurrentUserMembership) {
|
||||
suspend fun notifyUserLeftRoom(
|
||||
roomId: RoomId,
|
||||
isSpace: Boolean,
|
||||
membershipBeforeLeft: CurrentUserMembership,
|
||||
) {
|
||||
val membershipChange = when (membershipBeforeLeft) {
|
||||
CurrentUserMembership.INVITED -> MembershipChange.INVITATION_REJECTED
|
||||
CurrentUserMembership.KNOCKED -> MembershipChange.KNOCK_RETRACTED
|
||||
else -> MembershipChange.LEFT
|
||||
}
|
||||
_updates.emit(RoomMembershipUpdate(roomId, false, membershipChange))
|
||||
_updates.emit(
|
||||
RoomMembershipUpdate(
|
||||
roomId = roomId,
|
||||
isSpace = isSpace,
|
||||
isUserInRoom = false,
|
||||
change = membershipChange,
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user