diff --git a/libsession/src/main/java/org/session/libsession/messaging/open_groups/OpenGroupAPIV2.kt b/libsession/src/main/java/org/session/libsession/messaging/open_groups/OpenGroupAPIV2.kt index a1bcfe441..a998f685c 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/open_groups/OpenGroupAPIV2.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/open_groups/OpenGroupAPIV2.kt @@ -67,7 +67,7 @@ object OpenGroupAPIV2 { @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy::class) data class MessageDeletion - @JvmOverloads constructor(val id: Long = 0, val deletedMessageId: Long = 0 + @JvmOverloads constructor(val id: Long = 0, val deletedMessageServerID: Long = 0 ) { companion object { @@ -396,13 +396,13 @@ object OpenGroupAPIV2 { // Deletions val type = TypeFactory.defaultInstance().constructCollectionType(List::class.java, MessageDeletion::class.java) val idsAsString = JsonUtil.toJson(json["deletions"]) - val deletedServerIDs = JsonUtil.fromJson>(idsAsString, type) ?: throw Error.ParsingFailed + val deletions = JsonUtil.fromJson>(idsAsString, type) ?: throw Error.ParsingFailed // Messages val rawMessages = json["messages"] as? List> ?: return@mapNotNull null val messages = parseMessages(roomID, server, rawMessages) roomID to CompactPollResult( messages = messages, - deletions = deletedServerIDs.map { it.deletedMessageId }, + deletions = deletions, moderators = moderators ) }.toMap() diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPollerV2.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPollerV2.kt index 57ec540da..7cfc44801 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPollerV2.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPollerV2.kt @@ -97,15 +97,15 @@ class OpenGroupPollerV2(private val server: String, private val executorService: JobQueue.shared.add(TrimThreadJob(threadId)) } - private fun handleDeletedMessages(room: String, openGroupID: String, deletedMessageServerIDs: List) { + private fun handleDeletedMessages(room: String, openGroupID: String, deletions: List) { val storage = MessagingModuleConfiguration.shared.storage val dataProvider = MessagingModuleConfiguration.shared.messageDataProvider val groupID = GroupUtil.getEncodedOpenGroupID(openGroupID.toByteArray()) val threadID = storage.getThreadId(Address.fromSerialized(groupID)) ?: return - val deletedMessageIDs = deletedMessageServerIDs.mapNotNull { serverID -> - val messageID = dataProvider.getMessageID(serverID, threadID) + val deletedMessageIDs = deletions.mapNotNull { deletion -> + val messageID = dataProvider.getMessageID(deletion.deletedMessageServerID, threadID) if (messageID == null) { - Log.d("Loki", "Couldn't find message ID for message with serverID: $serverID.") + Log.d("Loki", "Couldn't find message ID for message with serverID: ${deletion.deletedMessageServerID}.") } messageID } @@ -113,7 +113,7 @@ class OpenGroupPollerV2(private val server: String, private val executorService: MessagingModuleConfiguration.shared.messageDataProvider.deleteMessage(messageId, isSms) } val currentMax = storage.getLastDeletionServerID(room, server) ?: 0L - val latestMax = deletedMessageServerIDs.maxOrNull() ?: 0L + val latestMax = deletions.map { it.id }.maxOrNull() ?: 0L if (latestMax > currentMax && latestMax != 0L) { storage.setLastDeletionServerID(room, server, latestMax) }