diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-06 09:46:10 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-06 15:55:02 +0200 |
commit | 568528c747afe3ae991b0340d15cd6a897fd5c9d (patch) | |
tree | dd08e02b053b0cf27a75ed2e428701b1799e3bf1 /ui/ui.go | |
parent | ui: do tray click action when popup clicked (diff) | |
download | wireguard-windows-568528c747afe3ae991b0340d15cd6a897fd5c9d.tar.xz wireguard-windows-568528c747afe3ae991b0340d15cd6a897fd5c9d.zip |
updater: move into manager
Diffstat (limited to 'ui/ui.go')
-rw-r--r-- | ui/ui.go | 45 |
1 files changed, 16 insertions, 29 deletions
@@ -9,9 +9,6 @@ import ( "fmt" "github.com/lxn/walk" "golang.zx2c4.com/wireguard/windows/service" - "golang.zx2c4.com/wireguard/windows/updater" - "golang.zx2c4.com/wireguard/windows/version" - "log" "runtime" "runtime/debug" "time" @@ -58,35 +55,25 @@ func RunUI() { }) }) - go func() { - if !version.IsRunningOfficialVersion() { - mtw.Synchronize(func() { - mtw.SetTitle(mtw.Title() + " (unsigned build)") - }) + onUpdateNotification := func(updateState service.UpdateState) { + if updateState == service.UpdateStateUnknown { return } - - first := true - for { - update, err := updater.CheckForUpdate() - if err == nil && update != nil { - mtw.Synchronize(func() { - mtw.UpdateFound() - tray.UpdateFound() - }) - return - } - if err != nil { - log.Printf("Update checker: %v", err) - if first { - time.Sleep(time.Minute * 4) - first = false - } else { - time.Sleep(time.Minute * 25) - } - } else { - time.Sleep(time.Hour) + mtw.Synchronize(func() { + switch updateState { + case service.UpdateStateFoundUpdate: + mtw.UpdateFound() + tray.UpdateFound() + case service.UpdateStateUpdatesDisabledUnofficialBuild: + mtw.SetTitle(mtw.Title() + " (unsigned build, no updates)") } + }) + } + service.IPCClientRegisterUpdateFound(onUpdateNotification) + go func() { + updateState, err := service.IPCClientUpdateState() + if err == nil { + onUpdateNotification(updateState) } }() |