show message when no radio stations available

This commit is contained in:
Drew Weymouth
2024-06-01 13:19:25 -07:00
parent d3ad28d8a1
commit c1858fa53d
+24 -1
View File
@@ -33,6 +33,7 @@ type RadiosPage struct {
nowPlayingID string nowPlayingID string
titleDisp *widget.RichText titleDisp *widget.RichText
noRadiosMsg fyne.CanvasObject
container *fyne.Container container *fyne.Container
searcher *widgets.SearchEntry searcher *widgets.SearchEntry
} }
@@ -59,6 +60,21 @@ func newRadiosPage(contr *controller.Controller, rp mediaprovider.RadioProvider,
a.searcher.PlaceHolder = "Search page" a.searcher.PlaceHolder = "Search page"
a.searcher.OnSearched = a.onSearched a.searcher.OnSearched = a.onSearched
a.searcher.Entry.Text = searchText a.searcher.Entry.Text = searchText
a.noRadiosMsg = container.NewCenter(
container.New(layout.NewCustomPaddedVBoxLayout(-10),
container.NewCenter(
container.NewBorder(nil, nil,
widget.NewIcon(theme.InfoIcon()), nil,
widget.NewRichText(&widget.TextSegment{
Text: "No radio stations available",
Style: widget.RichTextStyleSubHeading,
}))),
widget.NewLabel("Configure your music server to add radio stations"),
),
)
a.noRadiosMsg.Hide()
a.buildContainer() a.buildContainer()
go a.load(searchText != "", scrollPos) go a.load(searchText != "", scrollPos)
return a return a
@@ -70,6 +86,11 @@ func (a *RadiosPage) load(searchOnLoad bool, scrollPos float32) {
if err != nil { if err != nil {
log.Printf("error loading radios: %v", err.Error()) log.Printf("error loading radios: %v", err.Error())
} }
if len(radios) == 0 {
a.noRadiosMsg.Show()
} else {
a.noRadiosMsg.Hide()
}
a.radios = radios a.radios = radios
if searchOnLoad { if searchOnLoad {
a.onSearched(a.searcher.Entry.Text) a.onSearched(a.searcher.Entry.Text)
@@ -157,10 +178,12 @@ func (s *savedrRadiosPage) Restore() Page {
func (a *RadiosPage) buildContainer() { func (a *RadiosPage) buildContainer() {
searchVbox := container.NewVBox(layout.NewSpacer(), a.searcher, layout.NewSpacer()) searchVbox := container.NewVBox(layout.NewSpacer(), a.searcher, layout.NewSpacer())
a.container = container.New(&layout.CustomPaddedLayout{LeftPadding: 15, RightPadding: 15, TopPadding: 5, BottomPadding: 15}, a.container = container.New(&layout.CustomPaddedLayout{LeftPadding: 15, RightPadding: 15, TopPadding: 5, BottomPadding: 15},
container.NewStack(a.noRadiosMsg,
container.NewBorder( container.NewBorder(
container.New(&layout.CustomPaddedLayout{LeftPadding: -5}, container.New(&layout.CustomPaddedLayout{LeftPadding: -5},
container.NewHBox(a.titleDisp, layout.NewSpacer(), searchVbox)), container.NewHBox(a.titleDisp, layout.NewSpacer(), searchVbox)),
nil, nil, nil, a.list)) nil, nil, nil, a.list)),
)
} }
func (a *RadiosPage) CreateRenderer() fyne.WidgetRenderer { func (a *RadiosPage) CreateRenderer() fyne.WidgetRenderer {