Fix member label emoji ignoring use system emoji preference.

This commit is contained in:
jeffrey-signal
2026-02-20 09:41:04 -05:00
committed by Cody Henthorne
parent fa2b0aedb0
commit 7e605fb6de
5 changed files with 88 additions and 45 deletions

View File

@@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ProvideTextStyle
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
@@ -25,6 +26,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import org.signal.core.ui.compose.DayNightPreviews
import org.signal.core.ui.compose.Previews
import org.thoughtcrime.securesms.components.emoji.Emojifier
private val defaultModifier = Modifier.padding(horizontal = 12.dp, vertical = 2.dp)
private val defaultTextStyle: @Composable () -> TextStyle = { MaterialTheme.typography.bodyLarge }
@@ -83,22 +85,28 @@ fun MemberLabelPill(
.then(modifier),
verticalAlignment = Alignment.CenterVertically
) {
if (!emoji.isNullOrEmpty()) {
Text(
text = emoji,
style = textStyle,
modifier = Modifier.padding(end = 5.dp)
)
}
ProvideTextStyle(textStyle) {
if (!emoji.isNullOrEmpty()) {
Emojifier(text = emoji) { annotatedText, inlineContent ->
Text(
text = annotatedText,
inlineContent = inlineContent,
modifier = Modifier.padding(end = 5.dp)
)
}
}
if (text.isNotEmpty()) {
Text(
text = text,
color = textColor,
style = textStyle,
maxLines = 1,
overflow = TextOverflow.Ellipsis
)
if (text.isNotEmpty()) {
Emojifier(text = text) { annotatedText, inlineContent ->
Text(
text = annotatedText,
inlineContent = inlineContent,
color = textColor,
maxLines = 1,
overflow = TextOverflow.Ellipsis
)
}
}
}
}
}

View File

@@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.FlowRow
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ProvideTextStyle
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
@@ -23,6 +24,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import org.signal.core.ui.compose.DayNightPreviews
import org.signal.core.ui.compose.Previews
import org.thoughtcrime.securesms.components.emoji.Emojifier
private val defaultLabelModifier = Modifier.padding(horizontal = 6.dp, vertical = 2.dp)
private val defaultLabelTextStyle: @Composable () -> TextStyle = { MaterialTheme.typography.bodySmall }
@@ -101,14 +103,17 @@ private fun SenderNameWithLabel(
verticalArrangement = Arrangement.spacedBy(2.dp),
itemVerticalAlignment = Alignment.CenterVertically
) {
Text(
text = senderName,
color = senderColor,
style = MaterialTheme.typography.labelMedium,
fontWeight = FontWeight.Bold,
maxLines = 1,
overflow = TextOverflow.Ellipsis
)
ProvideTextStyle(MaterialTheme.typography.labelMedium.copy(fontWeight = FontWeight.Bold)) {
Emojifier(text = senderName) { annotatedText, inlineContent ->
Text(
text = annotatedText,
inlineContent = inlineContent,
color = senderColor,
maxLines = 1,
overflow = TextOverflow.Ellipsis
)
}
}
if (memberLabel != null) {
labelSlot(memberLabel)