show message when no radio stations available
This commit is contained in:
@@ -32,9 +32,10 @@ type RadiosPage struct {
|
|||||||
|
|
||||||
nowPlayingID string
|
nowPlayingID string
|
||||||
|
|
||||||
titleDisp *widget.RichText
|
titleDisp *widget.RichText
|
||||||
container *fyne.Container
|
noRadiosMsg fyne.CanvasObject
|
||||||
searcher *widgets.SearchEntry
|
container *fyne.Container
|
||||||
|
searcher *widgets.SearchEntry
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRadiosPage(contr *controller.Controller, rp mediaprovider.RadioProvider, pm *backend.PlaybackManager) *RadiosPage {
|
func NewRadiosPage(contr *controller.Controller, rp mediaprovider.RadioProvider, pm *backend.PlaybackManager) *RadiosPage {
|
||||||
@@ -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.NewBorder(
|
container.NewStack(a.noRadiosMsg,
|
||||||
container.New(&layout.CustomPaddedLayout{LeftPadding: -5},
|
container.NewBorder(
|
||||||
container.NewHBox(a.titleDisp, layout.NewSpacer(), searchVbox)),
|
container.New(&layout.CustomPaddedLayout{LeftPadding: -5},
|
||||||
nil, nil, nil, a.list))
|
container.NewHBox(a.titleDisp, layout.NewSpacer(), searchVbox)),
|
||||||
|
nil, nil, nil, a.list)),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *RadiosPage) CreateRenderer() fyne.WidgetRenderer {
|
func (a *RadiosPage) CreateRenderer() fyne.WidgetRenderer {
|
||||||
|
|||||||
Reference in New Issue
Block a user