From 7d6aa9eb76a886b407dc94cccafc20a995f69bdf Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 24 Aug 2026 16:37:36 +0200 Subject: [PATCH] Group preview for clarity and to limit the number of screenshots. --- .../matrix/ui/messages/sender/SenderName.kt | 31 ++++++-- .../sender/SenderNameDataPreviewParam.kt | 73 ++++++++----------- 2 files changed, 58 insertions(+), 46 deletions(-) diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderName.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderName.kt index b31111c386..7cd066d0ce 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderName.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderName.kt @@ -9,12 +9,15 @@ package io.element.android.libraries.matrix.ui.messages.sender import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clipToBounds +import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp @@ -136,9 +139,27 @@ private fun RowScope.SecondaryText( internal fun SenderNamePreview( @PreviewParameter(SenderNameDataPreviewParam::class) senderNameData: SenderNameData, ) = ElementPreview { - SenderName( - senderId = senderNameData.userId, - senderProfile = senderNameData.profileDetails, - senderNameMode = senderNameData.senderNameMode, - ) + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + sequenceOf( + SenderNameMode.Timeline(mainColor = Color.Red), + SenderNameMode.Reply, + SenderNameMode.ActionList, + ).forEach { mode -> + Column { + Text( + "Rendering in mode ${mode::class.simpleName}:", + style = ElementTheme.typography.fontBodyXsRegular, + color = ElementTheme.colors.textSecondary, + ) + SenderName( + senderId = senderNameData.userId, + senderProfile = senderNameData.profileDetails, + senderNameMode = mode, + ) + } + } + } } diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameDataPreviewParam.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameDataPreviewParam.kt index cccb176d5c..103cb6a4f0 100644 --- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameDataPreviewParam.kt +++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/sender/SenderNameDataPreviewParam.kt @@ -8,7 +8,6 @@ package io.element.android.libraries.matrix.ui.messages.sender -import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.timeline.item.event.ProfileDetails @@ -19,54 +18,47 @@ import io.element.android.libraries.matrix.ui.messages.reply.aProfileDetailsRead data class SenderNameData( val userId: UserId, val profileDetails: ProfileDetails, - val senderNameMode: SenderNameMode, ) open class SenderNameDataPreviewParam : PreviewParameterProvider { override val values: Sequence get() = sequenceOf( - SenderNameMode.Timeline(mainColor = Color.Red), - SenderNameMode.Reply, - SenderNameMode.ActionList, + aSenderNameData(), + aSenderNameData( + displayNameAmbiguous = true, + ), + aSenderNameData( + profileDetails = ProfileDetails.Unavailable, + ), + aSenderNameData( + displayName = null, + ), + aSenderNameData( + displayedStatus = DisplayedStatus.UserSet( + status = UserStatus( + emoji = "😀", + text = "Should not be rendered", + ), + ), + ), + aSenderNameData( + displayedStatus = DisplayedStatus.InCall(0L), + ), + aSenderNameData( + displayNameAmbiguous = true, + displayedStatus = DisplayedStatus.UserSet( + status = UserStatus( + emoji = "😀", + text = "Should not be rendered", + ), + ), + ), ) - .flatMap { senderNameMode -> - sequenceOf( - aSenderNameData( - senderNameMode = senderNameMode, - ), - aSenderNameData( - senderNameMode = senderNameMode, - displayNameAmbiguous = true, - ), - aSenderNameData( - senderNameMode = senderNameMode, - profileDetails = ProfileDetails.Unavailable, - ), - aSenderNameData( - senderNameMode = senderNameMode, - displayName = null, - ), - aSenderNameData( - senderNameMode = senderNameMode, - displayedStatus = DisplayedStatus.UserSet( - status = UserStatus( - emoji = "😀", - text = "Should not be rendered", - ), - ), - ), - aSenderNameData( - senderNameMode = senderNameMode, - displayedStatus = DisplayedStatus.InCall(0L), - ) - ) - } } private fun aSenderNameData( - senderNameMode: SenderNameMode, - userId: UserId = UserId("@alice:${senderNameMode.javaClass.simpleName.lowercase()}"), - displayName: String? = "Alice ${senderNameMode.javaClass.simpleName}", + userId: UserId = UserId("@alice:example.com"), + displayName: String? = "Alice", displayNameAmbiguous: Boolean = false, displayedStatus: DisplayedStatus? = null, profileDetails: ProfileDetails = aProfileDetailsReady( @@ -77,5 +69,4 @@ private fun aSenderNameData( ) = SenderNameData( userId = userId, profileDetails = profileDetails, - senderNameMode = senderNameMode, )