2020-01-31 02:50:25 +01:00
|
|
|
package org.thoughtcrime.securesms.loki.redesign.messaging
|
2019-10-10 01:39:56 +02:00
|
|
|
|
|
|
|
import android.content.Context
|
|
|
|
import org.thoughtcrime.securesms.database.DatabaseFactory
|
|
|
|
import org.thoughtcrime.securesms.database.model.MessageRecord
|
|
|
|
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
2020-05-07 09:59:41 +02:00
|
|
|
import org.whispersystems.signalservice.loki.protocol.mentions.MentionsManager
|
2019-10-10 01:39:56 +02:00
|
|
|
|
|
|
|
object LokiAPIUtilities {
|
|
|
|
|
2019-10-11 07:37:28 +02:00
|
|
|
fun populateUserHexEncodedPublicKeyCacheIfNeeded(threadID: Long, context: Context) {
|
2020-05-07 09:59:41 +02:00
|
|
|
if (MentionsManager.userHexEncodedPublicKeyCache[threadID] != null) { return }
|
2019-10-10 01:39:56 +02:00
|
|
|
val result = mutableSetOf<String>()
|
|
|
|
val messageDatabase = DatabaseFactory.getMmsSmsDatabase(context)
|
|
|
|
val reader = messageDatabase.readerFor(messageDatabase.getConversation(threadID))
|
|
|
|
var record: MessageRecord? = reader.next
|
|
|
|
while (record != null) {
|
|
|
|
result.add(record.individualRecipient.address.serialize())
|
|
|
|
try {
|
|
|
|
record = reader.next
|
|
|
|
} catch (exception: Exception) {
|
|
|
|
record = null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
reader.close()
|
|
|
|
result.add(TextSecurePreferences.getLocalNumber(context))
|
2020-05-07 09:59:41 +02:00
|
|
|
MentionsManager.userHexEncodedPublicKeyCache[threadID] = result
|
2019-10-10 01:39:56 +02:00
|
|
|
}
|
|
|
|
}
|