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.DisplayNameWithStatus
import io.element.android.libraries.matrix.ui.components.InviteSenderView 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.InviteSender
import io.element.android.libraries.matrix.ui.model.toEmojiText
import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.libraries.ui.strings.CommonStrings
import timber.log.Timber import timber.log.Timber
@@ -233,7 +232,7 @@ private fun NameAndTimestampRow(
val displayName = name?.toSafeLength(ellipsize = true) ?: stringResource(id = CommonStrings.common_no_room_name) val displayName = name?.toSafeLength(ellipsize = true) ?: stringResource(id = CommonStrings.common_no_room_name)
DisplayNameWithStatus( DisplayNameWithStatus(
name = displayName, name = displayName,
status = dmUserStatus?.toEmojiText(), status = dmUserStatus,
modifier = Modifier.weight(1f), modifier = Modifier.weight(1f),
style = ElementTheme.typography.fontBodyLgMedium, style = ElementTheme.typography.fontBodyLgMedium,
nameColor = ElementTheme.colors.roomListRoomName, 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.api.room.RoomMembershipState
import io.element.android.libraries.matrix.ui.components.DisplayNameWithStatus 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.getAvatarData
import io.element.android.libraries.matrix.ui.model.toEmojiText
import io.element.android.libraries.slashcommands.api.SlashCommandSuggestion import io.element.android.libraries.slashcommands.api.SlashCommandSuggestion
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
@@ -120,8 +119,8 @@ private fun SuggestionItemView(
is ResolvedSuggestion.Alias -> suggestion.roomName is ResolvedSuggestion.Alias -> suggestion.roomName
is ResolvedSuggestion.Command -> suggestion.command.command is ResolvedSuggestion.Command -> suggestion.command.command
} }
val statusEmoji = when (suggestion) { val status = when (suggestion) {
is ResolvedSuggestion.Member -> suggestion.roomMember.displayedStatus?.toEmojiText() is ResolvedSuggestion.Member -> suggestion.roomMember.displayedStatus
else -> null else -> null
} }
val details = when (suggestion) { val details = when (suggestion) {
@@ -156,7 +155,7 @@ private fun SuggestionItemView(
title?.let { title?.let {
DisplayNameWithStatus( DisplayNameWithStatus(
name = title, name = title,
status = statusEmoji, status = status,
style = ElementTheme.typography.fontBodyLgRegular, style = ElementTheme.typography.fontBodyLgRegular,
nameColor = ElementTheme.colors.textPrimary, 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.DisplayNameWithStatus
import io.element.android.libraries.matrix.ui.components.aMatrixUserList 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.getAvatarData
import io.element.android.libraries.matrix.ui.model.toEmojiText
import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.libraries.ui.strings.CommonStrings
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
@@ -163,7 +162,7 @@ private fun RoomAvatarAndNameRow(
) )
DisplayNameWithStatus( DisplayNameWithStatus(
name = roomName ?: stringResource(CommonStrings.common_no_room_name), name = roomName ?: stringResource(CommonStrings.common_no_room_name),
status = dmUserStatus?.toEmojiText(), status = dmUserStatus,
modifier = Modifier.padding(start = 8.dp), modifier = Modifier.padding(start = 8.dp),
style = ElementTheme.typography.fontBodyLgMedium, style = ElementTheme.typography.fontBodyLgMedium,
nameColor = ElementTheme.colors.textPrimary, nameColor = ElementTheme.colors.textPrimary,
@@ -21,6 +21,8 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.theme.components.Text 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. * 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 @Composable
fun DisplayNameWithStatus( fun DisplayNameWithStatus(
name: String, name: String,
status: String?, status: DisplayedStatus?,
style: TextStyle, style: TextStyle,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
nameColor: Color = Color.Unspecified, nameColor: Color = Color.Unspecified,
@@ -52,7 +54,7 @@ fun DisplayNameWithStatus(
if (status != null) { if (status != null) {
Spacer(Modifier.width(4.dp)) Spacer(Modifier.width(4.dp))
Text( Text(
text = status, text = status.toEmojiText(),
style = style, style = style,
color = ElementTheme.colors.textSecondary, 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.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.model.getAvatarData 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.getBestName
import io.element.android.libraries.matrix.ui.model.toEmojiText
@Composable @Composable
fun MatrixUserHeader( fun MatrixUserHeader(
@@ -60,9 +59,9 @@ fun MatrixUserHeader(
// Name // Name
DisplayNameWithStatus( DisplayNameWithStatus(
name = matrixUser.getBestName(), name = matrixUser.getBestName(),
status = matrixUser.displayedStatus?.toEmojiText(), status = matrixUser.displayedStatus,
nameColor = ElementTheme.colors.textPrimary, nameColor = ElementTheme.colors.textPrimary,
style = ElementTheme.typography.fontHeadingMdRegular style = ElementTheme.typography.fontHeadingMdRegular,
) )
// Id // Id
if (matrixUser.displayName.isNullOrEmpty().not()) { 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.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.model.getAvatarData 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.getBestName
import io.element.android.libraries.matrix.ui.model.toEmojiText
@Composable @Composable
fun MatrixUserRow( fun MatrixUserRow(
@@ -34,7 +33,7 @@ fun MatrixUserRow(
nameContent = { nameContent = {
DisplayNameWithStatus( DisplayNameWithStatus(
name = matrixUser.getBestName(), name = matrixUser.getBestName(),
status = matrixUser.displayedStatus?.toEmojiText(), status = matrixUser.displayedStatus,
nameColor = ElementTheme.colors.textPrimary, nameColor = ElementTheme.colors.textPrimary,
style = ElementTheme.typography.fontBodyLgRegular, style = ElementTheme.typography.fontBodyLgRegular,
) )