github.com/status-im/status-go@v1.1.0/protocol/messenger_settings.go (about) 1 package protocol 2 3 import ( 4 "context" 5 6 "github.com/status-im/status-go/nodecfg" 7 "github.com/status-im/status-go/protocol/requests" 8 "github.com/status-im/status-go/timesource" 9 ) 10 11 func (m *Messenger) SetLightClient(request *requests.SetLightClient) error { 12 return nodecfg.SetLightClient(m.database, request.Enabled) 13 } 14 15 func (m *Messenger) SetStoreConfirmationForMessagesSent(request *requests.SetStoreConfirmationForMessagesSent) error { 16 return nodecfg.SetStoreConfirmationForMessagesSent(m.database, request.Enabled) 17 } 18 19 func (m *Messenger) SetSyncingOnMobileNetwork(request *requests.SetSyncingOnMobileNetwork) error { 20 if err := request.Validate(); err != nil { 21 return err 22 } 23 err := m.settings.SetSyncingOnMobileNetwork(request.Enabled) 24 if err != nil { 25 return err 26 } 27 if request.Enabled { 28 m.asyncRequestAllHistoricMessages() 29 } 30 return nil 31 } 32 33 func (m *Messenger) SetLogLevel(request *requests.SetLogLevel) error { 34 if err := request.Validate(); err != nil { 35 return err 36 } 37 38 return nodecfg.SetLogLevel(m.database, request.LogLevel) 39 } 40 41 func (m *Messenger) SetMaxLogBackups(request *requests.SetMaxLogBackups) error { 42 return nodecfg.SetMaxLogBackups(m.database, request.MaxLogBackups) 43 } 44 45 func (m *Messenger) SetCustomNodes(request *requests.SetCustomNodes) error { 46 return nodecfg.SetWakuV2CustomNodes(m.database, request.CustomNodes) 47 } 48 49 func (m *Messenger) SaveNewWakuNode(request *requests.SaveNewWakuNode) error { 50 if err := request.Validate(); err != nil { 51 return err 52 } 53 return nodecfg.SaveNewWakuNode(m.database, request.NodeAddress) 54 } 55 56 func (m *Messenger) SetCustomizationColor(ctx context.Context, request *requests.SetCustomizationColor) error { 57 if err := request.Validate(); err != nil { 58 return err 59 } 60 61 acc, err := m.multiAccounts.GetAccount(request.KeyUID) 62 if err != nil { 63 return err 64 } 65 66 acc.CustomizationColor = request.CustomizationColor 67 68 if m.account != nil { 69 m.account.CustomizationColor = request.CustomizationColor 70 } 71 72 //Use a combination of wall clock + lamport timestamp, just like Chat#NextClockAndTimestamp 73 tNow := timesource.GetCurrentTimeInMillis() 74 if acc.CustomizationColorClock >= tNow { 75 acc.CustomizationColorClock++ 76 } else { 77 acc.CustomizationColorClock = tNow 78 } 79 80 affected, err := m.multiAccounts.UpdateAccountCustomizationColor(request.KeyUID, string(acc.CustomizationColor), acc.CustomizationColorClock) 81 if err != nil { 82 return err 83 } 84 85 if affected > 0 { 86 err = m.syncAccountCustomizationColor(ctx, acc) 87 if err != nil { 88 return err 89 } 90 91 err = m.resetLastPublishedTimeForChatIdentity() 92 if err != nil { 93 return err 94 } 95 96 return m.publishContactCode() 97 } 98 return nil 99 } 100 101 func (m *Messenger) TogglePeerSyncing(request *requests.TogglePeerSyncingRequest) error { 102 if err := request.Validate(); err != nil { 103 return err 104 } 105 106 err := m.settings.SetPeerSyncingEnabled(request.Enabled) 107 if err != nil { 108 return err 109 } 110 return nil 111 }