Revision 8d76e2e3 ChatSecure/Classes/Model/Yap Storage/OTROutgoingMessage.m
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