remove SupportsSongRadio infra since all mediaproviders support it now
This commit is contained in:
@@ -189,6 +189,8 @@ type MediaProvider interface {
|
|||||||
|
|
||||||
GetSimilarTracks(artistID string, count int) ([]*Track, error)
|
GetSimilarTracks(artistID string, count int) ([]*Track, error)
|
||||||
|
|
||||||
|
GetSongRadio(trackID string, count int) ([]*Track, error)
|
||||||
|
|
||||||
ArtistSortOrders() []string
|
ArtistSortOrders() []string
|
||||||
|
|
||||||
IterateArtists(sortOrder string, filter ArtistFilter) ArtistIterator
|
IterateArtists(sortOrder string, filter ArtistFilter) ArtistIterator
|
||||||
@@ -244,10 +246,6 @@ type SupportsSharing interface {
|
|||||||
CanShareArtists() bool
|
CanShareArtists() bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type SupportsSongRadio interface {
|
|
||||||
GetSongRadio(trackID string, count int) ([]*Track, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
type LyricsProvider interface {
|
type LyricsProvider interface {
|
||||||
GetLyrics(track *Track) (*Lyrics, error)
|
GetLyrics(track *Track) (*Lyrics, error)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,10 +96,8 @@ func newAlbumPage(
|
|||||||
a.tracklist.SetSorting(sort)
|
a.tracklist.SetSorting(sort)
|
||||||
_, canRate := a.mp.(mediaprovider.SupportsRating)
|
_, canRate := a.mp.(mediaprovider.SupportsRating)
|
||||||
_, canShare := a.mp.(mediaprovider.SupportsSharing)
|
_, canShare := a.mp.(mediaprovider.SupportsSharing)
|
||||||
_, canSongRadio := a.mp.(mediaprovider.SupportsSongRadio)
|
|
||||||
a.tracklist.Options.DisableRating = !canRate
|
a.tracklist.Options.DisableRating = !canRate
|
||||||
a.tracklist.Options.DisableSharing = !canShare
|
a.tracklist.Options.DisableSharing = !canShare
|
||||||
a.tracklist.Options.DisableSongRadio = !canSongRadio
|
|
||||||
a.tracklist.OnVisibleColumnsChanged = func(cols []string) {
|
a.tracklist.OnVisibleColumnsChanged = func(cols []string) {
|
||||||
a.cfg.TracklistColumns = cols
|
a.cfg.TracklistColumns = cols
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -238,10 +238,8 @@ func (a *ArtistPage) showTopTracks() {
|
|||||||
tl.Options = widgets.TracklistOptions{AutoNumber: true}
|
tl.Options = widgets.TracklistOptions{AutoNumber: true}
|
||||||
_, canRate := a.mp.(mediaprovider.SupportsRating)
|
_, canRate := a.mp.(mediaprovider.SupportsRating)
|
||||||
_, canShare := a.mp.(mediaprovider.SupportsSharing)
|
_, canShare := a.mp.(mediaprovider.SupportsSharing)
|
||||||
_, canSongRadio := a.mp.(mediaprovider.SupportsSongRadio)
|
|
||||||
tl.Options.DisableRating = !canRate
|
tl.Options.DisableRating = !canRate
|
||||||
tl.Options.DisableSharing = !canShare
|
tl.Options.DisableSharing = !canShare
|
||||||
tl.Options.DisableSongRadio = !canSongRadio
|
|
||||||
tl.SetVisibleColumns(a.cfg.TracklistColumns)
|
tl.SetVisibleColumns(a.cfg.TracklistColumns)
|
||||||
tl.SetSorting(a.trackSort)
|
tl.SetSorting(a.trackSort)
|
||||||
tl.OnVisibleColumnsChanged = func(cols []string) {
|
tl.OnVisibleColumnsChanged = func(cols []string) {
|
||||||
|
|||||||
@@ -403,10 +403,8 @@ func (a *FavoritesPage) onShowFavoriteSongs() {
|
|||||||
tracklist.Options = widgets.TracklistOptions{AutoNumber: true}
|
tracklist.Options = widgets.TracklistOptions{AutoNumber: true}
|
||||||
_, canRate := a.mp.(mediaprovider.SupportsRating)
|
_, canRate := a.mp.(mediaprovider.SupportsRating)
|
||||||
_, canShare := a.mp.(mediaprovider.SupportsSharing)
|
_, canShare := a.mp.(mediaprovider.SupportsSharing)
|
||||||
_, canSongRadio := a.mp.(mediaprovider.SupportsSongRadio)
|
|
||||||
tracklist.Options.DisableRating = !canRate
|
tracklist.Options.DisableRating = !canRate
|
||||||
tracklist.Options.DisableSharing = !canShare
|
tracklist.Options.DisableSharing = !canShare
|
||||||
tracklist.Options.DisableSongRadio = !canSongRadio
|
|
||||||
tracklist.SetVisibleColumns(a.cfg.TracklistColumns)
|
tracklist.SetVisibleColumns(a.cfg.TracklistColumns)
|
||||||
tracklist.SetSorting(a.trackSort)
|
tracklist.SetSorting(a.trackSort)
|
||||||
tracklist.OnVisibleColumnsChanged = func(cols []string) {
|
tracklist.OnVisibleColumnsChanged = func(cols []string) {
|
||||||
|
|||||||
@@ -88,13 +88,11 @@ func newPlaylistPage(
|
|||||||
}
|
}
|
||||||
_, canRate := a.sm.Server.(mediaprovider.SupportsRating)
|
_, canRate := a.sm.Server.(mediaprovider.SupportsRating)
|
||||||
_, canShare := a.sm.Server.(mediaprovider.SupportsSharing)
|
_, canShare := a.sm.Server.(mediaprovider.SupportsSharing)
|
||||||
_, canSongRadio := a.sm.Server.(mediaprovider.SupportsSongRadio)
|
|
||||||
remove := fyne.NewMenuItem("Remove from playlist", a.onRemoveSelectedFromPlaylist)
|
remove := fyne.NewMenuItem("Remove from playlist", a.onRemoveSelectedFromPlaylist)
|
||||||
remove.Icon = theme.ContentClearIcon()
|
remove.Icon = theme.ContentClearIcon()
|
||||||
a.tracklist.Options = widgets.TracklistOptions{
|
a.tracklist.Options = widgets.TracklistOptions{
|
||||||
DisableRating: !canRate,
|
DisableRating: !canRate,
|
||||||
DisableSharing: !canShare,
|
DisableSharing: !canShare,
|
||||||
DisableSongRadio: !canSongRadio,
|
|
||||||
AuxiliaryMenuItems: []*fyne.MenuItem{
|
AuxiliaryMenuItems: []*fyne.MenuItem{
|
||||||
util.NewReorderTracksSubmenu(a.doSetNewTrackOrder),
|
util.NewReorderTracksSubmenu(a.doSetNewTrackOrder),
|
||||||
remove,
|
remove,
|
||||||
|
|||||||
+15
-19
@@ -34,14 +34,13 @@ type TracksPage struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type tracksPageState struct {
|
type tracksPageState struct {
|
||||||
searchText string
|
searchText string
|
||||||
widgetPool *util.WidgetPool
|
widgetPool *util.WidgetPool
|
||||||
contr *controller.Controller
|
contr *controller.Controller
|
||||||
conf *backend.TracksPageConfig
|
conf *backend.TracksPageConfig
|
||||||
mp mediaprovider.MediaProvider
|
mp mediaprovider.MediaProvider
|
||||||
canRate bool
|
canRate bool
|
||||||
canShare bool
|
canShare bool
|
||||||
canSongRadio bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTracksPage(contr *controller.Controller, conf *backend.TracksPageConfig, pool *util.WidgetPool, mp mediaprovider.MediaProvider) *TracksPage {
|
func NewTracksPage(contr *controller.Controller, conf *backend.TracksPageConfig, pool *util.WidgetPool, mp mediaprovider.MediaProvider) *TracksPage {
|
||||||
@@ -51,13 +50,11 @@ func NewTracksPage(contr *controller.Controller, conf *backend.TracksPageConfig,
|
|||||||
t.tracklist = t.obtainTracklist()
|
t.tracklist = t.obtainTracklist()
|
||||||
_, t.canRate = mp.(mediaprovider.SupportsRating)
|
_, t.canRate = mp.(mediaprovider.SupportsRating)
|
||||||
_, t.canShare = mp.(mediaprovider.SupportsSharing)
|
_, t.canShare = mp.(mediaprovider.SupportsSharing)
|
||||||
_, t.canSongRadio = mp.(mediaprovider.SupportsSongRadio)
|
|
||||||
t.tracklist.Options = widgets.TracklistOptions{
|
t.tracklist.Options = widgets.TracklistOptions{
|
||||||
DisableSorting: true,
|
DisableSorting: true,
|
||||||
DisableRating: !t.canRate,
|
DisableRating: !t.canRate,
|
||||||
DisableSharing: !t.canShare,
|
DisableSharing: !t.canShare,
|
||||||
DisableSongRadio: !t.canSongRadio,
|
AutoNumber: true,
|
||||||
AutoNumber: true,
|
|
||||||
}
|
}
|
||||||
t.tracklist.SetVisibleColumns(conf.TracklistColumns)
|
t.tracklist.SetVisibleColumns(conf.TracklistColumns)
|
||||||
t.tracklist.OnVisibleColumnsChanged = func(cols []string) {
|
t.tracklist.OnVisibleColumnsChanged = func(cols []string) {
|
||||||
@@ -140,11 +137,10 @@ func (t *TracksPage) doSearch(query string) {
|
|||||||
if t.searchTracklist == nil {
|
if t.searchTracklist == nil {
|
||||||
t.searchTracklist = t.obtainTracklist()
|
t.searchTracklist = t.obtainTracklist()
|
||||||
t.searchTracklist.Options = widgets.TracklistOptions{
|
t.searchTracklist.Options = widgets.TracklistOptions{
|
||||||
AutoNumber: true,
|
AutoNumber: true,
|
||||||
DisableSorting: true,
|
DisableSorting: true,
|
||||||
DisableRating: !t.canRate,
|
DisableRating: !t.canRate,
|
||||||
DisableSharing: !t.canShare,
|
DisableSharing: !t.canShare,
|
||||||
DisableSongRadio: !t.canSongRadio,
|
|
||||||
}
|
}
|
||||||
t.searchTracklist.SetVisibleColumns(t.conf.TracklistColumns)
|
t.searchTracklist.SetVisibleColumns(t.conf.TracklistColumns)
|
||||||
t.searchTracklist.SetNowPlaying(t.nowPlayingID)
|
t.searchTracklist.SetNowPlaying(t.nowPlayingID)
|
||||||
|
|||||||
@@ -887,12 +887,7 @@ func (c *Controller) ShowAlbumInfoDialog(albumID, albumName string, albumCover i
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Controller) GetSongRadioTracks(sourceTrack *mediaprovider.Track) ([]*mediaprovider.Track, error) {
|
func (c *Controller) GetSongRadioTracks(sourceTrack *mediaprovider.Track) ([]*mediaprovider.Track, error) {
|
||||||
r, ok := c.App.ServerManager.Server.(mediaprovider.SupportsSongRadio)
|
radioTracks, err := c.App.ServerManager.Server.GetSongRadio(sourceTrack.ID, 100)
|
||||||
if !ok {
|
|
||||||
return nil, fmt.Errorf("server does not support song radio")
|
|
||||||
}
|
|
||||||
|
|
||||||
radioTracks, err := r.GetSongRadio(sourceTrack.ID, 100)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error getting song radio: %s", err.Error())
|
return nil, fmt.Errorf("error getting song radio: %s", err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,9 +76,6 @@ type TracklistOptions struct {
|
|||||||
|
|
||||||
// Disables the sharing option.
|
// Disables the sharing option.
|
||||||
DisableSharing bool
|
DisableSharing bool
|
||||||
|
|
||||||
// Disables the song radio option.
|
|
||||||
DisableSongRadio bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Tracklist struct {
|
type Tracklist struct {
|
||||||
@@ -588,7 +585,6 @@ func (t *Tracklist) onShowContextMenu(e *fyne.PointEvent, trackIdx int) {
|
|||||||
}
|
}
|
||||||
t.ratingSubmenu.Disabled = t.Options.DisableRating
|
t.ratingSubmenu.Disabled = t.Options.DisableRating
|
||||||
t.shareMenuItem.Disabled = t.Options.DisableSharing || len(t.selectedTracks()) != 1
|
t.shareMenuItem.Disabled = t.Options.DisableSharing || len(t.selectedTracks()) != 1
|
||||||
t.songRadioMenuItem.Disabled = t.Options.DisableSongRadio || len(t.selectedTracks()) != 1
|
|
||||||
widget.ShowPopUpMenuAtPosition(t.ctxMenu, fyne.CurrentApp().Driver().CanvasForObject(t), e.AbsolutePosition)
|
widget.ShowPopUpMenuAtPosition(t.ctxMenu, fyne.CurrentApp().Driver().CanvasForObject(t), e.AbsolutePosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user