mirror of
https://github.com/oxen-io/session-android.git
synced 2025-08-11 20:57:41 +00:00
Merge pull request #462 from hjubb/config_contacts_sync_message
Config contacts sync message
This commit is contained in:
@@ -16,6 +16,7 @@ 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.OpenGroupUtilities
|
||||
import java.util.*
|
||||
|
||||
@@ -28,7 +29,12 @@ object MultiDeviceProtocol {
|
||||
val lastSyncTime = TextSecurePreferences.getLastConfigurationSyncTime(context)
|
||||
val now = System.currentTimeMillis()
|
||||
if (now - lastSyncTime < 2 * 24 * 60 * 60 * 1000) return
|
||||
val configurationMessage = ConfigurationMessage.getCurrent()
|
||||
val contacts = ContactUtilities.getAllContacts(context).filter { recipient ->
|
||||
!recipient.isBlocked && !recipient.name.isNullOrEmpty() && !recipient.isLocalNumber && recipient.address.serialize().isNotEmpty()
|
||||
}.map { recipient ->
|
||||
ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey)
|
||||
}
|
||||
val configurationMessage = ConfigurationMessage.getCurrent(contacts)
|
||||
val serializedMessage = configurationMessage.toProto()!!.toByteArray()
|
||||
val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender()
|
||||
val address = SignalServiceAddress(userPublicKey)
|
||||
@@ -47,7 +53,12 @@ object MultiDeviceProtocol {
|
||||
// TODO: refactor this to use new message sending job
|
||||
fun forceSyncConfigurationNowIfNeeded(context: Context) {
|
||||
val userPublicKey = TextSecurePreferences.getLocalNumber(context) ?: return
|
||||
val configurationMessage = ConfigurationMessage.getCurrent()
|
||||
val contacts = ContactUtilities.getAllContacts(context).filter { recipient ->
|
||||
!recipient.isGroupRecipient && !recipient.isBlocked && !recipient.name.isNullOrEmpty() && !recipient.isLocalNumber && recipient.address.serialize().isNotEmpty()
|
||||
}.map { recipient ->
|
||||
ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey)
|
||||
}
|
||||
val configurationMessage = ConfigurationMessage.getCurrent(contacts)
|
||||
val serializedMessage = configurationMessage.toProto()!!.toByteArray()
|
||||
val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender()
|
||||
val address = SignalServiceAddress(userPublicKey)
|
||||
|
@@ -12,12 +12,12 @@ object ContactUtilities {
|
||||
val cursor = threadDatabase.conversationList
|
||||
val result = mutableSetOf<Recipient>()
|
||||
threadDatabase.readerFor(cursor).use { reader ->
|
||||
while (reader.next != null) {
|
||||
val thread = reader.current
|
||||
val recipient = thread.recipient
|
||||
result.add(recipient)
|
||||
while (reader.next != null) {
|
||||
val thread = reader.current
|
||||
val recipient = thread.recipient
|
||||
result.add(recipient)
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user