54 lines
1.7 KiB
Go
54 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"path/filepath"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/app"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/theme"
|
|
|
|
"git.patanix.de/git/kettlebell-app/internal/data"
|
|
"git.patanix.de/git/kettlebell-app/internal/services"
|
|
"git.patanix.de/git/kettlebell-app/internal/ui"
|
|
)
|
|
|
|
func main() {
|
|
myApp := app.NewWithID("com.example.kettlebell-tracker")
|
|
// myApp.Settings().SetTheme(theme.DarkTheme())
|
|
mainWIndow := myApp.NewWindow("Kettlebell Programm Tracker")
|
|
|
|
dbDir := myApp.Storage().RootURI().Path()
|
|
dbPath := filepath.Join(dbDir, "kb_training.db")
|
|
log.Println("Datenbankpfad:", dbPath)
|
|
|
|
dbService, err := data.NewDatabaseService(dbPath)
|
|
if err != nil {
|
|
log.Fatalf("Fehler bei der Initialisierung der Datenbank: %v", err)
|
|
}
|
|
|
|
settingsService := services.NewSettingsService(myApp)
|
|
apiService := services.NewApiService(myApp.UniqueID())
|
|
|
|
trainingService := services.NewTrainingService(dbService, settingsService, apiService)
|
|
|
|
homeScreen := ui.MakeHomeScreen()
|
|
settingsScreen := ui.MakeSettingsScreen(settingsService, mainWIndow)
|
|
historyScreen := ui.MakeHistoryScreen(dbService, mainWIndow)
|
|
trainingScreen := ui.MakeTrainingScreen(trainingService, settingsService, mainWIndow)
|
|
|
|
tabs := container.NewAppTabs(
|
|
container.NewTabItemWithIcon("Home", theme.HomeIcon(), homeScreen),
|
|
container.NewTabItemWithIcon("Training", theme.MediaPlayIcon(), trainingScreen),
|
|
container.NewTabItemWithIcon("Historie", theme.HistoryIcon(), historyScreen),
|
|
container.NewTabItemWithIcon("Einstellungen", theme.SettingsIcon(), settingsScreen),
|
|
)
|
|
|
|
tabs.SetTabLocation(container.TabLocationBottom)
|
|
|
|
mainWIndow.Resize(fyne.NewSize(400, 600))
|
|
mainWIndow.SetContent(tabs)
|
|
mainWIndow.SetMaster()
|
|
mainWIndow.ShowAndRun()
|
|
}
|