Skip to content

Commit 9cb6526

Browse files
committed
fix(backup)_: do not show the backup notifi backup during normal fetch
Fixes status-im/status-desktop#17555 We were adding the Notification of the back ups by accident when creating a normal account (not restored), because I added the code to create the notification in the `RequestAllHistoricMessages` function as well, even though the Messenger already does it. So for normal restores, it probably tried to add it twice, though they have the same ID, so it wasn't noticed
1 parent 06e149f commit 9cb6526

File tree

7 files changed

+52
-7
lines changed

7 files changed

+52
-7
lines changed

api/backend_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,13 @@ func TestLoginAccount(t *testing.T) {
865865
acc, err := b.CreateAccountAndLogin(createAccountRequest)
866866
require.NoError(t, err)
867867
require.Equal(t, nameserver, b.config.WakuV2Config.Nameserver)
868+
869+
accountsDB, err := b.accountsDB()
870+
require.NoError(t, err)
871+
backupFecthed, err := accountsDB.BackupFetched()
872+
require.NoError(t, err)
873+
require.True(t, backupFecthed)
874+
868875
require.True(t, acc.HasAcceptedTerms)
869876

870877
waitForLogin(c)

api/geth_backend.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1773,6 +1773,11 @@ func (b *GethStatusBackend) prepareSettings(request *requests.CreateAccount, inp
17731773
//settings.MnemonicWasNotShown = true
17741774
}
17751775

1776+
if !input.fetchBackup {
1777+
// This is a an account created from scratch, we can mark the BackupFetched as true
1778+
settings.BackupFetched = true
1779+
}
1780+
17761781
if request.WakuV2Fleet != "" {
17771782
settings.Fleet = &request.WakuV2Fleet
17781783
}

multiaccounts/settings/database.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,11 @@ INSERT INTO settings (
148148
test_networks_enabled,
149149
fleet,
150150
auto_refresh_tokens_enabled,
151-
news_feed_last_fetched_timestamp
151+
news_feed_last_fetched_timestamp,
152+
backup_fetched
152153
) VALUES (
153154
?,?,?,?,?,?,?,?,?,?,?,?,?,?,
154-
?,?,?,?,?,?,?,?,?,'id',?,?,?,?,?,?,?,?,?,?,?,?)`,
155+
?,?,?,?,?,?,?,?,?,'id',?,?,?,?,?,?,?,?,?,?,?,?,?)`,
155156
s.Address,
156157
s.Currency,
157158
s.CurrentNetwork,
@@ -188,6 +189,7 @@ INSERT INTO settings (
188189
s.AutoRefreshTokensEnabled,
189190
// Default the news feed last fetched timestamp to now
190191
time.Now().Unix(),
192+
s.BackupFetched,
191193
)
192194
if err != nil {
193195
return err

multiaccounts/settings/structs.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ type Settings struct {
216216
TelemetrySendPeriodMs int `json:"telemetry-send-period-ms,omitempty"`
217217
LastBackup uint64 `json:"last-backup,omitempty"`
218218
BackupEnabled bool `json:"backup-enabled?,omitempty"`
219+
BackupFetched bool `json:"backup-fetched?,omitempty"`
219220
AutoMessageEnabled bool `json:"auto-message-enabled?,omitempty"`
220221
GifAPIKey string `json:"gifs/api-key"`
221222
TestNetworksEnabled bool `json:"test-networks-enabled?,omitempty"`

protocol/messenger_backup_handler.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ func (m *Messenger) handleBackup(state *ReceivedMessageState, message *protobuf.
127127
}
128128

129129
func (m *Messenger) updateBackupFetchProgress(message *protobuf.Backup, response *wakusync.WakuBackedUpDataResponse, state *ReceivedMessageState) error {
130+
if m.backedUpFetchingStatus == nil {
131+
return nil
132+
}
133+
130134
m.backedUpFetchingStatus.fetchingCompletedMutex.Lock()
131135
defer m.backedUpFetchingStatus.fetchingCompletedMutex.Unlock()
132136

protocol/messenger_backup_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,37 @@ func (s *MessengerBackupSuite) TestFetchingDuringBackup() {
417417
s.Require().Equal(ActivityCenterNotificationTypeBackupSyncingSuccess, state.Response.ActivityCenterNotifications()[0].Type)
418418
}
419419

420+
func (s *MessengerBackupSuite) TestBackupWithoutStatusFetching() {
421+
bob1 := s.m
422+
// Remove the status fetching
423+
bob1.backedUpFetchingStatus = nil
424+
bob1.config.messengerSignalsHandler = &MessengerSignalsHandlerMock{
425+
wakuBackedUpDataResponseChan: make(chan *wakusync.WakuBackedUpDataResponse, 1000),
426+
}
427+
428+
state := ReceivedMessageState{
429+
Response: &MessengerResponse{},
430+
}
431+
432+
backup := &protobuf.Backup{
433+
Clock: 1,
434+
ContactsDetails: &protobuf.FetchingBackedUpDataDetails{
435+
DataNumber: uint32(0),
436+
TotalNumber: uint32(1),
437+
},
438+
}
439+
440+
err := bob1.HandleBackup(
441+
&state,
442+
backup,
443+
&v1protocol.StatusMessage{},
444+
)
445+
s.Require().NoError(err)
446+
// The backup was handled but nothing was sent to the AC
447+
s.Require().Len(state.Response.ActivityCenterNotifications(), 0)
448+
s.Require().True(state.Response.BackupHandled)
449+
}
450+
420451
func (s *MessengerBackupSuite) TestBackupSettings() {
421452
s.T().Skip("flaky test")
422453
const (

protocol/messenger_mailserver.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -320,11 +320,6 @@ func (m *Messenger) RequestAllHistoricMessages(forceFetchingBackup, withRetries
320320

321321
allResponses := &MessengerResponse{}
322322
if forceFetchingBackup || !backupFetched {
323-
err = m.startBackupFetchingTracking(allResponses)
324-
if err != nil {
325-
return nil, err
326-
}
327-
328323
m.logger.Info("fetching backup")
329324
err := m.syncBackup()
330325
if err != nil {

0 commit comments

Comments
 (0)