add features

This commit is contained in:
2026-07-29 04:35:25 -05:00
parent 23c6113b33
commit cab5a987b0
29 changed files with 1179 additions and 89 deletions
+5
View File
@@ -16,6 +16,7 @@ const (
Playlists
Tracks
Radios
Podcasts
)
func (p PageName) String() string {
@@ -44,6 +45,8 @@ func (p PageName) String() string {
return "All Tracks"
case Radios:
return "Internet Radio Stations"
case Podcasts:
return "Podcasts"
default:
return ""
}
@@ -102,6 +105,8 @@ func RadiosRoute() Route {
return Route{Page: Radios}
}
func PodcastsRoute() Route { return Route{Page: Podcasts} }
func NowPlayingRoute() Route {
return Route{Page: NowPlaying}
}
+9 -32
View File
@@ -35,6 +35,7 @@ func (m *Controller) PromptForFirstServer() {
SkipSSLVerify: d.SkipSSLVerify,
}
server := m.App.ServerManager.AddServer(d.Nickname, conn)
server.EnablePodcasts = d.EnablePodcasts
if err := m.trySetPasswordAndConnectToServer(server, d.Password); err != nil {
log.Printf("error connecting to server: %s", err.Error())
}
@@ -67,41 +68,15 @@ func (c *Controller) DoConnectToServerWorkflow(server *backend.ServerConfig) {
}
func (c *Controller) doConnectWithPassword(server *backend.ServerConfig, pass string) {
canceled := false
ctx, cancel := context.WithCancel(context.Background())
dlg := dialog.NewCustom(lang.L("Connecting"), lang.L("Cancel"),
widget.NewLabel(fmt.Sprintf(lang.L("Connecting to")+" %s", server.Nickname)), c.MainWindow)
dlg.SetOnClosed(func() {
canceled = true
cancel()
})
c.haveModal = true
dlg.Show()
// try to connect
go func() {
defer cancel() // make sure to free up ctx resources if user does not cancel
if err := c.tryConnectToServer(ctx, server, pass); err != nil {
if err := c.tryConnectToServer(context.Background(), server, pass); err != nil {
fyne.Do(func() {
dlg.Hide()
c.haveModal = false
if canceled {
dlg := dialog.NewError(err, c.MainWindow)
dlg.SetOnClosed(func() {
c.PromptForLoginAndConnect()
} else {
// connection failure
dlg := dialog.NewError(err, c.MainWindow)
dlg.SetOnClosed(func() {
c.PromptForLoginAndConnect()
})
c.haveModal = true
dlg.Show()
}
})
} else {
fyne.Do(func() {
dlg.Hide()
c.haveModal = false
})
c.haveModal = true
dlg.Show()
})
}
}()
@@ -150,6 +125,7 @@ func (m *Controller) PromptForLoginAndConnect() {
server.Username = editD.Username
server.LegacyAuth = editD.LegacyAuth
server.SkipSSLVerify = editD.SkipSSLVerify
server.EnablePodcasts = editD.EnablePodcasts
m.trySetPasswordAndConnectToServer(server, editD.Password)
m.doModalClosed()
}
@@ -184,6 +160,7 @@ func (m *Controller) PromptForLoginAndConnect() {
SkipSSLVerify: newD.SkipSSLVerify,
}
server := m.App.ServerManager.AddServer(newD.Nickname, conn)
server.EnablePodcasts = newD.EnablePodcasts
m.trySetPasswordAndConnectToServer(server, newD.Password)
m.doModalClosed()
}