Skip to content

Commit

Permalink
review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
jrainville committed Sep 3, 2024
1 parent 84df75e commit 11af278
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 49 deletions.
73 changes: 40 additions & 33 deletions protocol/messenger.go
Original file line number Diff line number Diff line change
Expand Up @@ -3639,6 +3639,30 @@ func (m *Messenger) handleRetrievedMessages(chatWithMessages map[transport.Filte
return m.saveDataAndPrepareResponse(messageState)
}

func (m *Messenger) deleteNotification(response *MessengerResponse, installationID string) error {
notification, err := m.persistence.GetActivityCenterNotificationByID(types.FromHex(installationID))
if err != nil {
return err
}

if notification != nil {
updatedAt := m.GetCurrentTimeInMillis()
notification.UpdatedAt = updatedAt
notification.Deleted = true
// we shouldn't sync deleted notification here,
// as the same user on different devices will receive the same message(CommunityCancelRequestToJoin) ?
err = m.persistence.DeleteActivityCenterNotificationByID(types.FromHex(installationID), updatedAt)
if err != nil {
m.logger.Error("failed to delete notification from Activity Center", zap.Error(err))
return err
}

// sending signal to client to remove the activity center notification from UI
response.AddActivityCenterNotification(notification)
}
return nil
}

func (m *Messenger) saveDataAndPrepareResponse(messageState *ReceivedMessageState) (*MessengerResponse, error) {
var err error
var contactsToSave []*Contact
Expand Down Expand Up @@ -3679,44 +3703,27 @@ func (m *Messenger) saveDataAndPrepareResponse(messageState *ReceivedMessageStat
}

if installation.Enabled {
// // Delete AC notif since the installation is now enabled
notification, err := m.persistence.GetActivityCenterNotificationByID(types.FromHex(id))
// Delete AC notif since the installation is now enabled
err = m.deleteNotification(messageState.Response, id)
if err != nil {
m.logger.Error("error deleting notification", zap.Error(err))
return false
}

if notification != nil {
updatedAt := m.GetCurrentTimeInMillis()
notification.UpdatedAt = updatedAt
notification.Deleted = true
// we shouldn't sync deleted notification here,
// as the same user on different devices will receive the same message(CommunityCancelRequestToJoin) ?
err = m.persistence.DeleteActivityCenterNotificationByID(types.FromHex(id), updatedAt)
if err != nil {
m.logger.Error("failed to delete notification from Activity Center", zap.Error(err))
return false
}

// sending signal to client to remove the activity center notification from UI
messageState.Response.AddActivityCenterNotification(notification)
}
} else {
} else if id != m.installationID {
// Add activity center notification when we receive a new installation
if id != m.installationID {
notification := &ActivityCenterNotification{
ID: types.FromHex(id),
Type: ActivityCenterNotificationTypeNewInstallationReceived,
InstallationID: id,
Timestamp: m.getTimesource().GetCurrentTime(),
Read: false,
Deleted: false,
UpdatedAt: m.GetCurrentTimeInMillis(),
}
notification := &ActivityCenterNotification{
ID: types.FromHex(id),
Type: ActivityCenterNotificationTypeNewInstallationReceived,
InstallationID: id,
Timestamp: m.getTimesource().GetCurrentTime(),
Read: false,
Deleted: false,
UpdatedAt: m.GetCurrentTimeInMillis(),
}

err = m.addActivityCenterNotification(messageState.Response, notification, nil)
if err != nil {
return false
}
err = m.addActivityCenterNotification(messageState.Response, notification, nil)
if err != nil {
return false
}
}

Expand Down
17 changes: 1 addition & 16 deletions protocol/messenger_pairing_and_syncing.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,26 +35,11 @@ func (m *Messenger) EnableInstallationAndSync(request *requests.EnableInstallati
}

// Delete AC notif
notification, err := m.persistence.GetActivityCenterNotificationByID(types.FromHex(request.InstallationID))
err = m.deleteNotification(response, request.InstallationID)
if err != nil {
return nil, err
}

if notification != nil {
updatedAt := m.GetCurrentTimeInMillis()
notification.UpdatedAt = updatedAt
notification.Deleted = true
// we shouldn't sync deleted notification here,
// as the same user on different devices will receive the same message(CommunityCancelRequestToJoin) ?
err = m.persistence.DeleteActivityCenterNotificationByID(types.FromHex(request.InstallationID), updatedAt)
if err != nil {
m.logger.Error("failed to delete notification from Activity Center", zap.Error(err))
return nil, err
}

// sending signal to client to remove the activity center notification from UI
response.AddActivityCenterNotification(notification)
}
return response, nil
}

Expand Down

0 comments on commit 11af278

Please sign in to comment.