add Play random button to album page
This commit is contained in:
@@ -295,13 +295,13 @@ func (p *PlaybackManager) PlayRandomAlbums(genreName string) error {
|
||||
}
|
||||
|
||||
mp := p.engine.sm.Server
|
||||
var filter mediaprovider.AlbumFilter
|
||||
var options mediaprovider.AlbumFilterOptions
|
||||
if genreName != "" {
|
||||
filter = mediaprovider.NewAlbumFilter(mediaprovider.AlbumFilterOptions{
|
||||
options = mediaprovider.AlbumFilterOptions{
|
||||
Genres: []string{genreName},
|
||||
})
|
||||
}
|
||||
}
|
||||
iter := mp.IterateAlbums(mediaprovider.AlbumSortRandom, filter)
|
||||
iter := mp.IterateAlbums(mediaprovider.AlbumSortRandom, mediaprovider.NewAlbumFilter(options))
|
||||
insertMode := Replace
|
||||
for i := 0; i < 20; i++ {
|
||||
al := iter.Next()
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package browsing
|
||||
|
||||
import (
|
||||
"log"
|
||||
"slices"
|
||||
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/lang"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
"github.com/dweymouth/supersonic/backend"
|
||||
"github.com/dweymouth/supersonic/backend/mediaprovider"
|
||||
"github.com/dweymouth/supersonic/ui/controller"
|
||||
@@ -63,7 +65,20 @@ func (a *albumsPageAdapter) SaveSortOrder(orderIdx int) {
|
||||
a.cfg.SortOrder = a.mp.AlbumSortOrders()[orderIdx]
|
||||
}
|
||||
|
||||
func (a *albumsPageAdapter) ActionButton() fyne.CanvasObject { return nil }
|
||||
func (a *albumsPageAdapter) ActionButton() fyne.CanvasObject {
|
||||
fn := func() {
|
||||
go func() {
|
||||
if err := a.pm.PlayRandomAlbums(""); err != nil {
|
||||
log.Printf("error playing random albums: %v", err)
|
||||
fyne.Do(func() {
|
||||
a.contr.ToastProvider.ShowErrorToast(lang.L("Unable to play random albums"))
|
||||
})
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
return widget.NewButtonWithIcon(lang.L("Play random"), myTheme.ShuffleIcon, fn)
|
||||
}
|
||||
|
||||
func (a *albumsPageAdapter) Iter(sortOrderIdx int, filter mediaprovider.AlbumFilter) widgets.GridViewIterator {
|
||||
sortOrder := a.mp.AlbumSortOrders()[sortOrderIdx]
|
||||
|
||||
Reference in New Issue
Block a user