This commit is contained in:
Niels Andriesse 2021-04-15 10:09:05 +10:00
parent 1893ccac76
commit 1a12487292
3 changed files with 17 additions and 9 deletions

View File

@ -31,6 +31,10 @@ public class Message : NSObject, NSCoding { // NSObject/NSCoding conformance is
if let sentTimestamp = coder.decodeObject(forKey: "sentTimestamp") as! UInt64? { self.sentTimestamp = sentTimestamp }
if let receivedTimestamp = coder.decodeObject(forKey: "receivedTimestamp") as! UInt64? { self.receivedTimestamp = receivedTimestamp }
if let recipient = coder.decodeObject(forKey: "recipient") as! String? { self.recipient = recipient }
if let sender = coder.decodeObject(forKey: "sender") as! String? { self.sender = sender }
if let groupPublicKey = coder.decodeObject(forKey: "groupPublicKey") as! String? { self.groupPublicKey = groupPublicKey }
if let openGroupServerMessageID = coder.decodeObject(forKey: "openGroupServerMessageID") as! UInt64? { self.openGroupServerMessageID = openGroupServerMessageID }
if let openGroupServerTimestamp = coder.decodeObject(forKey: "openGroupServerTimestamp") as! UInt64? { self.openGroupServerTimestamp = openGroupServerTimestamp }
}
public func encode(with coder: NSCoder) {
@ -39,6 +43,10 @@ public class Message : NSObject, NSCoding { // NSObject/NSCoding conformance is
coder.encode(sentTimestamp, forKey: "sentTimestamp")
coder.encode(receivedTimestamp, forKey: "receivedTimestamp")
coder.encode(recipient, forKey: "recipient")
coder.encode(sender, forKey: "sender")
coder.encode(groupPublicKey, forKey: "groupPublicKey")
coder.encode(openGroupServerMessageID, forKey: "openGroupServerMessageID")
coder.encode(openGroupServerTimestamp, forKey: "openGroupServerTimestamp")
}
// MARK: Proto Conversion

View File

@ -169,8 +169,8 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
- (uint64_t)timestampForUI
{
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *)self).isOpenGroupMessage) {
return ((TSIncomingMessage *)self).serverTimestamp.unsignedLongLongValue;
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *) self).isOpenGroupMessage) {
return ((TSIncomingMessage *) self).serverTimestamp.unsignedLongLongValue;
}
return _timestamp;
}
@ -182,8 +182,8 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
- (NSDate *)receivedAtDate
{
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *)self).isOpenGroupMessage) {
return [NSDate ows_dateWithMillisecondsSince1970:((TSIncomingMessage *)self).serverTimestamp.unsignedLongLongValue];
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *) self).isOpenGroupMessage) {
return [NSDate ows_dateWithMillisecondsSince1970:((TSIncomingMessage *) self).serverTimestamp.unsignedLongLongValue];
}
return [NSDate ows_dateWithMillisecondsSince1970:self.receivedAtTimestamp];
}
@ -196,8 +196,8 @@ 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.
// sortId == receivedAtTimestamp for open group messages.
// sortId == sendTimestamp for one-to-one and closed group messages.
// sortId == serverTimestamp for open group messages.
// sortId == timestamp (the sent timestamp) for one-to-one and closed group messages.
sortId1 = self.sortId;
sortId2 = other.sortId;
@ -225,8 +225,8 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
- (uint64_t)sortId
{
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *)self).isOpenGroupMessage) {
return ((TSIncomingMessage *)self).serverTimestamp.unsignedLongLongValue;
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *) self).isOpenGroupMessage) {
return ((TSIncomingMessage *) self).serverTimestamp.unsignedLongLongValue;
}
return self.timestamp;
}

View File

@ -146,7 +146,7 @@ public enum MessageReceiver {
message.recipient = userPublicKey
message.sentTimestamp = envelope.timestamp
message.receivedTimestamp = NSDate.millisecondTimestamp()
if (isOpenGroupMessage) {
if isOpenGroupMessage {
message.openGroupServerTimestamp = envelope.serverTimestamp
}
message.groupPublicKey = groupPublicKey