From 848cab8677845ccd1a6437aec11334d554b9e190 Mon Sep 17 00:00:00 2001 From: Mikunj Date: Fri, 15 Nov 2019 09:58:13 +1100 Subject: [PATCH] Handle incoming messages from our other devices in public chats. --- .../securesms/loki/LokiPublicChatPoller.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/org/thoughtcrime/securesms/loki/LokiPublicChatPoller.kt b/src/org/thoughtcrime/securesms/loki/LokiPublicChatPoller.kt index 71a577db75..810353a614 100644 --- a/src/org/thoughtcrime/securesms/loki/LokiPublicChatPoller.kt +++ b/src/org/thoughtcrime/securesms/loki/LokiPublicChatPoller.kt @@ -25,6 +25,8 @@ import org.whispersystems.signalservice.api.push.SignalServiceAddress import org.whispersystems.signalservice.loki.api.LokiPublicChat import org.whispersystems.signalservice.loki.api.LokiPublicChatAPI import org.whispersystems.signalservice.loki.api.LokiPublicChatMessage +import org.whispersystems.signalservice.loki.api.LokiStorageAPI +import org.whispersystems.signalservice.loki.utilities.get import org.whispersystems.signalservice.loki.utilities.successBackground class LokiPublicChatPoller(private val context: Context, private val group: LokiPublicChat) { @@ -199,12 +201,15 @@ class LokiPublicChatPoller(private val context: Context, private val group: Loki } } api.getMessages(group.channel, group.server).successBackground { messages -> - // Process messages in the background - messages.forEach { message -> - if (message.hexEncodedPublicKey != userHexEncodedPublicKey) { - processIncomingMessage(message) - } else { - processOutgoingMessage(message) + if (messages.isNotEmpty()) { + val ourDevices = LokiStorageAPI.shared.getAllDevicePublicKeys(userHexEncodedPublicKey).get(setOf()) + // Process messages in the background + messages.forEach { message -> + if (ourDevices.contains(message.hexEncodedPublicKey)) { + processOutgoingMessage(message) + } else { + processIncomingMessage(message) + } } } }.fail {