|
|
|
@ -532,33 +532,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
|
|
|
|
|
|
|
- (BOOL)shouldShowFriendRequestUIForMessage:(TSMessage *)message
|
|
|
|
|
{
|
|
|
|
|
if ([message isKindOfClass:TSOutgoingMessage.class]) {
|
|
|
|
|
return message.isFriendRequest;
|
|
|
|
|
} else {
|
|
|
|
|
if (message.isFriendRequest) {
|
|
|
|
|
// Only show the first friend request that was received
|
|
|
|
|
NSString *senderID = ((TSIncomingMessage *)message).authorId;
|
|
|
|
|
__block NSMutableSet<TSContactThread *> *linkedDeviceThreads;
|
|
|
|
|
[OWSPrimaryStorage.sharedManager.dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
|
|
|
|
|
linkedDeviceThreads = [LKDatabaseUtilities getLinkedDeviceThreadsFor:senderID in:transaction].mutableCopy;
|
|
|
|
|
}];
|
|
|
|
|
NSMutableArray<TSIncomingMessage *> *allFriendRequestMessages = @[].mutableCopy;
|
|
|
|
|
for (TSContactThread *thread in linkedDeviceThreads) {
|
|
|
|
|
[thread enumerateInteractionsUsingBlock:^(TSInteraction *interaction) { // Starts a new write transaction internally
|
|
|
|
|
TSIncomingMessage *message = [interaction as:TSIncomingMessage.class];
|
|
|
|
|
if (message != nil && message.isFriendRequest) {
|
|
|
|
|
[allFriendRequestMessages addObject:message];
|
|
|
|
|
}
|
|
|
|
|
}];
|
|
|
|
|
}
|
|
|
|
|
[allFriendRequestMessages sortUsingComparator:^NSComparisonResult(TSIncomingMessage *lhs, TSIncomingMessage *rhs) {
|
|
|
|
|
return [@(lhs.timestamp) compare:@(rhs.timestamp)] == NSOrderedDescending;
|
|
|
|
|
}];
|
|
|
|
|
return [message.uniqueId isEqual:allFriendRequestMessages.firstObject.uniqueId];
|
|
|
|
|
} else {
|
|
|
|
|
return NO;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@end
|
|
|
|
|