Fix link preview crash.

pull/49/head
Mikunj 6 years ago
parent a6aac19c32
commit 8a3bef0738

@ -104,7 +104,7 @@ public final class LokiGroupChatPoller : NSObject {
} }
} }
// Poll // Poll
let _ = LokiGroupChatAPI.getMessages(for: group.serverID, on: group.server).done { messages in let _ = LokiGroupChatAPI.getMessages(for: group.serverID, on: group.server).done(on: .main) { messages in
messages.reversed().forEach { message in messages.reversed().forEach { message in
if message.hexEncodedPublicKey != userHexEncodedPublicKey { if message.hexEncodedPublicKey != userHexEncodedPublicKey {
processIncomingMessage(message) processIncomingMessage(message)

@ -1407,6 +1407,7 @@ NS_ASSUME_NONNULL_BEGIN
[self.primaryStorage setIDForMessageWithServerID:dataMessage.publicChatInfo.serverID to:incomingMessage.uniqueId in:transaction]; [self.primaryStorage setIDForMessageWithServerID:dataMessage.publicChatInfo.serverID to:incomingMessage.uniqueId in:transaction];
} }
dispatch_async(dispatch_get_main_queue(), ^{
NSString *url = [OWSLinkPreview previewURLForRawBodyText:incomingMessage.body]; NSString *url = [OWSLinkPreview previewURLForRawBodyText:incomingMessage.body];
if (url != nil) { if (url != nil) {
[OWSLinkPreview tryToBuildPreviewInfoObjcWithPreviewUrl:url] [OWSLinkPreview tryToBuildPreviewInfoObjcWithPreviewUrl:url]
@ -1418,6 +1419,7 @@ NS_ASSUME_NONNULL_BEGIN
}]; }];
}); });
} }
});
return incomingMessage; return incomingMessage;
} }
@ -1505,6 +1507,7 @@ NS_ASSUME_NONNULL_BEGIN
transaction:transaction]; transaction:transaction];
if (linkPreview != nil) { if (linkPreview != nil) {
dispatch_async(dispatch_get_main_queue(), ^{
[OWSLinkPreview tryToBuildPreviewInfoObjcWithPreviewUrl:linkPreview.urlString] [OWSLinkPreview tryToBuildPreviewInfoObjcWithPreviewUrl:linkPreview.urlString]
.thenOn(dispatch_get_main_queue(), ^(OWSLinkPreviewDraft *linkPreviewDraft) { .thenOn(dispatch_get_main_queue(), ^(OWSLinkPreviewDraft *linkPreviewDraft) {
if (linkPreviewDraft.jpegImageData == nil) { return; } if (linkPreviewDraft.jpegImageData == nil) { return; }
@ -1515,6 +1518,7 @@ NS_ASSUME_NONNULL_BEGIN
[incomingMessage saveWithTransaction:transaction]; [incomingMessage saveWithTransaction:transaction];
}]; }];
}); });
});
}; };
return incomingMessage; return incomingMessage;

@ -1544,7 +1544,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
// A friend request means we don't have a session with the person // A friend request means we don't have a session with the person
// There's no point to check for it // There's no point to check for it
Boolean isFriendRequest = [messageSend.message isKindOfClass:LKFriendRequestMessage.class]; BOOL isFriendRequest = [messageSend.message isKindOfClass:LKFriendRequestMessage.class];
if (!isFriendRequest) { if (!isFriendRequest) {
[self throws_ensureRecipientHasSessionForMessageSend:messageSend deviceId:deviceId]; [self throws_ensureRecipientHasSessionForMessageSend:messageSend deviceId:deviceId];
} }

Loading…
Cancel
Save