From 9314ba6d80ca379cc2e210f60d5d2ffe1e89048d Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Mon, 20 Feb 2023 20:45:16 -0800 Subject: [PATCH] extract duplicate code in favorites page --- ui/browsing/favoritespage.go | 37 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/ui/browsing/favoritespage.go b/ui/browsing/favoritespage.go index 6b040b2..0359154 100644 --- a/ui/browsing/favoritespage.go +++ b/ui/browsing/favoritespage.go @@ -41,27 +41,18 @@ func NewFavoritesPage(sm *backend.ServerManager, pm *backend.PlaybackManager, lm nav: nav, } a.ExtendBaseWidget(a) - a.createTitle() - iter := lm.StarredIter() - a.grid = widgets.NewAlbumGrid(iter, im, false) - 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.createHeader(0, "") + a.grid = widgets.NewAlbumGrid(a.lm.StarredIter(), a.im, false) + a.connectGridActions() a.createContainer(false) return a } -func (a *FavoritesPage) createTitle() { +func (a *FavoritesPage) createHeader(activeBtnIdx int, searchText string) { a.titleDisp = widget.NewRichTextWithText("Favorites") a.titleDisp.Segments[0].(*widget.TextSegment).Style = widget.RichTextStyle{ SizeName: theme.SizeNameHeadingText, } -} - -func (a *FavoritesPage) createToggleButtons(activeBtnIdx int) { a.toggleBtns = widgets.NewToggleButtonGroup(activeBtnIdx, widget.NewButtonWithIcon("", res.ResDiscInvertPng, func() { log.Println("albums activated") @@ -72,6 +63,15 @@ func (a *FavoritesPage) createToggleButtons(activeBtnIdx int) { widget.NewButtonWithIcon("", res.ResMusicnotesInvertPng, func() { 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) { @@ -94,18 +94,13 @@ func restoreFavoritesPage(saved *savedFavoritesPage) *FavoritesPage { nav: saved.nav, } a.ExtendBaseWidget(a) - a.createTitle() + a.createHeader(saved.activeToggleBtn, saved.searchText) a.grid = widgets.NewAlbumGridFromState(saved.gridState) - 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.searcher.Entry.Text = saved.searchText + a.connectGridActions() + if saved.searchText != "" { a.searchGrid = widgets.NewAlbumGridFromState(saved.searchGridState) } - a.createToggleButtons(saved.activeToggleBtn) a.createContainer(saved.searchText != "") return a