Don't send AFRs to self
This commit is contained in:
parent
d845b089e9
commit
3b35535628
|
@ -125,7 +125,7 @@ public final class FriendRequestProtocol : NSObject {
|
|||
syncManager.syncContact(masterHexEncodedPublicKey, transaction: transaction)
|
||||
} else if friendRequestStatus == .requestSent {
|
||||
// We sent a friend request to this device before, how can we be sure that it hasn't expired?
|
||||
} else if friendRequestStatus == .none || friendRequestStatus == .requestExpired {
|
||||
} else if !userLinkedDevices.contains(device) && (friendRequestStatus == .none || friendRequestStatus == .requestExpired) {
|
||||
// TODO: We should track these so that we can expire them and resend if needed
|
||||
MultiDeviceProtocol.getAutoGeneratedMultiDeviceFRMessageSend(for: device, in: transaction)
|
||||
.done(on: OWSDispatch.sendingQueue()) { autoGeneratedFRMessageSend in
|
||||
|
|
|
@ -73,7 +73,7 @@ public final class MultiDeviceProtocol : NSObject {
|
|||
let messageSender = SSKEnvironment.shared.messageSender
|
||||
let (promise, seal) = Promise<Void>.pending()
|
||||
let shouldSendAutoGeneratedFR = !thread.isContactFriend && !(message is FriendRequestMessage)
|
||||
&& message.shouldBeSaved() // shouldBeSaved indicates it isn't a transient message
|
||||
&& !SessionMetaProtocol.isThreadNoteToSelf(thread) && message.shouldBeSaved() // shouldBeSaved indicates it isn't a transient message
|
||||
if !shouldSendAutoGeneratedFR {
|
||||
let messageSendCopy = copy(messageSend, for: destination, with: seal)
|
||||
messageSender.sendMessage(messageSendCopy)
|
||||
|
|
|
@ -165,8 +165,10 @@ public final class SyncMessagesProtocol : NSObject {
|
|||
public static func handleContactSyncMessageData(_ data: Data, using transaction: YapDatabaseReadWriteTransaction) {
|
||||
let parser = ContactParser(data: data)
|
||||
let hexEncodedPublicKeys = parser.parseHexEncodedPublicKeys()
|
||||
let linkedDevices = LokiDatabaseUtilities.getLinkedDeviceHexEncodedPublicKeys(for: getUserHexEncodedPublicKey(), in: transaction)
|
||||
// Try to establish sessions
|
||||
for hexEncodedPublicKey in hexEncodedPublicKeys {
|
||||
guard !linkedDevices.contains(hexEncodedPublicKey) else { continue } // Skip self
|
||||
// We don't update the friend request status; that's done in OWSMessageSender.sendMessage(_:)
|
||||
let friendRequestStatus = storage.getFriendRequestStatus(for: hexEncodedPublicKey, transaction: transaction)
|
||||
switch friendRequestStatus {
|
||||
|
|
Loading…
Reference in New Issue