pull/1/head
Frederic Jacobs 11 years ago
parent 5ccbc4131b
commit a9ad6643a0

@ -70,6 +70,7 @@
} }
} }
}]; }];
[self removeWithTransaction:transaction];
}]; }];
for (IncomingPushMessageSignal *aSignal in messagesToDecrypt) { for (IncomingPushMessageSignal *aSignal in messagesToDecrypt) {

@ -51,10 +51,6 @@ dispatch_queue_t attachmentsQueue() {
if ([attachmentPointer.contentType hasPrefix:@"image/"]||[attachmentPointer.contentType hasPrefix:@"video/"] || [attachmentPointer.contentType hasPrefix:@"audio/"]) { if ([attachmentPointer.contentType hasPrefix:@"image/"]||[attachmentPointer.contentType hasPrefix:@"video/"] || [attachmentPointer.contentType hasPrefix:@"audio/"]) {
[attachmentPointer saveWithTransaction:transaction]; [attachmentPointer saveWithTransaction:transaction];
dispatch_async(attachmentsQueue(), ^{
[self retrieveAttachment:attachmentPointer messageId:[TSInteraction stringFromTimeStamp:message.timestamp]];
});
[retrievedAttachments addObject:attachmentPointer.uniqueId]; [retrievedAttachments addObject:attachmentPointer.uniqueId];
shouldProcessMessage = YES; shouldProcessMessage = YES;
} }
@ -70,7 +66,16 @@ dispatch_queue_t attachmentsQueue() {
}]; }];
if (shouldProcessMessage) { if (shouldProcessMessage) {
[self handleReceivedMessage:message withContent:content attachments:retrievedAttachments]; [self handleReceivedMessage:message withContent:content attachments:retrievedAttachments completionBlock:^(NSString *messageIdentifier) {
for (NSString *pointerId in retrievedAttachments) {
dispatch_async(attachmentsQueue(), ^{
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
TSAttachmentPointer *pointer = [TSAttachmentPointer fetchObjectWithUniqueID:pointerId transaction:transaction];
[self retrieveAttachment:pointer messageId:messageIdentifier];
}];
});
}
}];
} }
} }

@ -22,6 +22,7 @@
- (void)processException:(NSException*)exception outgoingMessage:(TSOutgoingMessage*)message; - (void)processException:(NSException*)exception outgoingMessage:(TSOutgoingMessage*)message;
- (void)handleReceivedMessage:(IncomingPushMessageSignal*)message withContent:(PushMessageContent*)content attachments:(NSArray*)attachments; - (void)handleReceivedMessage:(IncomingPushMessageSignal*)message withContent:(PushMessageContent*)content attachments:(NSArray*)attachments;
- (void)handleReceivedMessage:(IncomingPushMessageSignal*)message withContent:(PushMessageContent*)content attachments:(NSArray*)attachments completionBlock:(void (^)(NSString* messageIdentifier))completionBlock ;
-(void)handleSendToMyself:(TSOutgoingMessage*)outgoingMessage; -(void)handleSendToMyself:(TSOutgoingMessage*)outgoingMessage;

@ -239,6 +239,10 @@
} }
- (void)handleReceivedMessage:(IncomingPushMessageSignal *)message withContent:(PushMessageContent *)content attachments:(NSArray *)attachments{ - (void)handleReceivedMessage:(IncomingPushMessageSignal *)message withContent:(PushMessageContent *)content attachments:(NSArray *)attachments{
[self handleReceivedMessage:message withContent:content attachments:attachments completionBlock:nil];
}
- (void)handleReceivedMessage:(IncomingPushMessageSignal*)message withContent:(PushMessageContent*)content attachments:(NSArray*)attachments completionBlock:(void (^)(NSString* messageIdentifier))completionBlock {
uint64_t timeStamp = message.timestamp; uint64_t timeStamp = message.timestamp;
NSString *body = content.body; NSString *body = content.body;
NSData *groupId = content.hasGroup?content.group.id:nil; NSData *groupId = content.hasGroup?content.group.id:nil;
@ -294,6 +298,9 @@
incomingMessage = [[TSIncomingMessage alloc] initWithTimestamp:timeStamp inThread:cThread messageBody:body attachments:attachments]; incomingMessage = [[TSIncomingMessage alloc] initWithTimestamp:timeStamp inThread:cThread messageBody:body attachments:attachments];
[incomingMessage saveWithTransaction:transaction]; [incomingMessage saveWithTransaction:transaction];
thread = cThread; thread = cThread;
if (completionBlock) {
completionBlock(incomingMessage.uniqueId);
}
} }
NSString *name = [thread name]; NSString *name = [thread name];
[self notifyUserForIncomingMessage:incomingMessage from:name]; [self notifyUserForIncomingMessage:incomingMessage from:name];

Loading…
Cancel
Save