feature(space) : ensure RoomSummaryRow can display space invites

This commit is contained in:
ganfra 2025-10-02 16:15:33 +02:00
parent 73627d9319
commit 0d4e2dd2fb
5 changed files with 23 additions and 4 deletions

View file

@ -189,10 +189,14 @@ private fun RoomSummaryScaffoldRow(
) { ) {
Avatar( Avatar(
avatarData = room.avatarData, avatarData = room.avatarData,
avatarType = AvatarType.Room( avatarType = if (room.isSpace) {
heroes = room.heroes, AvatarType.Space(isTombstoned = room.isTombstoned)
isTombstoned = room.isTombstoned, } else {
), AvatarType.Room(
heroes = room.heroes,
isTombstoned = room.isTombstoned,
)
},
hideImage = hideAvatarImage, hideImage = hideAvatarImage,
) )
Spacer(modifier = Modifier.width(16.dp)) Spacer(modifier = Modifier.width(16.dp))

View file

@ -69,6 +69,7 @@ class RoomListRoomSummaryFactory(
user.getAvatarData(size = AvatarSize.RoomListItem) user.getAvatarData(size = AvatarSize.RoomListItem)
}.toImmutableList(), }.toImmutableList(),
isTombstoned = roomInfo.successorRoom != null, isTombstoned = roomInfo.successorRoom != null,
isSpace = roomInfo.isSpace,
) )
} }
} }

View file

@ -38,6 +38,7 @@ data class RoomListRoomSummary(
val inviteSender: InviteSender?, val inviteSender: InviteSender?,
val isTombstoned: Boolean, val isTombstoned: Boolean,
val heroes: ImmutableList<AvatarData>, val heroes: ImmutableList<AvatarData>,
val isSpace: Boolean,
) { ) {
val isHighlighted = userDefinedNotificationMode != RoomNotificationMode.MUTE && val isHighlighted = userDefinedNotificationMode != RoomNotificationMode.MUTE &&
(numberOfUnreadNotifications > 0 || numberOfUnreadMentions > 0) || (numberOfUnreadNotifications > 0 || numberOfUnreadMentions > 0) ||

View file

@ -102,6 +102,15 @@ open class RoomListRoomSummaryProvider : PreviewParameterProvider<RoomListRoomSu
displayName = "Bob", displayName = "Bob",
), ),
), ),
aRoomListRoomSummary(
name = "A space invite",
displayType = RoomSummaryDisplayType.INVITE,
inviteSender = anInviteSender(
userId = UserId("@bob:matrix.org"),
displayName = "Bob",
),
isSpace = true
),
aRoomListRoomSummary( aRoomListRoomSummary(
name = "A knocked room", name = "A knocked room",
displayType = RoomSummaryDisplayType.KNOCKED, displayType = RoomSummaryDisplayType.KNOCKED,
@ -151,6 +160,7 @@ internal fun aRoomListRoomSummary(
canonicalAlias: RoomAlias? = null, canonicalAlias: RoomAlias? = null,
heroes: List<AvatarData> = emptyList(), heroes: List<AvatarData> = emptyList(),
isTombstoned: Boolean = false, isTombstoned: Boolean = false,
isSpace: Boolean = false,
) = RoomListRoomSummary( ) = RoomListRoomSummary(
id = id, id = id,
roomId = RoomId(id), roomId = RoomId(id),
@ -172,4 +182,5 @@ internal fun aRoomListRoomSummary(
canonicalAlias = canonicalAlias, canonicalAlias = canonicalAlias,
heroes = heroes.toImmutableList(), heroes = heroes.toImmutableList(),
isTombstoned = isTombstoned, isTombstoned = isTombstoned,
isSpace = isSpace
) )

View file

@ -85,6 +85,7 @@ internal fun createRoomListRoomSummary(
heroes: List<AvatarData> = emptyList(), heroes: List<AvatarData> = emptyList(),
timestamp: String? = null, timestamp: String? = null,
isTombstoned: Boolean = false, isTombstoned: Boolean = false,
isSpace: Boolean = false,
) = RoomListRoomSummary( ) = RoomListRoomSummary(
id = A_ROOM_ID.value, id = A_ROOM_ID.value,
roomId = A_ROOM_ID, roomId = A_ROOM_ID,
@ -106,4 +107,5 @@ internal fun createRoomListRoomSummary(
isDm = false, isDm = false,
heroes = heroes.toPersistentList(), heroes = heroes.toPersistentList(),
isTombstoned = isTombstoned, isTombstoned = isTombstoned,
isSpace = isSpace
) )