diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/TextItemView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/TextItemView.kt index b53041dd32..5887593220 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/TextItemView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chat/item/TextItemView.kt @@ -10,11 +10,11 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.UriHandler import androidx.compose.ui.text.* +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import chat.simplex.app.model.CIDirection -import chat.simplex.app.model.ChatItem +import chat.simplex.app.model.* import chat.simplex.app.ui.theme.LightGray import chat.simplex.app.ui.theme.SimpleXTheme import kotlinx.datetime.Clock @@ -35,7 +35,7 @@ fun TextItemView(chatItem: ChatItem, uriHandler: UriHandler? = null) { modifier = Modifier.padding(vertical = 6.dp, horizontal = 12.dp) ) { Box(contentAlignment = Alignment.BottomEnd) { - MarkdownText(chatItem, uriHandler = uriHandler) + MarkdownText(chatItem, uriHandler = uriHandler, groupMemberBold = true) CIMetaView(chatItem) } } @@ -43,6 +43,16 @@ fun TextItemView(chatItem: ChatItem, uriHandler: UriHandler? = null) { } val reserveTimestampStyle = SpanStyle(color = Color.Transparent) +val boldFont = SpanStyle(fontWeight = FontWeight.Bold) + +fun appendGroupMember(b: AnnotatedString.Builder, chatItem: ChatItem, groupMemberBold: Boolean) { + if (chatItem.chatDir is CIDirection.GroupRcv) { + val name = chatItem.chatDir.groupMember.memberProfile.displayName + if (groupMemberBold) b.withStyle(boldFont) { append(name) } + else b.append(name) + b.append(": ") + } +} @ExperimentalTextApi @Composable @@ -52,16 +62,19 @@ fun MarkdownText ( maxLines: Int = Int.MAX_VALUE, overflow: TextOverflow = TextOverflow.Clip, uriHandler: UriHandler? = null, + groupMemberBold: Boolean = false, modifier: Modifier = Modifier ) { if (chatItem.formattedText == null) { val annotatedText = buildAnnotatedString { + appendGroupMember(this, chatItem, groupMemberBold) append(chatItem.content.text) withStyle(reserveTimestampStyle) { append(" ${chatItem.timestampText}") } } Text(annotatedText, style = style, modifier = modifier, maxLines = maxLines, overflow = overflow) } else { val annotatedText = buildAnnotatedString { + appendGroupMember(this, chatItem, groupMemberBold) for (ft in chatItem.formattedText) { if (ft.format == null) append(ft.text) else {