add loading indicator and err/timeout toast to Album and Playlist pages (todo: other pages)
This commit is contained in:
+13
-1
@@ -102,6 +102,7 @@ type Tracklist struct {
|
||||
shareMenuItem *fyne.MenuItem
|
||||
songRadioMenuItem *fyne.MenuItem
|
||||
infoMenuItem *fyne.MenuItem
|
||||
loadingDots *LoadingDots
|
||||
container *fyne.Container
|
||||
}
|
||||
|
||||
@@ -199,17 +200,28 @@ func NewTracklist(tracks []*mediaprovider.Track, im *backend.ImageManager, useCo
|
||||
t.OnReorderTracks(t.SelectedTrackIDs(), insertPos)
|
||||
}
|
||||
}
|
||||
t.container = container.NewBorder(t.hdr, nil, nil, nil, t.list)
|
||||
t.loadingDots = NewLoadingDots()
|
||||
t.container = container.NewBorder(t.hdr, nil, nil, nil,
|
||||
container.NewStack(t.list, container.NewCenter(t.loadingDots)))
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *Tracklist) Reset() {
|
||||
t.SetLoading(false)
|
||||
t.Clear()
|
||||
t.Options = TracklistOptions{}
|
||||
t.ctxMenu = nil
|
||||
t.SetSorting(TracklistSort{})
|
||||
}
|
||||
|
||||
func (t *Tracklist) SetLoading(loading bool) {
|
||||
if loading {
|
||||
t.loadingDots.Start()
|
||||
} else {
|
||||
t.loadingDots.Stop()
|
||||
}
|
||||
}
|
||||
|
||||
func (t *Tracklist) Scroll(amount float32) {
|
||||
t.list.ScrollToOffset(t.list.GetScrollOffset() + amount)
|
||||
}
|
||||
|
||||
@@ -29,12 +29,14 @@ func NewTracklistLoader(tracklist *Tracklist, iter mediaprovider.TrackIterator)
|
||||
}
|
||||
t.tracklist.OnTrackShown = t.onTrackShown
|
||||
t.fetching = true
|
||||
t.tracklist.SetLoading(true)
|
||||
go t.loadMoreTracks(25)
|
||||
return &t
|
||||
}
|
||||
|
||||
// Cancels all asynchronous loads so that they will no longer modify the tracklist.
|
||||
func (t *TracklistLoader) Dispose() {
|
||||
t.tracklist.SetLoading(false)
|
||||
t.disposed.Store(true)
|
||||
t.tracklist.OnTrackShown = nil
|
||||
}
|
||||
@@ -71,6 +73,7 @@ func (t *TracklistLoader) loadMoreTracks(num int) {
|
||||
return
|
||||
}
|
||||
fyne.Do(func() {
|
||||
t.tracklist.SetLoading(false)
|
||||
t.tracklist.AppendTracks(t.trackBuffer)
|
||||
t.len += len(t.trackBuffer)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user