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
|
mp := p.engine.sm.Server
|
||||||
var filter mediaprovider.AlbumFilter
|
var options mediaprovider.AlbumFilterOptions
|
||||||
if genreName != "" {
|
if genreName != "" {
|
||||||
filter = mediaprovider.NewAlbumFilter(mediaprovider.AlbumFilterOptions{
|
options = mediaprovider.AlbumFilterOptions{
|
||||||
Genres: []string{genreName},
|
Genres: []string{genreName},
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
iter := mp.IterateAlbums(mediaprovider.AlbumSortRandom, filter)
|
iter := mp.IterateAlbums(mediaprovider.AlbumSortRandom, mediaprovider.NewAlbumFilter(options))
|
||||||
insertMode := Replace
|
insertMode := Replace
|
||||||
for i := 0; i < 20; i++ {
|
for i := 0; i < 20; i++ {
|
||||||
al := iter.Next()
|
al := iter.Next()
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
package browsing
|
package browsing
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"slices"
|
"slices"
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/lang"
|
"fyne.io/fyne/v2/lang"
|
||||||
|
"fyne.io/fyne/v2/widget"
|
||||||
"github.com/dweymouth/supersonic/backend"
|
"github.com/dweymouth/supersonic/backend"
|
||||||
"github.com/dweymouth/supersonic/backend/mediaprovider"
|
"github.com/dweymouth/supersonic/backend/mediaprovider"
|
||||||
"github.com/dweymouth/supersonic/ui/controller"
|
"github.com/dweymouth/supersonic/ui/controller"
|
||||||
@@ -63,7 +65,20 @@ func (a *albumsPageAdapter) SaveSortOrder(orderIdx int) {
|
|||||||
a.cfg.SortOrder = a.mp.AlbumSortOrders()[orderIdx]
|
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 {
|
func (a *albumsPageAdapter) Iter(sortOrderIdx int, filter mediaprovider.AlbumFilter) widgets.GridViewIterator {
|
||||||
sortOrder := a.mp.AlbumSortOrders()[sortOrderIdx]
|
sortOrder := a.mp.AlbumSortOrders()[sortOrderIdx]
|
||||||
|
|||||||
Reference in New Issue
Block a user