Take DisplayedStatus directly in DisplayNameWithStatus and always show emoji

This commit is contained in:
ganfra
2026-07-17 10:13:45 +02:00
parent 9c3fe5ad23
commit b9831734a0
6 changed files with 12 additions and 15 deletions
@@ -67,7 +67,6 @@ import io.element.android.libraries.matrix.api.user.DisplayedStatus
import io.element.android.libraries.matrix.ui.components.DisplayNameWithStatus
import io.element.android.libraries.matrix.ui.components.InviteSenderView
import io.element.android.libraries.matrix.ui.model.InviteSender
import io.element.android.libraries.matrix.ui.model.toEmojiText
import io.element.android.libraries.ui.strings.CommonStrings
import timber.log.Timber
@@ -233,7 +232,7 @@ private fun NameAndTimestampRow(
val displayName = name?.toSafeLength(ellipsize = true) ?: stringResource(id = CommonStrings.common_no_room_name)
DisplayNameWithStatus(
name = displayName,
status = dmUserStatus?.toEmojiText(),
status = dmUserStatus,
modifier = Modifier.weight(1f),
style = ElementTheme.typography.fontBodyLgMedium,
nameColor = ElementTheme.colors.roomListRoomName,
@@ -43,7 +43,6 @@ import io.element.android.libraries.matrix.api.room.RoomMember
import io.element.android.libraries.matrix.api.room.RoomMembershipState
import io.element.android.libraries.matrix.ui.components.DisplayNameWithStatus
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.matrix.ui.model.toEmojiText
import io.element.android.libraries.slashcommands.api.SlashCommandSuggestion
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
import kotlinx.collections.immutable.ImmutableList
@@ -120,8 +119,8 @@ private fun SuggestionItemView(
is ResolvedSuggestion.Alias -> suggestion.roomName
is ResolvedSuggestion.Command -> suggestion.command.command
}
val statusEmoji = when (suggestion) {
is ResolvedSuggestion.Member -> suggestion.roomMember.displayedStatus?.toEmojiText()
val status = when (suggestion) {
is ResolvedSuggestion.Member -> suggestion.roomMember.displayedStatus
else -> null
}
val details = when (suggestion) {
@@ -156,7 +155,7 @@ private fun SuggestionItemView(
title?.let {
DisplayNameWithStatus(
name = title,
status = statusEmoji,
status = status,
style = ElementTheme.typography.fontBodyLgRegular,
nameColor = ElementTheme.colors.textPrimary,
)
@@ -51,7 +51,6 @@ import io.element.android.libraries.matrix.api.user.DisplayedStatus
import io.element.android.libraries.matrix.ui.components.DisplayNameWithStatus
import io.element.android.libraries.matrix.ui.components.aMatrixUserList
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.matrix.ui.model.toEmojiText
import io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf
@@ -163,7 +162,7 @@ private fun RoomAvatarAndNameRow(
)
DisplayNameWithStatus(
name = roomName ?: stringResource(CommonStrings.common_no_room_name),
status = dmUserStatus?.toEmojiText(),
status = dmUserStatus,
modifier = Modifier.padding(start = 8.dp),
style = ElementTheme.typography.fontBodyLgMedium,
nameColor = ElementTheme.colors.textPrimary,
@@ -21,6 +21,8 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.api.user.DisplayedStatus
import io.element.android.libraries.matrix.ui.model.toEmojiText
/**
* Component to display side by side a display name and an optional status.
@@ -28,7 +30,7 @@ import io.element.android.libraries.designsystem.theme.components.Text
@Composable
fun DisplayNameWithStatus(
name: String,
status: String?,
status: DisplayedStatus?,
style: TextStyle,
modifier: Modifier = Modifier,
nameColor: Color = Color.Unspecified,
@@ -52,7 +54,7 @@ fun DisplayNameWithStatus(
if (status != null) {
Spacer(Modifier.width(4.dp))
Text(
text = status,
text = status.toEmojiText(),
style = style,
color = ElementTheme.colors.textSecondary,
)
@@ -31,7 +31,6 @@ import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.matrix.ui.model.getBestName
import io.element.android.libraries.matrix.ui.model.toEmojiText
@Composable
fun MatrixUserHeader(
@@ -60,9 +59,9 @@ fun MatrixUserHeader(
// Name
DisplayNameWithStatus(
name = matrixUser.getBestName(),
status = matrixUser.displayedStatus?.toEmojiText(),
status = matrixUser.displayedStatus,
nameColor = ElementTheme.colors.textPrimary,
style = ElementTheme.typography.fontHeadingMdRegular
style = ElementTheme.typography.fontHeadingMdRegular,
)
// Id
if (matrixUser.displayName.isNullOrEmpty().not()) {
@@ -20,7 +20,6 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.model.getAvatarData
import io.element.android.libraries.matrix.ui.model.getBestName
import io.element.android.libraries.matrix.ui.model.toEmojiText
@Composable
fun MatrixUserRow(
@@ -34,7 +33,7 @@ fun MatrixUserRow(
nameContent = {
DisplayNameWithStatus(
name = matrixUser.getBestName(),
status = matrixUser.displayedStatus?.toEmojiText(),
status = matrixUser.displayedStatus,
nameColor = ElementTheme.colors.textPrimary,
style = ElementTheme.typography.fontBodyLgRegular,
)