use TSIncomingMessage's serverTimastamp to make more sense

pull/383/head
ryanzhao 3 years ago
parent b501579917
commit 1893ccac76

@ -42,9 +42,6 @@ extension Storage {
} else { } else {
tsMessage = TSIncomingMessage.from(message, quotedMessage: quotedMessage, linkPreview: linkPreview, associatedWith: thread) 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.save(with: transaction)
tsMessage.attachments(with: transaction).forEach { attachment in tsMessage.attachments(with: transaction).forEach { attachment in
attachment.albumMessageId = tsMessage.uniqueId! attachment.albumMessageId = tsMessage.uniqueId!

@ -10,6 +10,7 @@ public class Message : NSObject, NSCoding { // NSObject/NSCoding conformance is
public var sender: String? public var sender: String?
public var groupPublicKey: String? public var groupPublicKey: String?
public var openGroupServerMessageID: UInt64? public var openGroupServerMessageID: UInt64?
public var openGroupServerTimestamp: UInt64?
public var ttl: UInt64 { 2 * 24 * 60 * 60 * 1000 } public var ttl: UInt64 { 2 * 24 * 60 * 60 * 1000 }
public var isSelfSendValid: Bool { false } public var isSelfSendValid: Bool { false }

@ -19,7 +19,7 @@ public extension TSIncomingMessage {
expiresInSeconds: !isOpenGroupMessage ? expiration : 0, // Ensure we don't ever expire open group messages expiresInSeconds: !isOpenGroupMessage ? expiration : 0, // Ensure we don't ever expire open group messages
quotedMessage: quotedMessage, quotedMessage: quotedMessage,
linkPreview: linkPreview, linkPreview: linkPreview,
serverTimestamp: nil, serverTimestamp: visibleMessage.openGroupServerTimestamp as NSNumber?,
wasReceivedByUD: true wasReceivedByUD: true
) )
result.openGroupServerMessageID = openGroupServerMessageID result.openGroupServerMessageID = openGroupServerMessageID

@ -41,8 +41,6 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value);
@property (nonatomic, readonly) uint64_t receivedAtTimestamp; @property (nonatomic, readonly) uint64_t receivedAtTimestamp;
@property (nonatomic, readonly) BOOL shouldUseServerTime; @property (nonatomic, readonly) BOOL shouldUseServerTime;
- (void)setServerTimestampToReceivedTimestamp:(uint64_t)receivedAtTimestamp;
- (uint64_t)timestampForUI; - (uint64_t)timestampForUI;
- (NSDate *)receivedAtDate; - (NSDate *)receivedAtDate;

@ -169,8 +169,8 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
- (uint64_t)timestampForUI - (uint64_t)timestampForUI
{ {
if (_shouldUseServerTime) { if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *)self).isOpenGroupMessage) {
return _receivedAtTimestamp; return ((TSIncomingMessage *)self).serverTimestamp.unsignedLongLongValue;
} }
return _timestamp; return _timestamp;
} }
@ -180,14 +180,11 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
return self.timestamp; return self.timestamp;
} }
- (void)setServerTimestampToReceivedTimestamp:(uint64_t)receivedAtTimestamp
{
_shouldUseServerTime = YES;
_receivedAtTimestamp = receivedAtTimestamp;
}
- (NSDate *)receivedAtDate - (NSDate *)receivedAtDate
{ {
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *)self).isOpenGroupMessage) {
return [NSDate ows_dateWithMillisecondsSince1970:((TSIncomingMessage *)self).serverTimestamp.unsignedLongLongValue];
}
return [NSDate ows_dateWithMillisecondsSince1970:self.receivedAtTimestamp]; return [NSDate ows_dateWithMillisecondsSince1970:self.receivedAtTimestamp];
} }
@ -228,8 +225,8 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
- (uint64_t)sortId - (uint64_t)sortId
{ {
if ([self isKindOfClass:TSMessage.class] && ((TSMessage *)self).isOpenGroupMessage) { if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *)self).isOpenGroupMessage) {
return self.receivedAtTimestamp; return ((TSIncomingMessage *)self).serverTimestamp.unsignedLongLongValue;
} }
return self.timestamp; return self.timestamp;
} }

@ -145,10 +145,9 @@ public enum MessageReceiver {
message.sender = sender message.sender = sender
message.recipient = userPublicKey message.recipient = userPublicKey
message.sentTimestamp = envelope.timestamp message.sentTimestamp = envelope.timestamp
if (isOpenGroupMessage) {
message.receivedTimestamp = envelope.serverTimestamp
} else {
message.receivedTimestamp = NSDate.millisecondTimestamp() message.receivedTimestamp = NSDate.millisecondTimestamp()
if (isOpenGroupMessage) {
message.openGroupServerTimestamp = envelope.serverTimestamp
} }
message.groupPublicKey = groupPublicKey message.groupPublicKey = groupPublicKey
message.openGroupServerMessageID = openGroupMessageServerID message.openGroupServerMessageID = openGroupMessageServerID

Loading…
Cancel
Save