extract duplicate code in favorites page

This commit is contained in:
Drew Weymouth
2023-02-21 18:10:10 -08:00
parent ae2ff2df2f
commit 9314ba6d80
+16 -21
View File
@@ -41,27 +41,18 @@ func NewFavoritesPage(sm *backend.ServerManager, pm *backend.PlaybackManager, lm
nav: nav, nav: nav,
} }
a.ExtendBaseWidget(a) a.ExtendBaseWidget(a)
a.createTitle() a.createHeader(0, "")
iter := lm.StarredIter() a.grid = widgets.NewAlbumGrid(a.lm.StarredIter(), a.im, false)
a.grid = widgets.NewAlbumGrid(iter, im, false) a.connectGridActions()
a.grid.OnPlayAlbum = a.onPlayAlbum
a.grid.OnShowAlbumPage = a.onShowAlbumPage
a.grid.OnShowArtistPage = a.onShowArtistPage
a.searcher = widgets.NewSearcher()
a.searcher.OnSearched = a.OnSearched
a.createToggleButtons(0)
a.createContainer(false) a.createContainer(false)
return a return a
} }
func (a *FavoritesPage) createTitle() { func (a *FavoritesPage) createHeader(activeBtnIdx int, searchText string) {
a.titleDisp = widget.NewRichTextWithText("Favorites") a.titleDisp = widget.NewRichTextWithText("Favorites")
a.titleDisp.Segments[0].(*widget.TextSegment).Style = widget.RichTextStyle{ a.titleDisp.Segments[0].(*widget.TextSegment).Style = widget.RichTextStyle{
SizeName: theme.SizeNameHeadingText, SizeName: theme.SizeNameHeadingText,
} }
}
func (a *FavoritesPage) createToggleButtons(activeBtnIdx int) {
a.toggleBtns = widgets.NewToggleButtonGroup(activeBtnIdx, a.toggleBtns = widgets.NewToggleButtonGroup(activeBtnIdx,
widget.NewButtonWithIcon("", res.ResDiscInvertPng, func() { widget.NewButtonWithIcon("", res.ResDiscInvertPng, func() {
log.Println("albums activated") log.Println("albums activated")
@@ -72,6 +63,15 @@ func (a *FavoritesPage) createToggleButtons(activeBtnIdx int) {
widget.NewButtonWithIcon("", res.ResMusicnotesInvertPng, func() { widget.NewButtonWithIcon("", res.ResMusicnotesInvertPng, func() {
log.Println("songs activated") log.Println("songs activated")
})) }))
a.searcher = widgets.NewSearcher()
a.searcher.OnSearched = a.OnSearched
a.searcher.Entry.Text = searchText
}
func (a *FavoritesPage) connectGridActions() {
a.grid.OnPlayAlbum = a.onPlayAlbum
a.grid.OnShowAlbumPage = a.onShowAlbumPage
a.grid.OnShowArtistPage = a.onShowArtistPage
} }
func (a *FavoritesPage) createContainer(searchGrid bool) { func (a *FavoritesPage) createContainer(searchGrid bool) {
@@ -94,18 +94,13 @@ func restoreFavoritesPage(saved *savedFavoritesPage) *FavoritesPage {
nav: saved.nav, nav: saved.nav,
} }
a.ExtendBaseWidget(a) a.ExtendBaseWidget(a)
a.createTitle() a.createHeader(saved.activeToggleBtn, saved.searchText)
a.grid = widgets.NewAlbumGridFromState(saved.gridState) a.grid = widgets.NewAlbumGridFromState(saved.gridState)
a.grid.OnPlayAlbum = a.onPlayAlbum a.connectGridActions()
a.grid.OnShowAlbumPage = a.onShowAlbumPage
a.grid.OnShowArtistPage = a.onShowArtistPage
a.searcher = widgets.NewSearcher()
a.searcher.OnSearched = a.OnSearched
a.searcher.Entry.Text = saved.searchText
if saved.searchText != "" { if saved.searchText != "" {
a.searchGrid = widgets.NewAlbumGridFromState(saved.searchGridState) a.searchGrid = widgets.NewAlbumGridFromState(saved.searchGridState)
} }
a.createToggleButtons(saved.activeToggleBtn)
a.createContainer(saved.searchText != "") a.createContainer(saved.searchText != "")
return a return a