Revision 8d76e2e3 ChatSecure/Classes/Model/Yap Storage/OTROutgoingMessage.m

View differences:

ChatSecure/Classes/Model/Yap Storage/OTROutgoingMessage.m
12 12

  
13 13
@implementation OTROutgoingMessage
14 14

  
15
+ (void)receivedDeliveryReceiptForMessageId:(NSString *)messageId transaction:(YapDatabaseReadWriteTransaction*)transaction
16
{
17
    __block OTROutgoingMessage *deliveredMessage = nil;
18
    [transaction enumerateMessagesWithElementId:messageId originId:messageId stanzaId:nil block:^(id<OTRMessageProtocol> _Nonnull message, BOOL * _Null_unspecified stop) {
19
        if ([message isKindOfClass:[self class]]) {
20
            deliveredMessage = (OTROutgoingMessage *)message;
21
            *stop = YES;
22
        }
23
    }];
24
    
25
    // OTRDATA Media messages are not delivered until the transfer is complete. This is handled in the OTREncryptionManager.
26
    if (deliveredMessage.mediaItemUniqueId.length > 0 &&
27
        deliveredMessage.text.length == 0) {
28
        return;
29
    }
30
    
31
    if (deliveredMessage) {
32
        deliveredMessage = [deliveredMessage copy];
33
        deliveredMessage.delivered = YES;
34
        deliveredMessage.dateDelivered = [NSDate date];
35
        [deliveredMessage saveWithTransaction:transaction];
36
    }
37
}
38

  
39 15
#pragma MARK - OTRMessageProtocol 
40 16

  
41 17
- (BOOL)isMessageIncoming

Also available in: Unified diff