diff --git a/LegacyComponents/TGConversation.h b/LegacyComponents/TGConversation.h index 16252c3d19..661f1d19d7 100644 --- a/LegacyComponents/TGConversation.h +++ b/LegacyComponents/TGConversation.h @@ -203,6 +203,7 @@ typedef enum { @property (nonatomic, strong) NSString *text; @property (nonatomic, strong) NSArray *media; @property (nonatomic, strong) NSData *mediaData; +@property (nonatomic) int64_t messageFlags; @property (nonatomic) int unreadCount; @property (nonatomic) int serviceUnreadCount; diff --git a/LegacyComponents/TGConversation.m b/LegacyComponents/TGConversation.m index fecc806ea5..928d601516 100644 --- a/LegacyComponents/TGConversation.m +++ b/LegacyComponents/TGConversation.m @@ -524,6 +524,7 @@ _pinnedDate = [coder decodeInt32ForCKey:"pdt"]; _channelAdminRights = [coder decodeObjectForCKey:"car"]; _channelBannedRights = [coder decodeObjectForCKey:"cbr"]; + _messageFlags = [coder decodeInt64ForCKey:"mf"]; } return self; } @@ -573,6 +574,7 @@ [coder encodeInt32:_chatCreationDate forCKey:"ccd"]; [coder encodeObject:_channelAdminRights forCKey:"car"]; [coder encodeObject:_channelBannedRights forCKey:"cbr"]; + [coder encodeInt64:_messageFlags forCKey:"mf"]; } - (id)copyWithZone:(NSZone *)__unused zone @@ -640,6 +642,8 @@ conversation->_channelAdminRights = _channelAdminRights; conversation->_channelBannedRights = _channelBannedRights; + conversation->_messageFlags = _messageFlags; + return conversation; } @@ -669,6 +673,7 @@ _unread = [self isMessageUnread:message]; _deliveryError = message.deliveryState == TGMessageDeliveryStateFailed; _deliveryState = message.deliveryState; + _messageFlags = message.flags; } - (void)mergeEmptyMessage { @@ -679,6 +684,7 @@ _unread = false; _deliveryError = false; _deliveryState = TGMessageDeliveryStateDelivered; + _messageFlags = 0; } - (NSData *)mediaData @@ -843,7 +849,7 @@ int32_t magic = 0x7acde441; [data appendBytes:&magic length:4]; - int32_t version = 7; + int32_t version = 8; [data appendBytes:&version length:4]; for (int i = 0; i < 3; i++) @@ -884,6 +890,8 @@ [data appendBytes:&_messageDate length:4]; [data appendBytes:&_minMessageDate length:4]; + [data appendBytes:&_messageFlags length:8]; + return data; } @@ -973,6 +981,11 @@ ptr += 4; } } + + if (version >= 8) { + [data getBytes:&_messageFlags range:NSMakeRange(ptr, 8)]; + ptr += 8; + } } } }