mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-27 20:15:21 +00:00
send configuration message using new sending pipeline
This commit is contained in:
parent
a1d1b864e6
commit
70b96fbe73
@ -3,26 +3,20 @@ package org.thoughtcrime.securesms.loki.protocol
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.google.protobuf.ByteString
|
import com.google.protobuf.ByteString
|
||||||
import org.session.libsession.messaging.MessagingConfiguration
|
import org.session.libsession.messaging.MessagingConfiguration
|
||||||
|
import org.session.libsession.messaging.messages.Destination
|
||||||
import org.session.libsession.messaging.messages.control.ConfigurationMessage
|
import org.session.libsession.messaging.messages.control.ConfigurationMessage
|
||||||
|
import org.session.libsession.messaging.sending_receiving.MessageSender
|
||||||
import org.session.libsession.messaging.threads.Address
|
import org.session.libsession.messaging.threads.Address
|
||||||
import org.session.libsession.messaging.threads.recipients.Recipient
|
|
||||||
import org.session.libsession.utilities.TextSecurePreferences
|
import org.session.libsession.utilities.TextSecurePreferences
|
||||||
import org.session.libsignal.libsignal.util.guava.Optional
|
|
||||||
import org.session.libsignal.service.api.push.SignalServiceAddress
|
|
||||||
import org.session.libsignal.service.internal.push.SignalServiceProtos
|
import org.session.libsignal.service.internal.push.SignalServiceProtos
|
||||||
import org.session.libsignal.service.internal.push.SignalServiceProtos.DataMessage
|
import org.session.libsignal.service.internal.push.SignalServiceProtos.DataMessage
|
||||||
import org.session.libsignal.service.loki.utilities.removing05PrefixIfNeeded
|
import org.session.libsignal.service.loki.utilities.removing05PrefixIfNeeded
|
||||||
import org.session.libsignal.utilities.Hex
|
import org.session.libsignal.utilities.Hex
|
||||||
import org.session.libsignal.utilities.logging.Log
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext
|
|
||||||
import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil
|
|
||||||
import org.thoughtcrime.securesms.loki.utilities.ContactUtilities
|
import org.thoughtcrime.securesms.loki.utilities.ContactUtilities
|
||||||
import org.thoughtcrime.securesms.loki.utilities.OpenGroupUtilities
|
import org.thoughtcrime.securesms.loki.utilities.OpenGroupUtilities
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
object MultiDeviceProtocol {
|
object MultiDeviceProtocol {
|
||||||
|
|
||||||
// TODO: refactor this to use new message sending job
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun syncConfigurationIfNeeded(context: Context) {
|
fun syncConfigurationIfNeeded(context: Context) {
|
||||||
val userPublicKey = TextSecurePreferences.getLocalNumber(context) ?: return
|
val userPublicKey = TextSecurePreferences.getLocalNumber(context) ?: return
|
||||||
@ -35,22 +29,10 @@ object MultiDeviceProtocol {
|
|||||||
ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey)
|
ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey)
|
||||||
}
|
}
|
||||||
val configurationMessage = ConfigurationMessage.getCurrent(contacts) ?: return
|
val configurationMessage = ConfigurationMessage.getCurrent(contacts) ?: return
|
||||||
val serializedMessage = configurationMessage.toProto()!!.toByteArray()
|
MessageSender.send(configurationMessage, Address.fromSerialized(userPublicKey))
|
||||||
val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender()
|
|
||||||
val address = SignalServiceAddress(userPublicKey)
|
|
||||||
val recipient = Recipient.from(context, Address.fromSerialized(userPublicKey), false)
|
|
||||||
val udAccess = UnidentifiedAccessUtil.getAccessFor(context, recipient)
|
|
||||||
try {
|
|
||||||
messageSender.sendMessage(0, address, udAccess,
|
|
||||||
Date().time, serializedMessage, false, configurationMessage.ttl.toInt(),
|
|
||||||
true, false, false, Optional.absent())
|
|
||||||
TextSecurePreferences.setLastConfigurationSyncTime(context, now)
|
TextSecurePreferences.setLastConfigurationSyncTime(context, now)
|
||||||
} catch (e: Exception) {
|
|
||||||
Log.d("Loki", "Failed to send configuration message due to error: $e.")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: refactor this to use new message sending job
|
|
||||||
fun forceSyncConfigurationNowIfNeeded(context: Context) {
|
fun forceSyncConfigurationNowIfNeeded(context: Context) {
|
||||||
val userPublicKey = TextSecurePreferences.getLocalNumber(context) ?: return
|
val userPublicKey = TextSecurePreferences.getLocalNumber(context) ?: return
|
||||||
val contacts = ContactUtilities.getAllContacts(context).filter { recipient ->
|
val contacts = ContactUtilities.getAllContacts(context).filter { recipient ->
|
||||||
@ -59,18 +41,7 @@ object MultiDeviceProtocol {
|
|||||||
ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey)
|
ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey)
|
||||||
}
|
}
|
||||||
val configurationMessage = ConfigurationMessage.getCurrent(contacts) ?: return
|
val configurationMessage = ConfigurationMessage.getCurrent(contacts) ?: return
|
||||||
val serializedMessage = configurationMessage.toProto()!!.toByteArray()
|
MessageSender.send(configurationMessage, Destination.from(Address.fromSerialized(userPublicKey)))
|
||||||
val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender()
|
|
||||||
val address = SignalServiceAddress(userPublicKey)
|
|
||||||
val recipient = Recipient.from(context, Address.fromSerialized(userPublicKey), false)
|
|
||||||
val udAccess = UnidentifiedAccessUtil.getAccessFor(context, recipient)
|
|
||||||
try {
|
|
||||||
messageSender.sendMessage(0, address, udAccess,
|
|
||||||
Date().time, serializedMessage, false, configurationMessage.ttl.toInt(),
|
|
||||||
true, false, false, Optional.absent())
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Log.d("Loki", "Failed to send configuration message due to error: $e.")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: remove this after we migrate to new message receiving pipeline
|
// TODO: remove this after we migrate to new message receiving pipeline
|
||||||
|
Loading…
Reference in New Issue
Block a user