Merge pull request #390 from RyanRory/fix-open-group-message-timestamp

Fix Open Group Message Timestamp Issue
pull/395/head
Niels Andriesse 4 years ago committed by GitHub
commit 9d32a90b61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -286,7 +286,7 @@ final class VisibleMessageCell : MessageCell, LinkPreviewViewDelegate {
dateBreakLabel.font = .boldSystemFont(ofSize: Values.verySmallFontSize)
dateBreakLabel.textColor = Colors.text
dateBreakLabel.textAlignment = .center
let date = viewItem.interaction.receivedAtDate()
let date = viewItem.interaction.dateForUI()
let description = DateUtil.formatDate(forConversationDateBreaks: date)
dateBreakLabel.text = description
headerView.addSubview(dateBreakLabel)

@ -120,7 +120,7 @@ public struct GalleryDate: Hashable, Comparable, Equatable {
let month: Int
init(message: TSMessage) {
let date = message.receivedAtDate()
let date = message.dateForUI()
self.year = Calendar.current.component(.year, from: date)
self.month = Calendar.current.component(.month, from: date)

@ -43,6 +43,8 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value);
- (uint64_t)timestampForUI;
- (NSDate *)dateForUI;
- (NSDate *)receivedAtDate;
- (OWSInteractionType)interactionType;

@ -169,7 +169,7 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
- (uint64_t)timestampForUI
{
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *) self).isOpenGroupMessage) {
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *) self).isOpenGroupMessage && ((TSIncomingMessage *) self).serverTimestamp != nil) {
return ((TSIncomingMessage *) self).serverTimestamp.unsignedLongLongValue;
}
return _timestamp;
@ -180,11 +180,14 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
return self.timestamp;
}
- (NSDate *)dateForUI
{
return [NSDate ows_dateWithMillisecondsSince1970:self.timestampForUI];
}
- (NSDate *)receivedAtDate
{
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *) self).isOpenGroupMessage) {
return [NSDate ows_dateWithMillisecondsSince1970:((TSIncomingMessage *) self).serverTimestamp.unsignedLongLongValue];
}
// This is only used for sorting threads
return [NSDate ows_dateWithMillisecondsSince1970:self.receivedAtTimestamp];
}
@ -225,7 +228,7 @@ NSString *NSStringFromOWSInteractionType(OWSInteractionType value)
- (uint64_t)sortId
{
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *) self).isOpenGroupMessage) {
if ([self isKindOfClass:TSIncomingMessage.class] && ((TSIncomingMessage *) self).isOpenGroupMessage && ((TSIncomingMessage *) self).serverTimestamp != nil) {
return ((TSIncomingMessage *) self).serverTimestamp.unsignedLongLongValue;
}
return self.timestamp;

@ -32,7 +32,7 @@ public class ThreadViewModel: NSObject {
self.lastMessageText = thread.lastMessageText(transaction: transaction)
let lastInteraction = thread.lastInteractionForInbox(transaction: transaction)
self.lastMessageForInbox = lastInteraction
self.lastMessageDate = lastInteraction?.receivedAtDate() ?? thread.creationDate
self.lastMessageDate = lastInteraction?.dateForUI() ?? thread.creationDate
if let contactThread = thread as? TSContactThread {
self.contactIdentifier = contactThread.contactIdentifier()

Loading…
Cancel
Save