58 lines
1.6 KiB
Go
58 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"turtlesilicon/pkg/ui"
|
|
"turtlesilicon/pkg/utils"
|
|
|
|
"log"
|
|
"strings"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/app"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/dialog"
|
|
"fyne.io/fyne/v2/widget"
|
|
)
|
|
|
|
const appVersion = "1.0.7"
|
|
|
|
func main() {
|
|
myApp := app.NewWithID("com.tairasu.turtlesilicon")
|
|
myWindow := myApp.NewWindow("TurtleSilicon v" + appVersion)
|
|
myWindow.Resize(fyne.NewSize(650, 500))
|
|
myWindow.SetFixedSize(true)
|
|
|
|
// Check for updates
|
|
go func() {
|
|
prefs, _ := utils.LoadPrefs()
|
|
latest, notes, update, err := utils.CheckForUpdate(appVersion)
|
|
log.Printf("DEBUG RAW: latest=%q", latest)
|
|
latestVersion := strings.TrimLeft(latest, "v.")
|
|
log.Printf("DEBUG: appVersion=%q, latest=%q, latestVersion=%q, suppressed=%q, update=%v, err=%v\n",
|
|
appVersion, latest, latestVersion, prefs.SuppressedUpdateVersion, update, err)
|
|
// Always skip popup if versions match
|
|
if latestVersion == appVersion {
|
|
return
|
|
}
|
|
if err == nil && update && prefs.SuppressedUpdateVersion != latestVersion {
|
|
checkbox := widget.NewCheck("Do not show this anymore", func(bool) {})
|
|
content := container.NewVBox(
|
|
widget.NewLabel("A new version ("+latestVersion+") is available!"),
|
|
widget.NewLabel("Release notes:\n\n"+notes),
|
|
checkbox,
|
|
)
|
|
dialog.ShowCustomConfirm("Update Available", "OK", "Cancel", content, func(ok bool) {
|
|
if checkbox.Checked {
|
|
prefs.SuppressedUpdateVersion = latestVersion
|
|
utils.SavePrefs(prefs)
|
|
}
|
|
}, myWindow)
|
|
}
|
|
}()
|
|
|
|
content := ui.CreateUI(myWindow)
|
|
myWindow.SetContent(content)
|
|
|
|
myWindow.ShowAndRun()
|
|
}
|