Update colors of permalinks.

This commit is contained in:
Benoit Marty 2026-03-24 16:31:15 +01:00
parent 2e2a6e3abb
commit dd26555c22
2 changed files with 11 additions and 6 deletions

View file

@ -55,14 +55,14 @@ class MentionSpan(
backgroundColor = when (type) { backgroundColor = when (type) {
is MentionType.User -> if (isCurrentUser) mentionSpanTheme.currentUserBackgroundColor else mentionSpanTheme.otherBackgroundColor is MentionType.User -> if (isCurrentUser) mentionSpanTheme.currentUserBackgroundColor else mentionSpanTheme.otherBackgroundColor
is MentionType.Everyone -> mentionSpanTheme.currentUserBackgroundColor is MentionType.Everyone -> mentionSpanTheme.otherBackgroundColor
is MentionType.Room -> mentionSpanTheme.otherBackgroundColor is MentionType.Room -> mentionSpanTheme.otherBackgroundColor
is MentionType.Message -> mentionSpanTheme.otherBackgroundColor is MentionType.Message -> mentionSpanTheme.otherBackgroundColor
} }
textColor = when (type) { textColor = when (type) {
is MentionType.User -> if (isCurrentUser) mentionSpanTheme.currentUserTextColor else mentionSpanTheme.otherTextColor is MentionType.User -> if (isCurrentUser) mentionSpanTheme.currentUserTextColor else mentionSpanTheme.otherTextColor
is MentionType.Everyone -> mentionSpanTheme.currentUserTextColor is MentionType.Everyone -> mentionSpanTheme.otherTextColor
is MentionType.Room -> mentionSpanTheme.otherTextColor is MentionType.Room -> mentionSpanTheme.otherTextColor
is MentionType.Message -> mentionSpanTheme.otherTextColor is MentionType.Message -> mentionSpanTheme.otherTextColor
} }

View file

@ -54,6 +54,7 @@ import kotlinx.collections.immutable.persistentListOf
* To make this work, you need to: * To make this work, you need to:
* 1. Call [MentionSpanTheme.updateStyles] so the colors and sizes are computed. * 1. Call [MentionSpanTheme.updateStyles] so the colors and sizes are computed.
* 2. Use either [MentionSpanTheme.updateMentionStyles] or [MentionSpan.updateTheme] to update the styles of the mention spans. * 2. Use either [MentionSpanTheme.updateMentionStyles] or [MentionSpan.updateTheme] to update the styles of the mention spans.
* https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=3236-11203
*/ */
@Stable @Stable
@SingleIn(SessionScope::class) @SingleIn(SessionScope::class)
@ -61,10 +62,14 @@ class MentionSpanTheme(val currentUserId: UserId) {
@Inject @Inject
constructor(matrixClient: MatrixClient) : this(matrixClient.sessionId) constructor(matrixClient: MatrixClient) : this(matrixClient.sessionId)
internal var currentUserTextColor: Int = 0 internal var currentUserTextColor: Int = Color.BLACK
private set
internal var currentUserBackgroundColor: Int = Color.WHITE internal var currentUserBackgroundColor: Int = Color.WHITE
internal var otherTextColor: Int = 0 private set
internal var otherTextColor: Int = Color.BLACK
private set
internal var otherBackgroundColor: Int = Color.WHITE internal var otherBackgroundColor: Int = Color.WHITE
private set
private val paddingValues = PaddingValues(start = 4.dp, end = 6.dp) private val paddingValues = PaddingValues(start = 4.dp, end = 6.dp)
internal val paddingValuesPx = mutableStateOf(0 to 0) internal val paddingValuesPx = mutableStateOf(0 to 0)
@ -78,8 +83,8 @@ class MentionSpanTheme(val currentUserId: UserId) {
fun updateStyles() { fun updateStyles() {
currentUserTextColor = ElementTheme.colors.textBadgeAccent.toArgb() currentUserTextColor = ElementTheme.colors.textBadgeAccent.toArgb()
currentUserBackgroundColor = ElementTheme.colors.bgBadgeAccent.toArgb() currentUserBackgroundColor = ElementTheme.colors.bgBadgeAccent.toArgb()
otherTextColor = ElementTheme.colors.textPrimary.toArgb() otherTextColor = ElementTheme.colors.textOnSolidPrimary.toArgb()
otherBackgroundColor = ElementTheme.colors.bgBadgeDefault.toArgb() otherBackgroundColor = ElementTheme.colors.bgBadgePrimary.toArgb()
typeface.value = ElementTheme.typography.fontBodyLgMedium.rememberTypeface().value typeface.value = ElementTheme.typography.fontBodyLgMedium.rememberTypeface().value
val density = LocalDensity.current val density = LocalDensity.current