use TSIncomingMessage's serverTimastamp to make more sense

This commit is contained in:
ryanzhao 2021-04-14 11:39:04 +10:00
parent b501579917
commit 1893ccac76
6 changed files with 11 additions and 19 deletions

View File

@ -42,9 +42,6 @@ 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!

View File

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

View File

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

View File

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

View File

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

View File

@ -145,10 +145,9 @@ 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.openGroupServerTimestamp = envelope.serverTimestamp
}
message.groupPublicKey = groupPublicKey
message.openGroupServerMessageID = openGroupMessageServerID