reuse album grid on sort order changed

This commit is contained in:
Drew Weymouth
2022-12-30 10:53:13 -08:00
parent 4f0b2c24c8
commit 83571a30ec
2 changed files with 23 additions and 5 deletions
+13
View File
@@ -62,6 +62,19 @@ func NewAlbumGrid(iter backend.AlbumIterator, fetch ImageFetcher) *AlbumGrid {
return ag
}
func (ag *AlbumGrid) Clear() {
ag.albums = nil
ag.done = true
}
func (ag *AlbumGrid) Reset(iter backend.AlbumIterator) {
ag.albums = nil
ag.fetching = false
ag.done = false
ag.iter = iter
ag.fetchMoreAlbums(36)
}
func (ag *AlbumGrid) doUpdateAlbumCard(albumIdx int, ac *widgets.AlbumCard) {
album := ag.albums[albumIdx]
if ac.PrevAlbumID == album.ID {
+10 -5
View File
@@ -79,12 +79,18 @@ func (a *AlbumsPage) OnSearched(query string) {
a.searchText = query
if query == "" {
a.container.Objects[0] = a.grid
a.searchGrid = nil
if a.searchGrid != nil {
a.searchGrid.Clear()
}
a.Refresh()
return
}
a.searchGrid = NewAlbumGrid(a.lm.SearchIter(query), a.im.GetAlbumThumbnail)
a.searchGrid.OnPlayAlbum = a.onPlayAlbum
if a.searchGrid == nil {
a.searchGrid = NewAlbumGrid(a.lm.SearchIter(query), a.im.GetAlbumThumbnail)
a.searchGrid.OnPlayAlbum = a.onPlayAlbum
} else {
a.searchGrid.Reset(a.lm.SearchIter(query))
}
a.container.Objects[0] = a.searchGrid
a.Refresh()
}
@@ -96,8 +102,7 @@ func (a *AlbumsPage) onPlayAlbum(albumID string) {
}
func (a *AlbumsPage) onSortOrderChanged(order string) {
a.grid = NewAlbumGrid(a.lm.AlbumsIter(backend.AlbumSortOrder(order)), a.im.GetAlbumThumbnail)
a.grid.OnPlayAlbum = a.onPlayAlbum
a.grid.Reset(a.lm.AlbumsIter(backend.AlbumSortOrder(order)))
if a.searchText == "" {
a.container.Objects[0] = a.grid
a.Refresh()