fix colos

This commit is contained in:
callebtc
2026-01-18 01:55:48 +07:00
parent 173bfb9251
commit dbe5e3d44d
2 changed files with 21 additions and 12 deletions
@@ -51,9 +51,12 @@ fun formatMessageAsAnnotatedString(
val isDark = colorScheme.background.red + colorScheme.background.green + colorScheme.background.blue < 1.5f val isDark = colorScheme.background.red + colorScheme.background.green + colorScheme.background.blue < 1.5f
// Determine if this message was sent by self // Determine if this message was sent by self
val isSelf = message.senderPeerID == meshService.myPeerID || val isSelf = if (message.senderPeerID != null) {
message.sender == currentUserNickname || message.senderPeerID == meshService.myPeerID
message.sender.startsWith("$currentUserNickname#") } else {
message.sender == currentUserNickname ||
message.sender.startsWith("$currentUserNickname#")
}
if (message.sender != "system") { if (message.sender != "system") {
// Resolve disambiguated sender name if it's a mesh message // Resolve disambiguated sender name if it's a mesh message
@@ -183,9 +186,12 @@ fun formatMessageHeaderAnnotatedString(
val builder = AnnotatedString.Builder() val builder = AnnotatedString.Builder()
val isDark = colorScheme.background.red + colorScheme.background.green + colorScheme.background.blue < 1.5f val isDark = colorScheme.background.red + colorScheme.background.green + colorScheme.background.blue < 1.5f
val isSelf = message.senderPeerID == meshService.myPeerID || val isSelf = if (message.senderPeerID != null) {
message.sender == currentUserNickname || message.senderPeerID == meshService.myPeerID
message.sender.startsWith("$currentUserNickname#") } else {
message.sender == currentUserNickname ||
message.sender.startsWith("$currentUserNickname#")
}
if (message.sender != "system") { if (message.sender != "system") {
// Resolve disambiguated sender name if it's a mesh message // Resolve disambiguated sender name if it's a mesh message
@@ -493,14 +499,14 @@ private fun appendIOSFormattedContent(
val mentionWithoutAt = matchText.removePrefix("@") val mentionWithoutAt = matchText.removePrefix("@")
val (mBase, mSuffix) = splitSuffix(mentionWithoutAt) val (mBase, mSuffix) = splitSuffix(mentionWithoutAt)
// Check if this mention targets current user // Resolve PeerID to check strict identity match
val isMentionToMe = mBase.equals(currentUserNickname, ignoreCase = true) val resolvedID = resolvePeerIDFromDisplayName(mentionWithoutAt, nicknameMap)
val isMentionToMe = resolvedID == meshService.myPeerID
// Resolve mention color based on mentioned user's actual color // Resolve mention color based on mentioned user's actual color
val mentionColor = if (isMentionToMe) { val mentionColor = if (isMentionToMe) {
Color(0xFFFF9500) // Orange for mentions to self Color(0xFFFF9500) // Orange for mentions to self
} else { } else {
val resolvedID = resolvePeerIDFromDisplayName(mentionWithoutAt, nicknameMap)
colorForPeer(resolvedID, mentionWithoutAt, isDark) colorForPeer(resolvedID, mentionWithoutAt, isDark)
} }
@@ -384,9 +384,12 @@ fun MessageItem(
) )
// Check if this message was sent by self to avoid click interactions on own nickname // Check if this message was sent by self to avoid click interactions on own nickname
val isSelf = message.senderPeerID == meshService.myPeerID || val isSelf = if (message.senderPeerID != null) {
message.sender == currentUserNickname || message.senderPeerID == meshService.myPeerID
message.sender.startsWith("$currentUserNickname#") } else {
message.sender == currentUserNickname ||
message.sender.startsWith("$currentUserNickname#")
}
val haptic = LocalHapticFeedback.current val haptic = LocalHapticFeedback.current
val context = LocalContext.current val context = LocalContext.current