41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package services
|
|
|
|
import (
|
|
"fyne.io/fyne/v2"
|
|
)
|
|
|
|
type Settings struct {
|
|
TrainingTimeMinutes int
|
|
WeightLeft float64
|
|
WeightRight float64
|
|
GoalSets int
|
|
InitialProgram string
|
|
}
|
|
|
|
type SettingsService struct {
|
|
prefs fyne.Preferences
|
|
}
|
|
|
|
func NewSettingsService(app fyne.App) *SettingsService {
|
|
return &SettingsService{
|
|
prefs: app.Preferences(),
|
|
}
|
|
}
|
|
|
|
func (s *SettingsService) LoadSettings() *Settings {
|
|
return &Settings{
|
|
TrainingTimeMinutes: s.prefs.IntWithFallback("trainingTimeMinutes", 20),
|
|
WeightLeft: s.prefs.FloatWithFallback("weightLeft", 16.0),
|
|
WeightRight: s.prefs.FloatWithFallback("weightRight", 16.0),
|
|
GoalSets: s.prefs.IntWithFallback("goalSets", 5),
|
|
InitialProgram: s.prefs.StringWithFallback("initialProgram", "giant_1.0"),
|
|
}
|
|
}
|
|
|
|
func (s *SettingsService) SaveSettings(settings *Settings) {
|
|
s.prefs.SetInt("trainingTimeMinutes", settings.TrainingTimeMinutes)
|
|
s.prefs.SetFloat("weightLeft", settings.WeightLeft)
|
|
s.prefs.SetFloat("weightRight", settings.WeightRight)
|
|
s.prefs.SetInt("goalSets", settings.GoalSets)
|
|
s.prefs.SetString("initialProgram", settings.InitialProgram)
|
|
}
|