From 1424296811164bf7de3b2785a6daa6459cf8ce70 Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 18 Oct 2024 20:58:53 +0200 Subject: [PATCH] knock : display knocked room in the room list --- .../impl/components/RoomSummaryRow.kt | 25 +++++++++++++++++++ .../datasource/RoomListRoomSummaryFactory.kt | 14 ++++++++--- .../impl/model/RoomListRoomSummaryProvider.kt | 4 +++ .../impl/model/RoomSummaryDisplayType.kt | 3 ++- 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomSummaryRow.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomSummaryRow.kt index 460871c62b..7a8fc00335 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomSummaryRow.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/components/RoomSummaryRow.kt @@ -38,6 +38,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons +import io.element.android.features.roomlist.impl.R import io.element.android.features.roomlist.impl.RoomListEvents import io.element.android.features.roomlist.impl.model.RoomListRoomSummary import io.element.android.features.roomlist.impl.model.RoomListRoomSummaryProvider @@ -122,6 +123,30 @@ internal fun RoomSummaryRow( LastMessageAndIndicatorRow(room = room) } } + RoomSummaryDisplayType.KNOCKED -> { + RoomSummaryScaffoldRow( + room = room, + onClick = onClick, + onLongClick = { + Timber.d("Long click on knocked room") + }, + modifier = modifier + ) { + NameAndTimestampRow( + name = room.name, + timestamp = room.timestamp, + isHighlighted = room.isHighlighted + ) + Text( + text = stringResource(id = R.string.screen_join_room_knock_sent_title), + maxLines = 1, + overflow = TextOverflow.Ellipsis, + style = ElementTheme.typography.fontBodyMdRegular, + color = ElementTheme.colors.textSecondary, + modifier = modifier, + ) + } + } } } diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt index 004ce9174b..534de3c4d4 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/datasource/RoomListRoomSummaryFactory.kt @@ -48,10 +48,16 @@ class RoomListRoomSummaryFactory @Inject constructor( inviteSender = roomInfo.inviter?.toInviteSender(), isDm = roomInfo.isDm, canonicalAlias = roomInfo.canonicalAlias, - displayType = if (roomInfo.currentUserMembership == CurrentUserMembership.INVITED) { - RoomSummaryDisplayType.INVITE - } else { - RoomSummaryDisplayType.ROOM + displayType = when (roomInfo.currentUserMembership) { + CurrentUserMembership.INVITED -> { + RoomSummaryDisplayType.INVITE + } + CurrentUserMembership.KNOCKED -> { + RoomSummaryDisplayType.KNOCKED + } + else -> { + RoomSummaryDisplayType.ROOM + } }, heroes = roomInfo.heroes.map { user -> user.getAvatarData(size = AvatarSize.RoomListItem) diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryProvider.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryProvider.kt index 894bc46377..670d8d3f38 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryProvider.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/model/RoomListRoomSummaryProvider.kt @@ -102,6 +102,10 @@ open class RoomListRoomSummaryProvider : PreviewParameterProvider