mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Improve code again.
This commit is contained in:
+9
-6
@@ -43,15 +43,18 @@ data class MembersByRole(
|
|||||||
)
|
)
|
||||||
|
|
||||||
constructor(members: List<RoomMember>, comparator: Comparator<RoomMember>) : this(
|
constructor(members: List<RoomMember>, comparator: Comparator<RoomMember>) : this(
|
||||||
owners = members.filter { it.role is RoomMember.Role.Owner }.sorted(comparator),
|
owners = members.filterAndSort(comparator) { it.role is RoomMember.Role.Owner },
|
||||||
admins = members.filter { it.role == RoomMember.Role.Admin }.sorted(comparator),
|
admins = members.filterAndSort(comparator) { it.role == RoomMember.Role.Admin },
|
||||||
moderators = members.filter { it.role == RoomMember.Role.Moderator }.sorted(comparator),
|
moderators = members.filterAndSort(comparator) { it.role == RoomMember.Role.Moderator },
|
||||||
members = members.filter { it.role == RoomMember.Role.User }.sorted(comparator),
|
members = members.filterAndSort(comparator) { it.role == RoomMember.Role.User },
|
||||||
)
|
)
|
||||||
|
|
||||||
fun isEmpty() = owners.isEmpty() && admins.isEmpty() && moderators.isEmpty() && members.isEmpty()
|
fun isEmpty() = owners.isEmpty() && admins.isEmpty() && moderators.isEmpty() && members.isEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Iterable<RoomMember>.sorted(comparator: Comparator<RoomMember>): ImmutableList<RoomMember> {
|
private fun Iterable<RoomMember>.filterAndSort(
|
||||||
return sortedWith(comparator).toImmutableList()
|
comparator: Comparator<RoomMember>,
|
||||||
|
predicate: (RoomMember) -> Boolean,
|
||||||
|
): ImmutableList<RoomMember> {
|
||||||
|
return filter(predicate).sortedWith(comparator).toImmutableList()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user