From e3f107b00ca225ab575d5c0c7ebb3bee53f61c09 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Fri, 17 Jul 2020 15:06:16 +1000 Subject: [PATCH] Fix incorrect contacts being synced --- .../securesms/loki/api/BackgroundPollWorker.kt | 2 +- .../loki/protocol/SyncMessagesProtocol.kt | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/org/thoughtcrime/securesms/loki/api/BackgroundPollWorker.kt b/src/org/thoughtcrime/securesms/loki/api/BackgroundPollWorker.kt index 1d96295f73..46ffe29abb 100644 --- a/src/org/thoughtcrime/securesms/loki/api/BackgroundPollWorker.kt +++ b/src/org/thoughtcrime/securesms/loki/api/BackgroundPollWorker.kt @@ -15,7 +15,7 @@ import java.util.concurrent.TimeUnit class BackgroundPollWorker : PersistentAlarmManagerListener() { companion object { - private val pollInterval = TimeUnit.MINUTES.toMillis(30) + private val pollInterval = TimeUnit.MINUTES.toMillis(20) @JvmStatic fun schedule(context: Context) { diff --git a/src/org/thoughtcrime/securesms/loki/protocol/SyncMessagesProtocol.kt b/src/org/thoughtcrime/securesms/loki/protocol/SyncMessagesProtocol.kt index 6218575330..78eb90486d 100644 --- a/src/org/thoughtcrime/securesms/loki/protocol/SyncMessagesProtocol.kt +++ b/src/org/thoughtcrime/securesms/loki/protocol/SyncMessagesProtocol.kt @@ -12,6 +12,7 @@ import org.thoughtcrime.securesms.groups.GroupManager import org.thoughtcrime.securesms.groups.GroupMessageProcessor import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob import org.thoughtcrime.securesms.jobs.MultiDeviceGroupUpdateJob +import org.thoughtcrime.securesms.loki.utilities.ContactUtilities import org.thoughtcrime.securesms.loki.utilities.OpenGroupUtilities import org.thoughtcrime.securesms.loki.utilities.recipient import org.thoughtcrime.securesms.recipients.Recipient @@ -49,15 +50,16 @@ object SyncMessagesProtocol { @JvmStatic fun getContactsToSync(context: Context): List { - val allAddresses = ArrayList(DatabaseFactory.getRecipientDatabase(context).allAddresses) + val contacts = ContactUtilities.getAllContacts(context) val result = mutableSetOf() - for (address in allAddresses) { - if (!shouldSyncContact(context, address.serialize())) { continue } - val threadID = DatabaseFactory.getThreadDatabase(context).getThreadIdIfExistsFor(Recipient.from(context, address, false)) + for (contact in contacts) { + val contactPublicKey = contact.recipient.address.serialize() + if (!shouldSyncContact(context, contactPublicKey)) { continue } + val threadID = DatabaseFactory.getThreadDatabase(context).getThreadIdIfExistsFor(recipient(context, contactPublicKey)) if (threadID < 0) { continue } - val displayName = DatabaseFactory.getLokiUserDatabase(context).getDisplayName(address.serialize()) + val displayName = DatabaseFactory.getLokiUserDatabase(context).getDisplayName(contactPublicKey) val contactData = ContactData(threadID, displayName) - contactData.numbers.add(NumberData("TextSecure", address.serialize())) + contactData.numbers.add(NumberData("TextSecure", contactPublicKey)) result.add(contactData) } return result.toList()