Skip to content

Commit 12ab06e

Browse files
committed
fix(chat): don't count self-sent messages as unread
Self-sent messages (including cash) were not advancing the read pointer, causing the contact list to show a stuck unread indicator. Fix by excluding self-sent messages from the unread count and advancing the read pointer after sending a message. Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent d77d8d8 commit 12ab06e

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

apps/flipcash/shared/chat/src/main/kotlin/com/flipcash/shared/chat/ChatCoordinator.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,9 @@ class ChatCoordinator @Inject constructor(
9999
?.firstOrNull { it.type == PointerType.READ }
100100
?.value ?: 0L
101101

102+
val selfId = userManager.accountId
102103
val unreadCount = metadata.lastMessage?.let { lastMsg ->
103-
if (lastMsg.messageId > readPointer) 1 else 0
104+
if (lastMsg.messageId > readPointer && lastMsg.senderId != selfId) 1 else 0
104105
} ?: 0
105106

106107
ChatSummary(metadata = metadata, unreadCount = unreadCount)
@@ -210,6 +211,7 @@ class ChatCoordinator @Inject constructor(
210211
return messagingController.sendMessage(chatId, content, clientMessageId)
211212
.onSuccess { serverMessage ->
212213
messageDataSource.confirmPending(chatId, clientMessageId, serverMessage)
214+
advanceReadPointer(chatId, serverMessage.messageId)
213215

214216
// Update feed metadata so the contact list shows the latest message
215217
metadataDataSource.updateLastMessageId(chatId, serverMessage.messageId)

0 commit comments

Comments
 (0)