mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Fix link preview crash.
This commit is contained in:
parent
a6aac19c32
commit
8a3bef0738
|
@ -104,7 +104,7 @@ public final class LokiGroupChatPoller : NSObject {
|
|||
}
|
||||
}
|
||||
// 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
|
||||
if message.hexEncodedPublicKey != userHexEncodedPublicKey {
|
||||
processIncomingMessage(message)
|
||||
|
|
|
@ -1407,17 +1407,19 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
[self.primaryStorage setIDForMessageWithServerID:dataMessage.publicChatInfo.serverID to:incomingMessage.uniqueId in:transaction];
|
||||
}
|
||||
|
||||
NSString *url = [OWSLinkPreview previewURLForRawBodyText:incomingMessage.body];
|
||||
if (url != nil) {
|
||||
[OWSLinkPreview tryToBuildPreviewInfoObjcWithPreviewUrl:url]
|
||||
.thenOn(dispatch_get_main_queue(), ^(OWSLinkPreviewDraft *linkPreviewDraft) {
|
||||
[OWSPrimaryStorage.sharedManager.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
|
||||
OWSLinkPreview *linkPreview = [OWSLinkPreview buildValidatedLinkPreviewFromInfo:linkPreviewDraft transaction:transaction error:nil];
|
||||
incomingMessage.linkPreview = linkPreview;
|
||||
[incomingMessage saveWithTransaction:transaction];
|
||||
}];
|
||||
});
|
||||
}
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
NSString *url = [OWSLinkPreview previewURLForRawBodyText:incomingMessage.body];
|
||||
if (url != nil) {
|
||||
[OWSLinkPreview tryToBuildPreviewInfoObjcWithPreviewUrl:url]
|
||||
.thenOn(dispatch_get_main_queue(), ^(OWSLinkPreviewDraft *linkPreviewDraft) {
|
||||
[OWSPrimaryStorage.sharedManager.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
|
||||
OWSLinkPreview *linkPreview = [OWSLinkPreview buildValidatedLinkPreviewFromInfo:linkPreviewDraft transaction:transaction error:nil];
|
||||
incomingMessage.linkPreview = linkPreview;
|
||||
[incomingMessage saveWithTransaction:transaction];
|
||||
}];
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return incomingMessage;
|
||||
}
|
||||
|
@ -1505,15 +1507,17 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
transaction:transaction];
|
||||
|
||||
if (linkPreview != nil) {
|
||||
[OWSLinkPreview tryToBuildPreviewInfoObjcWithPreviewUrl:linkPreview.urlString]
|
||||
.thenOn(dispatch_get_main_queue(), ^(OWSLinkPreviewDraft *linkPreviewDraft) {
|
||||
if (linkPreviewDraft.jpegImageData == nil) { return; }
|
||||
[OWSPrimaryStorage.sharedManager.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
|
||||
NSString *attachmentID = [OWSLinkPreview buildValidatedLinkPreviewFromInfo:linkPreviewDraft transaction:transaction error:nil].imageAttachmentId;
|
||||
linkPreview.imageAttachmentId = attachmentID;
|
||||
incomingMessage.linkPreview = linkPreview;
|
||||
[incomingMessage saveWithTransaction:transaction];
|
||||
}];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[OWSLinkPreview tryToBuildPreviewInfoObjcWithPreviewUrl:linkPreview.urlString]
|
||||
.thenOn(dispatch_get_main_queue(), ^(OWSLinkPreviewDraft *linkPreviewDraft) {
|
||||
if (linkPreviewDraft.jpegImageData == nil) { return; }
|
||||
[OWSPrimaryStorage.sharedManager.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
|
||||
NSString *attachmentID = [OWSLinkPreview buildValidatedLinkPreviewFromInfo:linkPreviewDraft transaction:transaction error:nil].imageAttachmentId;
|
||||
linkPreview.imageAttachmentId = attachmentID;
|
||||
incomingMessage.linkPreview = linkPreview;
|
||||
[incomingMessage saveWithTransaction:transaction];
|
||||
}];
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -1544,7 +1544,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
|||
|
||||
// A friend request means we don't have a session with the person
|
||||
// There's no point to check for it
|
||||
Boolean isFriendRequest = [messageSend.message isKindOfClass:LKFriendRequestMessage.class];
|
||||
BOOL isFriendRequest = [messageSend.message isKindOfClass:LKFriendRequestMessage.class];
|
||||
if (!isFriendRequest) {
|
||||
[self throws_ensureRecipientHasSessionForMessageSend:messageSend deviceId:deviceId];
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue