diff --git a/backend/trackiterator.go b/backend/trackiterator.go index de21a71..6462eb4 100644 --- a/backend/trackiterator.go +++ b/backend/trackiterator.go @@ -78,7 +78,7 @@ func (s *searchTracksIterator) Next() *subsonic.Child { // prefetch more search results from server if s.prefetched == nil { results := s.searchIterBase.fetchResults() - if results == nil || len(results.Album)+len(results.Artist)+len(results.Song) == 0 { + if results == nil { s.done = true s.trackIDset = nil return nil diff --git a/ui/widgets/tracklistloader.go b/ui/widgets/tracklistloader.go index bbaa5eb..9393f9a 100644 --- a/ui/widgets/tracklistloader.go +++ b/ui/widgets/tracklistloader.go @@ -1,7 +1,6 @@ package widgets import ( - "log" "supersonic/backend" "github.com/dweymouth/go-subsonic/subsonic" @@ -44,7 +43,6 @@ func (t *TracklistLoader) onTrackShown(tracknum int) { func (t *TracklistLoader) loadMoreTracks(num int) { // repeat fetch task as long as user has scrolled near bottom for !t.done && t.highestShown >= t.len-25 { - log.Println("fetching more tracks") if t.trackBuffer == nil { t.trackBuffer = make([]*subsonic.Child, 0, num) } @@ -53,15 +51,16 @@ func (t *TracklistLoader) loadMoreTracks(num int) { tr := t.iter.Next() if tr == nil { t.done = true - t.trackBuffer = nil break } t.trackBuffer = append(t.trackBuffer, tr) } t.tracklist.AppendTracks(t.trackBuffer) t.tracklist.Refresh() - log.Printf("appended %d tracks", len(t.trackBuffer)) t.len += len(t.trackBuffer) } + if t.done { + t.trackBuffer = nil + } t.fetching = false }