diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt index b47ded8b3a..6172da0469 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineStateProvider.kt @@ -106,6 +106,7 @@ internal fun aTimelineItemEvent( eventId: EventId = EventId("\$" + Random.nextInt().toString()), transactionId: TransactionId? = null, isMine: Boolean = false, + senderDisplayName: String = "Sender", content: TimelineItemEventContent = aTimelineItemTextContent(), groupPosition: TimelineItemGroupPosition = TimelineItemGroupPosition.None, sendState: LocalEventSendState = LocalEventSendState.Sent(eventId), @@ -123,7 +124,7 @@ internal fun aTimelineItemEvent( reactionsState = timelineItemReactions, sentTime = "12:34", isMine = isMine, - senderDisplayName = "Sender", + senderDisplayName = senderDisplayName, groupPosition = groupPosition, localSendState = sendState, inReplyTo = inReplyTo, @@ -141,11 +142,13 @@ fun aTimelineItemReactions( reactions = buildList { repeat(count) { index -> val key = emojis[index % emojis.size] - add(anAggregatedReaction( - key = key, - count = index + 1, - isHighlighted = isHighlighted - )) + add( + anAggregatedReaction( + key = key, + count = index + 1, + isHighlighted = isHighlighted + ) + ) } }.toPersistentList() ) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt index 90d3e6cd8c..fbeb0af1d7 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt @@ -340,6 +340,8 @@ private fun MessageSenderInformation( Spacer(modifier = Modifier.width(4.dp)) Text( text = sender, + maxLines = 1, + overflow = TextOverflow.Ellipsis, color = MaterialTheme.colorScheme.primary, style = ElementTheme.typography.fontBodyMdMedium, ) @@ -786,3 +788,25 @@ private fun ContentWithManyReactionsToPreview() { } } } + +// Note: no need for light/dark variant for this preview +@Preview +@Composable +internal fun TimelineItemEventRowLongSenderNamePreview() = ElementPreviewLight { + TimelineItemEventRow( + event = aTimelineItemEvent( + senderDisplayName = "a long sender display name to test single line and ellipsis at the end of the line", + ), + isHighlighted = false, + canReply = true, + onClick = {}, + onLongClick = {}, + onUserDataClick = {}, + inReplyToClick = {}, + onReactionClick = { _, _ -> }, + onReactionLongClick = { _, _ -> }, + onMoreReactionsClick = {}, + onSwipeToReply = {}, + onTimestampClicked = {}, + ) +}