From e150c359e9f54e0278f990b33d62c71eba561ed2 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 19 Dec 2023 13:40:52 +0100 Subject: [PATCH] Do not render `roomId` if the room has no canonical alias #1970 --- .../impl/RoomSelectStateProvider.kt | 14 +++++++---- .../roomselect/impl/RoomSelectView.kt | 23 ++++++++++--------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectStateProvider.kt b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectStateProvider.kt index f15a734337..d06e0be6d6 100644 --- a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectStateProvider.kt +++ b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectStateProvider.kt @@ -17,12 +17,12 @@ package io.element.android.libraries.roomselect.impl import androidx.compose.ui.tooling.preview.PreviewParameterProvider -import io.element.android.libraries.roomselect.api.RoomSelectMode import io.element.android.libraries.designsystem.theme.components.SearchBarResultState import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.message.RoomMessage import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails +import io.element.android.libraries.roomselect.api.RoomSelectMode import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf @@ -47,7 +47,7 @@ open class RoomSelectStateProvider : PreviewParameterProvider { ) } -fun aRoomSelectState( +private fun aRoomSelectState( resultState: SearchBarResultState> = SearchBarResultState.NotSearching(), query: String = "", isSearchActive: Boolean = false, @@ -61,12 +61,16 @@ fun aRoomSelectState( eventSink = {} ) -internal fun aForwardMessagesRoomList() = persistentListOf( +private fun aForwardMessagesRoomList() = persistentListOf( aRoomDetailsState(), - aRoomDetailsState(roomId = RoomId("!room2:domain"), canonicalAlias = "#element-x-room:matrix.org"), + aRoomDetailsState( + roomId = RoomId("!room2:domain"), + name = "Room with alias", + canonicalAlias = "#alias:example.org", + ), ) -fun aRoomDetailsState( +private fun aRoomDetailsState( roomId: RoomId = RoomId("!room:domain"), name: String = "roomName", canonicalAlias: String? = null, diff --git a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt index 3913184b8f..d1c1b51264 100644 --- a/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt +++ b/libraries/roomselect/impl/src/main/kotlin/io/element/android/libraries/roomselect/impl/RoomSelectView.kt @@ -41,7 +41,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme -import io.element.android.libraries.roomselect.api.RoomSelectMode import io.element.android.libraries.designsystem.components.avatar.Avatar import io.element.android.libraries.designsystem.components.avatar.AvatarData import io.element.android.libraries.designsystem.components.avatar.AvatarSize @@ -62,6 +61,7 @@ import io.element.android.libraries.designsystem.theme.roomListRoomName import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.roomlist.RoomSummaryDetails import io.element.android.libraries.matrix.ui.components.SelectedRoom +import io.element.android.libraries.roomselect.api.RoomSelectMode import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.collections.immutable.ImmutableList @@ -221,10 +221,9 @@ private fun RoomSummaryView( .heightIn(56.dp), verticalAlignment = Alignment.CenterVertically ) { - val roomAlias = summary.canonicalAlias ?: summary.roomId.value Avatar( avatarData = AvatarData( - id = roomAlias, + id = summary.roomId.value, name = summary.name, url = summary.avatarURLString, size = AvatarSize.ForwardRoomListItem, @@ -243,14 +242,16 @@ private fun RoomSummaryView( maxLines = 1, overflow = TextOverflow.Ellipsis ) - // Id - Text( - text = roomAlias, - color = MaterialTheme.roomListRoomMessage(), - style = ElementTheme.typography.fontBodySmRegular, - maxLines = 1, - overflow = TextOverflow.Ellipsis - ) + // Alias + summary.canonicalAlias?.let { alias -> + Text( + text = alias, + color = MaterialTheme.roomListRoomMessage(), + style = ElementTheme.typography.fontBodySmRegular, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } } RadioButton(selected = isSelected, onClick = { onSelection(summary) }) }