Sort the room member list and display member roles (#2412)

* Sort the room member list and display member roles

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
This commit is contained in:
Jorge Martin Espinosa 2024-02-19 16:03:36 +01:00 committed by GitHub
parent 4f4a73fe64
commit 0a6f00e9df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 235 additions and 33 deletions

View file

@ -27,7 +27,17 @@ data class RoomMember(
val powerLevel: Long,
val normalizedPowerLevel: Long,
val isIgnored: Boolean,
val role: Role,
) {
/**
* Role of the RoomMember, based on its [powerLevel].
*/
enum class Role {
ADMIN,
MODERATOR,
USER
}
/**
* Disambiguated display name for the RoomMember.
* If the display name is null, the user ID is returned.
@ -49,6 +59,10 @@ enum class RoomMembershipState {
LEAVE
}
/**
* Returns the best name value to display for the RoomMember.
* If the [RoomMember.displayName] is present and not empty it'll be used, otherwise the [RoomMember.userId] will be used.
*/
fun RoomMember.getBestName(): String {
return displayName?.takeIf { it.isNotEmpty() } ?: userId.value
}

View file

@ -24,5 +24,5 @@ import kotlinx.parcelize.Parcelize
data class MatrixUser(
val userId: UserId,
val displayName: String? = null,
val avatarUrl: String? = null
val avatarUrl: String? = null,
) : Parcelable