Merge pull request #6045 from element-hq/feature/fga/invite_people_suggestions

Add suggestions section to InvitePeopleView
This commit is contained in:
ganfra 2026-01-20 13:45:42 +01:00 committed by GitHub
commit dd68db3fc1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 239 additions and 60 deletions

View file

@ -23,6 +23,7 @@ import io.element.android.libraries.matrix.api.room.RoomMember
import io.element.android.libraries.matrix.api.room.RoomMembersState
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
import io.element.android.libraries.matrix.api.room.isDm
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPermissions
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
import io.element.android.libraries.matrix.api.room.tombstone.PredecessorRoom
@ -112,6 +113,20 @@ class RustBaseRoom(
}
}
override suspend fun getDirectRoomMember(): RoomMember? = withContext(roomDispatcher) {
runCatchingExceptions {
if (info().isDm) {
innerRoom.membersNoSync().use { members ->
members.nextChunk(members.len())
?.map(RoomMemberMapper::map)
?.firstOrNull { roomMember -> roomMember.userId != sessionId && roomMember.membership.isActive() }
}
} else {
null
}
}.getOrNull()
}
override suspend fun getUpdatedMember(userId: UserId): Result<RoomMember> = withContext(roomDispatcher) {
runCatchingExceptions {
RoomMemberMapper.map(innerRoom.member(userId.value))