diff --git a/VERSION b/VERSION index 1bebe3605..a17d65055 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.163.6 +0.163.7 diff --git a/protocol/messenger_contacts.go b/protocol/messenger_contacts.go index 34afe9f4f..d85d68064 100644 --- a/protocol/messenger_contacts.go +++ b/protocol/messenger_contacts.go @@ -494,6 +494,10 @@ func (m *Messenger) addContact(ctx context.Context, pubKey, ensName, nickname, d return nil, err } response.AddMessage(updateMessage) + err = chat.UpdateFromMessage(updateMessage, m.getTimesource()) + if err != nil { + return nil, err + } response.AddChat(chat) } @@ -628,6 +632,10 @@ func (m *Messenger) removeContact(ctx context.Context, response *MessengerRespon return err } response.AddMessage(updateMessage) + err = chat.UpdateFromMessage(updateMessage, m.getTimesource()) + if err != nil { + return err + } response.AddChat(chat) // Next we retract a contact request diff --git a/protocol/messenger_handler.go b/protocol/messenger_handler.go index 953b2715a..2061baea4 100644 --- a/protocol/messenger_handler.go +++ b/protocol/messenger_handler.go @@ -938,6 +938,11 @@ func (m *Messenger) handleAcceptContactRequestMessage(state *ReceivedMessageStat } state.Response.AddMessage(updateMessage) + err = chat.UpdateFromMessage(updateMessage, m.getTimesource()) + if err != nil { + return err + } + chat.UnviewedMessagesCount++ state.Response.AddChat(chat) state.AllChats.Store(chat.ID, chat) } @@ -974,7 +979,7 @@ func (m *Messenger) HandleAcceptContactRequest(state *ReceivedMessageState, mess return nil } -func (m *Messenger) handleRetractContactRequest(response *MessengerResponse, contact *Contact, message protobuf.RetractContactRequest) error { +func (m *Messenger) handleRetractContactRequest(state *ReceivedMessageState, contact *Contact, message protobuf.RetractContactRequest) error { if contact.ID == m.myHexIdentity() { m.logger.Debug("retraction coming from us, ignoring") return nil @@ -992,6 +997,7 @@ func (m *Messenger) handleRetractContactRequest(response *MessengerResponse, con if err != nil { return err } + timestamp := m.getTimesource().GetCurrentTime() updateMessage, err := m.prepareMutualStateUpdateMessage(contact.ID, MutualStateUpdateTypeRemoved, clock, timestamp, false) if err != nil { @@ -1003,8 +1009,14 @@ func (m *Messenger) handleRetractContactRequest(response *MessengerResponse, con if err != nil { return err } - response.AddMessage(updateMessage) - response.AddChat(chat) + state.Response.AddMessage(updateMessage) + + err = chat.UpdateFromMessage(updateMessage, m.getTimesource()) + if err != nil { + return err + } + chat.UnviewedMessagesCount++ + state.Response.AddChat(chat) notification := &ActivityCenterNotification{ ID: types.FromHex(uuid.New().String()), @@ -1017,7 +1029,7 @@ func (m *Messenger) handleRetractContactRequest(response *MessengerResponse, con UpdatedAt: m.getCurrentTimeInMillis(), } - err = m.addActivityCenterNotification(response, notification) + err = m.addActivityCenterNotification(state.Response, notification) if err != nil { m.logger.Warn("failed to create activity center notification", zap.Error(err)) return err @@ -1030,7 +1042,7 @@ func (m *Messenger) handleRetractContactRequest(response *MessengerResponse, con func (m *Messenger) HandleRetractContactRequest(state *ReceivedMessageState, message protobuf.RetractContactRequest) error { contact := state.CurrentMessageState.Contact - err := m.handleRetractContactRequest(state.Response, contact, message) + err := m.handleRetractContactRequest(state, contact, message) if err != nil { return err }