Only retrieve active users in RoomMemberListDataSource
This commit is contained in:
@@ -30,11 +30,13 @@ class RoomMemberListDataSource @Inject constructor(
|
||||
) {
|
||||
suspend fun search(query: String): List<RoomMember> = withContext(coroutineDispatchers.io) {
|
||||
val roomMembersState = room.membersStateFlow.value
|
||||
val roomMembers = roomMembersState.roomMembers().orEmpty()
|
||||
val activeRoomMembers = roomMembersState.roomMembers()
|
||||
?.filter { it.membership.isActive() }
|
||||
.orEmpty()
|
||||
val filteredMembers = if (query.isBlank()) {
|
||||
roomMembers
|
||||
activeRoomMembers
|
||||
} else {
|
||||
roomMembers.filter { member ->
|
||||
activeRoomMembers.filter { member ->
|
||||
member.userId.value.contains(query, ignoreCase = true) ||
|
||||
member.displayName?.contains(query, ignoreCase = true).orFalse()
|
||||
}
|
||||
|
||||
@@ -66,7 +66,9 @@ enum class RoomMembershipState {
|
||||
INVITE,
|
||||
JOIN,
|
||||
KNOCK,
|
||||
LEAVE
|
||||
LEAVE;
|
||||
|
||||
fun isActive(): Boolean = this == JOIN || this == INVITE
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user