Handle incoming messages from our other devices in public chats.

This commit is contained in:
Mikunj 2019-11-15 09:58:13 +11:00
parent 55ea9869a8
commit 848cab8677

View File

@ -25,6 +25,8 @@ import org.whispersystems.signalservice.api.push.SignalServiceAddress
import org.whispersystems.signalservice.loki.api.LokiPublicChat import org.whispersystems.signalservice.loki.api.LokiPublicChat
import org.whispersystems.signalservice.loki.api.LokiPublicChatAPI import org.whispersystems.signalservice.loki.api.LokiPublicChatAPI
import org.whispersystems.signalservice.loki.api.LokiPublicChatMessage 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 import org.whispersystems.signalservice.loki.utilities.successBackground
class LokiPublicChatPoller(private val context: Context, private val group: LokiPublicChat) { 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 -> api.getMessages(group.channel, group.server).successBackground { messages ->
// Process messages in the background if (messages.isNotEmpty()) {
messages.forEach { message -> val ourDevices = LokiStorageAPI.shared.getAllDevicePublicKeys(userHexEncodedPublicKey).get(setOf())
if (message.hexEncodedPublicKey != userHexEncodedPublicKey) { // Process messages in the background
processIncomingMessage(message) messages.forEach { message ->
} else { if (ourDevices.contains(message.hexEncodedPublicKey)) {
processOutgoingMessage(message) processOutgoingMessage(message)
} else {
processIncomingMessage(message)
}
} }
} }
}.fail { }.fail {