fixed getRoomName()

This commit is contained in:
2022-04-30 20:10:55 +02:00
parent 3556b74065
commit cd64ec5c18
2 changed files with 10 additions and 4 deletions

View File

@@ -10,7 +10,7 @@ class Travel(
var room: RoomId,
var driver: UserId,
var options: TravelOptions,
var travelers: List<UserId> = listOf(),
var travelers: List<Pair<UserId, Int>> = listOf(),
var duplicateNum: Int? = null,
var canceled: Boolean = false
)
@@ -39,9 +39,10 @@ class TravelOptions(
return "Travel ${from}-${to} $date $time"
}
fun getRoomName(duplicateNum: Int?, travelers: List<UserId>? = null): String {
fun getRoomName(duplicateNum: Int?, travelers: List<Pair<UserId, Int>>? = null): String {
val attemptSuffix = if ((duplicateNum ?: 0) > 0) " ($duplicateNum)" else ""
val availableSeats = seats - (travelers?.size ?: 0)
val usedSeats = travelers?.sumOf { it.second } ?: 0
val availableSeats = seats - usedSeats
return getRoomNamePrefix() + " | $availableSeats seats available" + attemptSuffix
}

View File

@@ -52,7 +52,12 @@ object TravelRepository {
suspend fun getTravelers(roomId: RoomId) = MatrixApiClient.client.rooms.getState(roomId).getOrNull()?.filter {
val content = it.content
(content is TravelMembershipStateEventContent) && (content.membership == Membership.JOIN.value)
}?.map { UserId("@${it.stateKey}") }
}?.map {
Pair(
UserId("@${it.stateKey}"),
(it.content as TravelMembershipStateEventContent).seats
)
}
private suspend fun getUsedSeats(roomId: RoomId) = MatrixApiClient.client.rooms.getState(roomId).getOrNull()?.map {
it.content