From e3ddf042664275f4854c76e2107306e3cc4483d4 Mon Sep 17 00:00:00 2001 From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com> Date: Sat, 11 Jan 2025 15:48:00 +0700 Subject: [PATCH] android, desktop: fix reports dashboard (#5508) * android, desktop: fix reports dashboard * change --- .../kotlin/chat/simplex/common/model/SimpleXAPI.kt | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt index f2bd8283bb..7b0563e21a 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt @@ -2591,7 +2591,8 @@ object ChatController { val cInfo = ChatInfo.Group(r.groupInfo) withChats { r.chatItemIDs.forEach { itemId -> - val cItem = chatItems.value.firstOrNull { it.id == itemId } ?: return@forEach + decreaseGroupReportsCounter(rhId, cInfo.id) + val cItem = chatItems.value.lastOrNull { it.id == itemId } ?: return@forEach if (chatModel.chatId.value != null) { // Stop voice playback only inside a chat, allow to play in a chat list AudioPlayer.stop(cItem) @@ -2606,25 +2607,22 @@ object ChatController { generalGetString(MR.strings.marked_deleted_description) ) } - val deleted = if (r.member_ != null && (cItem.chatDir as CIDirection.GroupRcv?)?.groupMember != r.member_) { + val deleted = if (r.member_ != null && (cItem.chatDir as CIDirection.GroupRcv?)?.groupMember?.groupMemberId != r.member_.groupMemberId) { CIDeleted.Moderated(Clock.System.now(), r.member_) } else { CIDeleted.Deleted(Clock.System.now()) } upsertChatItem(rhId, cInfo, cItem.copy(meta = cItem.meta.copy(itemDeleted = deleted))) - if (cItem.isActiveReport) { - decreaseGroupReportsCounter(rhId, cInfo.id) - } } } withReportsChatsIfOpen { r.chatItemIDs.forEach { itemId -> - val cItem = chatItems.value.firstOrNull { it.id == itemId } ?: return@forEach + val cItem = chatItems.value.lastOrNull { it.id == itemId } ?: return@forEach if (chatModel.chatId.value != null) { // Stop voice playback only inside a chat, allow to play in a chat list AudioPlayer.stop(cItem) } - val deleted = if (r.member_ != null && (cItem.chatDir as CIDirection.GroupRcv?)?.groupMember != r.member_) { + val deleted = if (r.member_ != null && (cItem.chatDir as CIDirection.GroupRcv?)?.groupMember?.groupMemberId != r.member_.groupMemberId) { CIDeleted.Moderated(Clock.System.now(), r.member_) } else { CIDeleted.Deleted(Clock.System.now())