From 65f3fe8afc95208fe7fb12a60d564e87533a7b84 Mon Sep 17 00:00:00 2001 From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com> Date: Tue, 6 Sep 2022 22:26:52 +0300 Subject: [PATCH] Fix counter when message is updated (#1023) --- .../java/chat/simplex/app/model/ChatModel.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/ChatModel.kt b/apps/android/app/src/main/java/chat/simplex/app/model/ChatModel.kt index 5d4e8c9040..a9b85c3dc6 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/ChatModel.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/ChatModel.kt @@ -163,6 +163,10 @@ class ChatModel(val controller: ChatController) { val pItem = chat.chatItems.lastOrNull() if (pItem?.id == cItem.id) { chats[i] = chat.copy(chatItems = arrayListOf(cItem)) + if (pItem.isRcvNew && !cItem.isRcvNew) { + // status changed from New to Read, update counter + decreaseCounterInChat(cInfo.id) + } } res = false } else { @@ -251,6 +255,18 @@ class ChatModel(val controller: ChatController) { return markedRead } + private fun decreaseCounterInChat(chatId: ChatId) { + val chatIndex = getChatIndex(chatId) + if (chatIndex == -1) return + + val chat = chats[chatIndex] + chats[chatIndex] = chat.copy( + chatStats = chat.chatStats.copy( + unreadCount = kotlin.math.max(chat.chatStats.unreadCount - 1, 0), + ) + ) + } + // func popChat(_ id: String) { // if let i = getChatIndex(id) { // popChat_(i)