kettlebell-tracker/internal/services/settings.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)
}