diff --git a/SignalServiceKit/src/Contacts/TSThread.m b/SignalServiceKit/src/Contacts/TSThread.m index ce3048c14..4160e5360 100644 --- a/SignalServiceKit/src/Contacts/TSThread.m +++ b/SignalServiceKit/src/Contacts/TSThread.m @@ -729,13 +729,13 @@ ConversationColorName const kConversationColorName_Default = ConversationColorNa messageToKeep = message; } - // We want to remove any old incoming friend request messages + // We want to remove any old incoming friend request messages which are pending if (interactionType == OWSInteractionType_IncomingMessage) { - removeMessage = message.isFriendRequest; + removeMessage = message.friendRequestStatus == TSMessageFriendRequestStatusPending; } else { // Or if we're sending then remove any failed friend request messages TSOutgoingMessage *outgoingMessage = (TSOutgoingMessage *)message; - removeMessage = outgoingMessage.messageState == TSOutgoingMessageStateFailed; + removeMessage = outgoingMessage.isFriendRequest && outgoingMessage.messageState == TSOutgoingMessageStateFailed; } if (removeMessage) { diff --git a/SignalServiceKit/src/Loki/Utilities/FriendRequestExpireJob.swift b/SignalServiceKit/src/Loki/Utilities/FriendRequestExpireJob.swift index e83d9c26d..c79e33052 100644 --- a/SignalServiceKit/src/Loki/Utilities/FriendRequestExpireJob.swift +++ b/SignalServiceKit/src/Loki/Utilities/FriendRequestExpireJob.swift @@ -130,7 +130,7 @@ public final class FriendRequestExpireJob : NSObject { } // Check that we only expire sent friend requests - guard message is TSOutgoingMessage && message.isFriendRequest else { + guard message is TSOutgoingMessage && message.friendRequestStatus == .pending else { // Set message to not expire, so our other logic works correctly message.saveFriendRequestExpires(at: 0, with: transaction) return; diff --git a/SignalServiceKit/src/Loki/Utilities/FriendRequestExpireMessageFinder.swift b/SignalServiceKit/src/Loki/Utilities/FriendRequestExpireMessageFinder.swift index f6de7e514..5dfcf600f 100644 --- a/SignalServiceKit/src/Loki/Utilities/FriendRequestExpireMessageFinder.swift +++ b/SignalServiceKit/src/Loki/Utilities/FriendRequestExpireMessageFinder.swift @@ -36,7 +36,7 @@ public class FriendRequestExpireMessageFinder : NSObject { let now = NSDate.ows_millisecondTimeStamp() let query = "WHERE \(FriendRequestExpireMessageFinder.friendRequestExpireColumn) > 0 AND \(FriendRequestExpireMessageFinder.friendRequestExpireColumn) <= \(now)" - // When (expireAt == 0) then the friend request SHOULD NOT expire + // When (friendRequestExpiresAt == 0) then the friend request SHOULD NOT be set to expired let dbQuery = YapDatabaseQuery(string: query, parameters: []) if let ext = transaction.ext(FriendRequestExpireMessageFinder.friendRequestExpireIndex) as? YapDatabaseSecondaryIndexTransaction { ext.enumerateKeys(matching: dbQuery) { (_, key, _) in @@ -60,10 +60,9 @@ public extension FriendRequestExpireMessageFinder { let handler = YapDatabaseSecondaryIndexHandler.withObjectBlock { (transaction, dict, collection, key, object) in guard let message = object as? TSMessage else { return } - // Only select sent friend requests - guard message is TSOutgoingMessage && message.isFriendRequest else { return } + // Only select sent friend requests which are pending + guard message is TSOutgoingMessage && message.friendRequestStatus == .pending else { return } - // TODO: Replace this with unlock timer dict[friendRequestExpireColumn] = message.friendRequestExpiresAt }