diff --git a/utils/contacts.go b/utils/contacts.go index 64e9211..ed8b958 100644 --- a/utils/contacts.go +++ b/utils/contacts.go @@ -14,6 +14,7 @@ type Contact struct { SaveHistory string `json:"saveConversationHistory"` Messages int `json:"numMessages"` Unread int `json:"numUnread"` + LastSeenMessageId int `json:"lastSeenMessageId"` LastMessage string `json:"lastMsgTime"` IsGroup bool `json:"isGroup"` GroupServer string `json:"groupServer"` diff --git a/utils/eventHandler.go b/utils/eventHandler.go index dd35c14..fb206b3 100644 --- a/utils/eventHandler.go +++ b/utils/eventHandler.go @@ -202,6 +202,7 @@ func (eh *EventHandler) handleAppBusEvent(e *event.Event) string { } unread := 0 + lastSeenMessageId := -1 lastSeenTimeStr, set := conversationInfo.GetAttribute(attr.LocalScope, attr.ProfileZone, constants2.LastSeenTime) if set { lastSeenTime, err := time.Parse(constants2.DartIso8601, lastSeenTimeStr) @@ -215,6 +216,7 @@ func (eh *EventHandler) handleAppBusEvent(e *event.Event) string { if msgTime.UTC().After(lastSeenTime.UTC()) { unread++ } else { + lastSeenMessageId = message.ID break } } @@ -265,6 +267,7 @@ func (eh *EventHandler) handleAppBusEvent(e *event.Event) string { SaveHistory: saveHistory, Messages: count, Unread: unread, + LastSeenMessageId: lastSeenMessageId, LastMessage: strconv.Itoa(getLastMessageTime(lastMessage)), IsGroup: conversationInfo.IsGroup(), GroupServer: groupServer,