session-android/app/src/main/java/org/thoughtcrime/securesms/util/ConfigurationMessageUtiliti...

41 lines
2.3 KiB
Kotlin
Raw Normal View History

package org.thoughtcrime.securesms.util
2021-02-05 06:35:15 +01:00
import android.content.Context
import org.session.libsession.messaging.messages.Destination
2021-02-05 06:35:15 +01:00
import org.session.libsession.messaging.messages.control.ConfigurationMessage
import org.session.libsession.messaging.sending_receiving.MessageSender
2021-05-18 08:11:38 +02:00
import org.session.libsession.utilities.Address
2021-02-05 06:35:15 +01:00
import org.session.libsession.utilities.TextSecurePreferences
import org.thoughtcrime.securesms.loki.utilities.ContactUtilities
2021-02-05 06:35:15 +01:00
object ConfigurationMessageUtilities {
2021-02-05 06:35:15 +01:00
@JvmStatic
fun syncConfigurationIfNeeded(context: Context) {
2021-02-08 06:44:26 +01:00
val userPublicKey = TextSecurePreferences.getLocalNumber(context) ?: return
2021-02-05 06:35:15 +01:00
val lastSyncTime = TextSecurePreferences.getLastConfigurationSyncTime(context)
val now = System.currentTimeMillis()
2021-05-06 07:46:22 +02:00
if (now - lastSyncTime < 7 * 24 * 60 * 60 * 1000) return
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) ?: return
MessageSender.send(configurationMessage, Address.fromSerialized(userPublicKey))
TextSecurePreferences.setLastConfigurationSyncTime(context, now)
2021-02-05 06:35:15 +01:00
}
fun forceSyncConfigurationNowIfNeeded(context: Context) {
2021-02-08 06:44:26 +01:00
val userPublicKey = TextSecurePreferences.getLocalNumber(context) ?: return
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) ?: return
MessageSender.send(configurationMessage, Destination.from(Address.fromSerialized(userPublicKey)))
TextSecurePreferences.setLastConfigurationSyncTime(context, System.currentTimeMillis())
2021-02-05 06:35:15 +01:00
}
2021-02-08 06:44:26 +01:00
2021-02-05 06:35:15 +01:00
}