|
|
|
@ -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<Long>) {
|
|
|
|
|
private fun handleDeletedMessages(room: String, openGroupID: String, deletions: List<OpenGroupAPIV2.MessageDeletion>) {
|
|
|
|
|
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)
|
|
|
|
|
}
|
|
|
|
|