Merge pull request #4360 from element-hq/feature/fga/left_room_snackbar

change(left room snackbar) : manage cancel knock and decline invite
This commit is contained in:
ganfra 2025-03-05 10:19:10 +01:00 committed by GitHub
commit dc953310b0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 28 additions and 14 deletions

View file

@ -25,4 +25,12 @@ class RoomMembershipObserver {
suspend fun notifyUserLeftRoom(roomId: RoomId) {
_updates.emit(RoomMembershipUpdate(roomId, false, MembershipChange.LEFT))
}
suspend fun notifyUserDeclinedInvite(roomId: RoomId) {
_updates.emit(RoomMembershipUpdate(roomId, false, MembershipChange.INVITATION_REJECTED))
}
suspend fun notifyUserCanceledKnock(roomId: RoomId) {
_updates.emit(RoomMembershipUpdate(roomId, false, MembershipChange.KNOCK_RETRACTED))
}
}

View file

@ -9,6 +9,7 @@ package io.element.android.libraries.matrix.impl.room
import androidx.compose.runtime.Immutable
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.room.RoomMembershipDetails
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
import io.element.android.libraries.matrix.api.room.RoomPreview
@ -33,7 +34,11 @@ class RustRoomPreview(
override suspend fun leave(): Result<Unit> = runCatching {
inner.leave()
}.onSuccess {
roomMembershipObserver?.notifyUserLeftRoom(info.roomId)
when (info.membership) {
CurrentUserMembership.INVITED -> roomMembershipObserver?.notifyUserDeclinedInvite(info.roomId)
CurrentUserMembership.KNOCKED -> roomMembershipObserver?.notifyUserCanceledKnock(info.roomId)
else -> Unit
}
}
override suspend fun forget(): Result<Unit> = runCatching {