Code simplification.

This commit is contained in:
Benoit Marty 2024-06-20 16:21:30 +02:00
parent 7cdcf872b3
commit b122c2c0a0

View file

@ -26,6 +26,7 @@ import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.CurrentUserMembership import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.roomlist.RoomSummary import io.element.android.libraries.matrix.api.roomlist.RoomSummary
import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails
import io.element.android.libraries.matrix.ui.model.getAvatarData import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.matrix.ui.model.toInviteSender import io.element.android.libraries.matrix.ui.model.toInviteSender
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
@ -63,34 +64,37 @@ class RoomListRoomSummaryFactory @Inject constructor(
} }
fun create(roomSummary: RoomSummary.Filled): RoomListRoomSummary { fun create(roomSummary: RoomSummary.Filled): RoomListRoomSummary {
val roomIdentifier = roomSummary.identifier() return create(roomSummary.details)
val avatarData = roomSummary.details.getAvatarData(size = AvatarSize.RoomListItem) }
private fun create(details: RoomSummaryDetails): RoomListRoomSummary {
val avatarData = details.getAvatarData(size = AvatarSize.RoomListItem)
return RoomListRoomSummary( return RoomListRoomSummary(
id = roomIdentifier, id = details.roomId.value,
roomId = RoomId(roomIdentifier), roomId = details.roomId,
name = roomSummary.details.name, name = details.name,
numberOfUnreadMessages = roomSummary.details.numUnreadMessages, numberOfUnreadMessages = details.numUnreadMessages,
numberOfUnreadMentions = roomSummary.details.numUnreadMentions, numberOfUnreadMentions = details.numUnreadMentions,
numberOfUnreadNotifications = roomSummary.details.numUnreadNotifications, numberOfUnreadNotifications = details.numUnreadNotifications,
isMarkedUnread = roomSummary.details.isMarkedUnread, isMarkedUnread = details.isMarkedUnread,
timestamp = lastMessageTimestampFormatter.format(roomSummary.details.lastMessageTimestamp), timestamp = lastMessageTimestampFormatter.format(details.lastMessageTimestamp),
lastMessage = roomSummary.details.lastMessage?.let { message -> lastMessage = details.lastMessage?.let { message ->
roomLastMessageFormatter.format(message.event, roomSummary.details.isDirect) roomLastMessageFormatter.format(message.event, details.isDirect)
}.orEmpty(), }.orEmpty(),
avatarData = avatarData, avatarData = avatarData,
userDefinedNotificationMode = roomSummary.details.userDefinedNotificationMode, userDefinedNotificationMode = details.userDefinedNotificationMode,
hasRoomCall = roomSummary.details.hasRoomCall, hasRoomCall = details.hasRoomCall,
isDirect = roomSummary.details.isDirect, isDirect = details.isDirect,
isFavorite = roomSummary.details.isFavorite, isFavorite = details.isFavorite,
inviteSender = roomSummary.details.inviter?.toInviteSender(), inviteSender = details.inviter?.toInviteSender(),
isDm = roomSummary.details.isDm, isDm = details.isDm,
canonicalAlias = roomSummary.details.canonicalAlias, canonicalAlias = details.canonicalAlias,
displayType = if (roomSummary.details.currentUserMembership == CurrentUserMembership.INVITED) { displayType = if (details.currentUserMembership == CurrentUserMembership.INVITED) {
RoomSummaryDisplayType.INVITE RoomSummaryDisplayType.INVITE
} else { } else {
RoomSummaryDisplayType.ROOM RoomSummaryDisplayType.ROOM
}, },
heroes = roomSummary.details.heroes.map { user -> heroes = details.heroes.map { user ->
user.getAvatarData(size = AvatarSize.RoomListItem) user.getAvatarData(size = AvatarSize.RoomListItem)
}.toImmutableList(), }.toImmutableList(),
) )