fix unread message count bug
This commit is contained in:
parent
51576acec1
commit
fcc3c27779
|
@ -42,6 +42,9 @@ extension Storage {
|
|||
} else {
|
||||
tsMessage = TSIncomingMessage.from(message, quotedMessage: quotedMessage, linkPreview: linkPreview, associatedWith: thread)
|
||||
}
|
||||
if let serverTimestamp = message.receivedTimestamp, openGroupID != nil {
|
||||
tsMessage.setServerTimestampToReceivedTimestamp(serverTimestamp)
|
||||
}
|
||||
tsMessage.save(with: transaction)
|
||||
tsMessage.attachments(with: transaction).forEach { attachment in
|
||||
attachment.albumMessageId = tsMessage.uniqueId!
|
||||
|
|
|
@ -199,13 +199,10 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
|
|||
// In open groups messages should be sorted by server timestamp. `sortId` represents the order in which messages
|
||||
// were processed. Since in the open group poller we sort messages by their server timestamp, sorting by `sortId` is
|
||||
// effectively the same as sorting by server timestamp.
|
||||
if ([self isKindOfClass:TSMessage.class] && ((TSMessage *)self).isOpenGroupMessage) {
|
||||
sortId1 = self.sortId;
|
||||
sortId2 = other.sortId;
|
||||
} else {
|
||||
sortId1 = self.timestamp;
|
||||
sortId2 = other.timestamp;
|
||||
}
|
||||
// sortId == receivedAtTimestamp for open group messages.
|
||||
// sortId == sendTimestamp for one-to-one and closed group messages.
|
||||
sortId1 = self.sortId;
|
||||
sortId2 = other.sortId;
|
||||
|
||||
if (sortId1 > sortId2) {
|
||||
return NSOrderedDescending;
|
||||
|
@ -229,6 +226,14 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
|
|||
(unsigned long)self.timestamp];
|
||||
}
|
||||
|
||||
- (uint64_t)sortId
|
||||
{
|
||||
if ([self isKindOfClass:TSMessage.class] && ((TSMessage *)self).isOpenGroupMessage) {
|
||||
return self.receivedAtTimestamp;
|
||||
}
|
||||
return self.timestamp;
|
||||
}
|
||||
|
||||
- (void)saveWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
|
||||
{
|
||||
if (!self.uniqueId) {
|
||||
|
|
|
@ -145,7 +145,11 @@ public enum MessageReceiver {
|
|||
message.sender = sender
|
||||
message.recipient = userPublicKey
|
||||
message.sentTimestamp = envelope.timestamp
|
||||
message.receivedTimestamp = NSDate.millisecondTimestamp()
|
||||
if (isOpenGroupMessage) {
|
||||
message.receivedTimestamp = envelope.serverTimestamp
|
||||
} else {
|
||||
message.receivedTimestamp = NSDate.millisecondTimestamp()
|
||||
}
|
||||
message.groupPublicKey = groupPublicKey
|
||||
message.openGroupServerMessageID = openGroupMessageServerID
|
||||
// Validate
|
||||
|
|
|
@ -267,6 +267,7 @@ NSString *const OWSReadReceiptManagerAreReadReceiptsEnabled = @"areReadReceiptsE
|
|||
}
|
||||
id<OWSReadTracking> possiblyRead = (id<OWSReadTracking>)object;
|
||||
if (possiblyRead.sortId > sortId) {
|
||||
uint64_t test = possiblyRead.sortId;
|
||||
*stop = YES;
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue