From dbe5e3d44d1eb3cc8332a764f154f8f9bda5f98e Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sun, 18 Jan 2026 01:55:48 +0700 Subject: [PATCH] fix colos --- .../com/bitchat/android/ui/ChatUIUtils.kt | 24 ++++++++++++------- .../bitchat/android/ui/MessageComponents.kt | 9 ++++--- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/bitchat/android/ui/ChatUIUtils.kt b/app/src/main/java/com/bitchat/android/ui/ChatUIUtils.kt index de140713..30eb2841 100644 --- a/app/src/main/java/com/bitchat/android/ui/ChatUIUtils.kt +++ b/app/src/main/java/com/bitchat/android/ui/ChatUIUtils.kt @@ -51,9 +51,12 @@ fun formatMessageAsAnnotatedString( val isDark = colorScheme.background.red + colorScheme.background.green + colorScheme.background.blue < 1.5f // Determine if this message was sent by self - val isSelf = message.senderPeerID == meshService.myPeerID || - message.sender == currentUserNickname || - message.sender.startsWith("$currentUserNickname#") + val isSelf = if (message.senderPeerID != null) { + message.senderPeerID == meshService.myPeerID + } else { + message.sender == currentUserNickname || + message.sender.startsWith("$currentUserNickname#") + } if (message.sender != "system") { // Resolve disambiguated sender name if it's a mesh message @@ -183,9 +186,12 @@ fun formatMessageHeaderAnnotatedString( val builder = AnnotatedString.Builder() val isDark = colorScheme.background.red + colorScheme.background.green + colorScheme.background.blue < 1.5f - val isSelf = message.senderPeerID == meshService.myPeerID || - message.sender == currentUserNickname || - message.sender.startsWith("$currentUserNickname#") + val isSelf = if (message.senderPeerID != null) { + message.senderPeerID == meshService.myPeerID + } else { + message.sender == currentUserNickname || + message.sender.startsWith("$currentUserNickname#") + } if (message.sender != "system") { // Resolve disambiguated sender name if it's a mesh message @@ -493,14 +499,14 @@ private fun appendIOSFormattedContent( val mentionWithoutAt = matchText.removePrefix("@") val (mBase, mSuffix) = splitSuffix(mentionWithoutAt) - // Check if this mention targets current user - val isMentionToMe = mBase.equals(currentUserNickname, ignoreCase = true) + // Resolve PeerID to check strict identity match + val resolvedID = resolvePeerIDFromDisplayName(mentionWithoutAt, nicknameMap) + val isMentionToMe = resolvedID == meshService.myPeerID // Resolve mention color based on mentioned user's actual color val mentionColor = if (isMentionToMe) { Color(0xFFFF9500) // Orange for mentions to self } else { - val resolvedID = resolvePeerIDFromDisplayName(mentionWithoutAt, nicknameMap) colorForPeer(resolvedID, mentionWithoutAt, isDark) } diff --git a/app/src/main/java/com/bitchat/android/ui/MessageComponents.kt b/app/src/main/java/com/bitchat/android/ui/MessageComponents.kt index 9d54edb5..5e41b167 100644 --- a/app/src/main/java/com/bitchat/android/ui/MessageComponents.kt +++ b/app/src/main/java/com/bitchat/android/ui/MessageComponents.kt @@ -384,9 +384,12 @@ fun MessageItem( ) // Check if this message was sent by self to avoid click interactions on own nickname - val isSelf = message.senderPeerID == meshService.myPeerID || - message.sender == currentUserNickname || - message.sender.startsWith("$currentUserNickname#") + val isSelf = if (message.senderPeerID != null) { + message.senderPeerID == meshService.myPeerID + } else { + message.sender == currentUserNickname || + message.sender.startsWith("$currentUserNickname#") + } val haptic = LocalHapticFeedback.current val context = LocalContext.current