From e150c359e9f54e0278f990b33d62c71eba561ed2 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 19 Dec 2023 13:40:52 +0100 Subject: [PATCH 1/5] 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) }) } From 9f6e59db8fa114191a543103553ea07272aca37e Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 19 Dec 2023 13:42:07 +0100 Subject: [PATCH 2/5] Change name to match use case. --- .../libraries/designsystem/components/avatar/AvatarSize.kt | 2 +- .../element/android/libraries/roomselect/impl/RoomSelectView.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarSize.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarSize.kt index 0b4264e8e6..9a5209ebfb 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarSize.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/AvatarSize.kt @@ -25,7 +25,7 @@ enum class AvatarSize(val dp: Dp) { RoomHeader(96.dp), RoomListItem(52.dp), - ForwardRoomListItem(36.dp), + RoomSelectRoomListItem(36.dp), UserPreference(56.dp), 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 d1c1b51264..8efaa6d083 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 @@ -226,7 +226,7 @@ private fun RoomSummaryView( id = summary.roomId.value, name = summary.name, url = summary.avatarURLString, - size = AvatarSize.ForwardRoomListItem, + size = AvatarSize.RoomSelectRoomListItem, ), ) Column( From 5e22da4aaaaabaf2e41956f7ed838fe478705932 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 19 Dec 2023 13:42:43 +0100 Subject: [PATCH 3/5] changelog --- changelog.d/1970.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/1970.bugfix diff --git a/changelog.d/1970.bugfix b/changelog.d/1970.bugfix new file mode 100644 index 0000000000..7bdddd1396 --- /dev/null +++ b/changelog.d/1970.bugfix @@ -0,0 +1 @@ +Do not render `roomId` if the room has no canonical alias. From bff982eabd4f3203c9855ad1d1cfeaadde6ce354 Mon Sep 17 00:00:00 2001 From: ElementBot Date: Tue, 19 Dec 2023 12:53:27 +0000 Subject: [PATCH 4/5] Update screenshots --- ...r_Avatar_null_Avatars_Avatar_0_null_10,NEXUS_5,1.0,en].png | 4 ++-- ...r_Avatar_null_Avatars_Avatar_0_null_11,NEXUS_5,1.0,en].png | 4 ++-- ...ar_Avatar_null_Avatars_Avatar_0_null_9,NEXUS_5,1.0,en].png | 4 ++-- ...iew_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,en].png | 4 ++-- ...iew_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,en].png | 4 ++-- ...iew_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,en].png | 4 ++-- ...w_null_RoomSelectView-Night-0_2_null_2,NEXUS_5,1.0,en].png | 4 ++-- ...w_null_RoomSelectView-Night-0_2_null_3,NEXUS_5,1.0,en].png | 4 ++-- ...w_null_RoomSelectView-Night-0_2_null_4,NEXUS_5,1.0,en].png | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_10,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_10,NEXUS_5,1.0,en].png index 56cb2f3f4d..d52001cf81 100644 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_10,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_10,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:385ccb31d2b5a286e2bc4db603d0332295fb6f31841e59440f042c99c5c3d5d5 -size 18837 +oid sha256:644e19416b18c16d3e7de1f81e040c0c63de69790e5ca5fb187cc2ee6fff0257 +size 20418 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_11,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_11,NEXUS_5,1.0,en].png index 59e69276a6..625943f333 100644 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_11,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_11,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f6a1ccf2355fb763fee559815f576c185751a00e8560c3079fa7017d1c7d1cf -size 21920 +oid sha256:e81982a68990e5007a831c6809e186d7d384b037a8b2fdd0d7ee0de50dc33569 +size 23352 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_9,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_9,NEXUS_5,1.0,en].png index b886f9140e..dc6ff93e0f 100644 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_9,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/ui_S_t[l.designsystem.components.avatar_Avatar_null_Avatars_Avatar_0_null_9,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:73356882450cd90a01b8056379848967d3bea1e640ee4e901d9d21a1e823054d -size 19753 +oid sha256:3256d894dc36551db660060607bdd8fca172aa1aa67939053b9c09b52ed997a2 +size 21282 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,en].png index e7c0083f5c..f9020eea6e 100644 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_2,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a4f6f8527d28a0c1c8cf0520b8927ae0e6f8adcaf0d56d0a117d48700dee89b7 -size 28388 +oid sha256:3edf5f5df7879c16ccdd4536d94f28e98d1226ab8fed423887a23b4aa31f44e9 +size 26647 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,en].png index cb8f5a11a9..6133cfb5a8 100644 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_3,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6349c7d27b2c227801212825e8f162da43f9b466ffb746b0f24b520a1fcdd146 -size 26298 +oid sha256:15b55914bbaffae07629f3b3a8c4f6e798b604ed49a2c55f9c9cd825c882ba27 +size 24815 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,en].png index c211d5d72d..644fb3261d 100644 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Day-0_1_null_4,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:411f7935d8f44d38b43960a2adb13900750b4f439e7f61fe51ef7bc67664dc0a -size 31104 +oid sha256:61298b0953efb79896508b5ccda84ce3a1784916fb6846e9070dac066a66d3d0 +size 29384 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_2,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_2,NEXUS_5,1.0,en].png index 06e7e04e5a..7c3da240b3 100644 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_2,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_2,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e3d8829874805bdcfcb0b0978d9decbb463ec6d31f0d5cf5406dde0f1f786df9 -size 27104 +oid sha256:3a446d7ff4f2fbf54a7a686ed04cb34a3085b69166292e355e3afac7e8dbd045 +size 25413 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_3,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_3,NEXUS_5,1.0,en].png index 15c17ba8a1..e4fb22ce6b 100644 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_3,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_3,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29fb9eae961e82ca62e29ac5894dcdaac5290f69195cbb899e4862f522e1592c -size 25484 +oid sha256:51d5c50784721a89047c2ce9ed29585d876b7f2abcda399638a372c65e83b9c2 +size 23763 diff --git a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_4,NEXUS_5,1.0,en].png b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_4,NEXUS_5,1.0,en].png index ed324fc431..f1f83d8845 100644 --- a/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_4,NEXUS_5,1.0,en].png +++ b/tests/uitests/src/test/snapshots/images/ui_S_t[l.roomselect.impl_RoomSelectView_null_RoomSelectView-Night-0_2_null_4,NEXUS_5,1.0,en].png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8b7c230c34eef158e951b125674e5a8f23fdfaefeea3fcd495461581cd9d3ce8 -size 29533 +oid sha256:b1263552c90b03257daea6fa1a5ccef6c37f8b25e88133db279a1c8b120692e8 +size 27467 From 4236b42ba54dc71a41f6b2564e4b16ead2674be6 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 19 Dec 2023 13:47:23 +0100 Subject: [PATCH 5/5] Fix wrong color alias usage. --- .../android/libraries/roomselect/impl/RoomSelectView.kt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) 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 8efaa6d083..264be0cca7 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 @@ -32,7 +32,6 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.items import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -56,8 +55,6 @@ import io.element.android.libraries.designsystem.theme.components.SearchBarResul import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.TextButton import io.element.android.libraries.designsystem.theme.components.TopAppBar -import io.element.android.libraries.designsystem.theme.roomListRoomMessage -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 @@ -238,7 +235,7 @@ private fun RoomSummaryView( Text( style = ElementTheme.typography.fontBodyLgRegular, text = summary.name, - color = MaterialTheme.roomListRoomName(), + color = ElementTheme.colors.textPrimary, maxLines = 1, overflow = TextOverflow.Ellipsis ) @@ -246,7 +243,7 @@ private fun RoomSummaryView( summary.canonicalAlias?.let { alias -> Text( text = alias, - color = MaterialTheme.roomListRoomMessage(), + color = ElementTheme.colors.textSecondary, style = ElementTheme.typography.fontBodySmRegular, maxLines = 1, overflow = TextOverflow.Ellipsis