WIP
parent
787b74ad1f
commit
93b7472e25
@ -0,0 +1,30 @@
|
|||||||
|
package org.thoughtcrime.securesms.loki
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.util.Log
|
||||||
|
import org.thoughtcrime.securesms.jobs.PushDecryptJob
|
||||||
|
import org.whispersystems.libsignal.util.guava.Optional
|
||||||
|
import org.whispersystems.signalservice.api.messages.SignalServiceContent
|
||||||
|
import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage
|
||||||
|
import org.whispersystems.signalservice.api.messages.SignalServiceGroup
|
||||||
|
import org.whispersystems.signalservice.api.push.SignalServiceAddress
|
||||||
|
import org.whispersystems.signalservice.loki.api.LokiGroupChatAPI
|
||||||
|
|
||||||
|
object LokiGroupChatPoller {
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun poll(context: Context, groupID: Long) {
|
||||||
|
LokiGroupChatAPI.getMessages(groupID).success { messages ->
|
||||||
|
messages.map { message ->
|
||||||
|
val id = "loki-group-chat-$groupID".toByteArray()
|
||||||
|
val x1 = SignalServiceGroup(SignalServiceGroup.Type.UPDATE, id, null, null, null)
|
||||||
|
val x2 = SignalServiceDataMessage(message.timestamp, x1, null, message.body)
|
||||||
|
val senderDisplayName = "${message.displayName} (...${message.hexEncodedPublicKey.takeLast(8)})"
|
||||||
|
val x3 = SignalServiceContent(x2, senderDisplayName, SignalServiceAddress.DEFAULT_DEVICE_ID, message.timestamp, false)
|
||||||
|
PushDecryptJob(context).handleTextMessage(x3, x2, Optional.absent())
|
||||||
|
}
|
||||||
|
}.fail {
|
||||||
|
Log.d("Loki", "Failed to get messages for group chat with ID: $groupID.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue