From 1ed593926ff99f83769b55fd75ee904e17a16682 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 25 Apr 2024 09:48:43 +0200 Subject: [PATCH] Avoid rendering roomId on screen. --- .../joinroom/impl/JoinRoomPresenter.kt | 2 +- .../features/joinroom/impl/JoinRoomState.kt | 8 ------- .../features/joinroom/impl/JoinRoomView.kt | 22 ++++++++++++++++--- .../atomic/atoms/RoomPreviewTitleAtom.kt | 8 ++++++- .../src/main/res/values/localazy.xml | 1 + 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt index 27adffbcb6..5b6e5ad79a 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt @@ -211,7 +211,7 @@ internal fun ContentState.toInviteData(): InviteData? { return when (this) { is ContentState.Loaded -> InviteData( roomId = roomId, - roomName = computedTitle, + roomName = name ?: roomId.value, isDirect = isDirect ) else -> null diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomState.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomState.kt index 1b78e10905..7c885214a1 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomState.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomState.kt @@ -55,14 +55,6 @@ sealed interface ContentState { val roomAvatarUrl: String?, val joinAuthorisationStatus: JoinAuthorisationStatus, ) : ContentState { - val computedTitle = name ?: roomId.value - - val computedSubtitle = when { - alias != null -> alias.value - name == null -> "" - else -> roomId.value - } - val showMemberCount = numberOfMembers != null fun avatarData(size: AvatarSize): AvatarData { diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomView.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomView.kt index 6649987c58..7d579434f6 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomView.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomView.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp @@ -177,13 +178,28 @@ private fun JoinRoomContent( RoomPreviewOrganism( modifier = modifier, avatar = { - Avatar(contentState.avatarData(AvatarSize.RoomHeader)) + if (contentState.name == null && contentState.roomAvatarUrl == null) { + PlaceholderAtom(width = AvatarSize.RoomHeader.dp, height = AvatarSize.RoomHeader.dp) + } else { + Avatar(contentState.avatarData(AvatarSize.RoomHeader)) + } }, title = { - RoomPreviewTitleAtom(contentState.computedTitle) + if (contentState.name != null) { + RoomPreviewTitleAtom( + title = contentState.name, + ) + } else { + RoomPreviewTitleAtom( + title = stringResource(id = CommonStrings.common_no_room_name), + fontStyle = FontStyle.Italic + ) + } }, subtitle = { - RoomPreviewSubtitleAtom(contentState.computedSubtitle) + if (contentState.alias != null) { + RoomPreviewSubtitleAtom(contentState.alias.value) + } }, description = { Column( diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/atoms/RoomPreviewTitleAtom.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/atoms/RoomPreviewTitleAtom.kt index 81edd42db5..bccadf8198 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/atoms/RoomPreviewTitleAtom.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/atoms/RoomPreviewTitleAtom.kt @@ -18,17 +18,23 @@ package io.element.android.libraries.designsystem.atomic.atoms import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextAlign import io.element.android.compound.theme.ElementTheme import io.element.android.libraries.designsystem.theme.components.Text @Composable -fun RoomPreviewTitleAtom(title: String, modifier: Modifier = Modifier) { +fun RoomPreviewTitleAtom( + title: String, + modifier: Modifier = Modifier, + fontStyle: FontStyle? = null, +) { Text( modifier = modifier, text = title, style = ElementTheme.typography.fontHeadingMdBold, textAlign = TextAlign.Center, + fontStyle = fontStyle, color = ElementTheme.colors.textPrimary, ) } diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml index 8366daf9c4..7d49261c4e 100644 --- a/libraries/ui-strings/src/main/res/values/localazy.xml +++ b/libraries/ui-strings/src/main/res/values/localazy.xml @@ -158,6 +158,7 @@ "Modern" "Mute" "No results" + "No room name" "Offline" "or" "Password"