This commit is contained in:
nielsandriesse 2020-05-21 16:48:10 +10:00
parent 45985f4f64
commit 373dfc264f

View File

@ -3,17 +3,16 @@ package org.thoughtcrime.securesms.loki.protocol
import android.content.Context
import android.util.Log
import org.thoughtcrime.securesms.ApplicationContext
import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil
import org.thoughtcrime.securesms.database.Address
import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.loki.utilities.recipient
import org.thoughtcrime.securesms.mms.OutgoingMediaMessage
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.sms.MessageSender
import org.thoughtcrime.securesms.sms.OutgoingEncryptedMessage
import org.thoughtcrime.securesms.sms.OutgoingTextMessage
import org.thoughtcrime.securesms.util.TextSecurePreferences
import org.whispersystems.signalservice.api.messages.SignalServiceContent
import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage
import org.whispersystems.signalservice.api.push.SignalServiceAddress
import org.whispersystems.signalservice.loki.protocol.meta.SessionMetaProtocol
import org.whispersystems.signalservice.loki.protocol.multidevice.MultiDeviceProtocol
import org.whispersystems.signalservice.loki.protocol.todo.LokiMessageFriendRequestStatus
@ -302,20 +301,10 @@ object FriendRequestProtocol {
}
fun sendAutoGeneratedFriendRequest(context: Context, publicKey: String) {
val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender()
val address = SignalServiceAddress(publicKey)
val recipient = recipient(context, publicKey)
val preKeyBundle = DatabaseFactory.getLokiPreKeyBundleDatabase(context).generatePreKeyBundle(address.number)
val message = SignalServiceDataMessage.newBuilder()
.asFriendRequest(true)
.withPreKeyBundle(preKeyBundle)
.withBody("")
val threadDB = DatabaseFactory.getThreadDatabase(context)
val uncheckedThreadID = threadDB.getThreadIdIfExistsFor(recipient)
val threadID = if (uncheckedThreadID == -1L) threadDB.getThreadIdFor(recipient) else uncheckedThreadID
setFriendRequestStatusToSendingIfNeeded(context, 0, threadID)
Log.d("Loki", "Sending auto generated friend request message to: $publicKey.")
val udAccess = UnidentifiedAccessUtil.getAccessFor(context, recipient(context, publicKey))
messageSender.sendMessage(0, address, udAccess, message.build())
val message = OutgoingEncryptedMessage(recipient, "Please accept to enable messages to be synced across devices", 0)
message.isFriendRequest = true
val threadID = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(recipient)
MessageSender.send(context, message, threadID, false, null)
}
}