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)
|
||||
|
||||
GetSongRadio(trackID string, count int) ([]*Track, error)
|
||||
|
||||
ArtistSortOrders() []string
|
||||
|
||||
IterateArtists(sortOrder string, filter ArtistFilter) ArtistIterator
|
||||
@@ -244,10 +246,6 @@ type SupportsSharing interface {
|
||||
CanShareArtists() bool
|
||||
}
|
||||
|
||||
type SupportsSongRadio interface {
|
||||
GetSongRadio(trackID string, count int) ([]*Track, error)
|
||||
}
|
||||
|
||||
type LyricsProvider interface {
|
||||
GetLyrics(track *Track) (*Lyrics, error)
|
||||
}
|
||||
|
||||
@@ -96,10 +96,8 @@ func newAlbumPage(
|
||||
a.tracklist.SetSorting(sort)
|
||||
_, canRate := a.mp.(mediaprovider.SupportsRating)
|
||||
_, canShare := a.mp.(mediaprovider.SupportsSharing)
|
||||
_, canSongRadio := a.mp.(mediaprovider.SupportsSongRadio)
|
||||
a.tracklist.Options.DisableRating = !canRate
|
||||
a.tracklist.Options.DisableSharing = !canShare
|
||||
a.tracklist.Options.DisableSongRadio = !canSongRadio
|
||||
a.tracklist.OnVisibleColumnsChanged = func(cols []string) {
|
||||
a.cfg.TracklistColumns = cols
|
||||
}
|
||||
|
||||
@@ -238,10 +238,8 @@ func (a *ArtistPage) showTopTracks() {
|
||||
tl.Options = widgets.TracklistOptions{AutoNumber: true}
|
||||
_, canRate := a.mp.(mediaprovider.SupportsRating)
|
||||
_, canShare := a.mp.(mediaprovider.SupportsSharing)
|
||||
_, canSongRadio := a.mp.(mediaprovider.SupportsSongRadio)
|
||||
tl.Options.DisableRating = !canRate
|
||||
tl.Options.DisableSharing = !canShare
|
||||
tl.Options.DisableSongRadio = !canSongRadio
|
||||
tl.SetVisibleColumns(a.cfg.TracklistColumns)
|
||||
tl.SetSorting(a.trackSort)
|
||||
tl.OnVisibleColumnsChanged = func(cols []string) {
|
||||
|
||||
@@ -403,10 +403,8 @@ func (a *FavoritesPage) onShowFavoriteSongs() {
|
||||
tracklist.Options = widgets.TracklistOptions{AutoNumber: true}
|
||||
_, canRate := a.mp.(mediaprovider.SupportsRating)
|
||||
_, canShare := a.mp.(mediaprovider.SupportsSharing)
|
||||
_, canSongRadio := a.mp.(mediaprovider.SupportsSongRadio)
|
||||
tracklist.Options.DisableRating = !canRate
|
||||
tracklist.Options.DisableSharing = !canShare
|
||||
tracklist.Options.DisableSongRadio = !canSongRadio
|
||||
tracklist.SetVisibleColumns(a.cfg.TracklistColumns)
|
||||
tracklist.SetSorting(a.trackSort)
|
||||
tracklist.OnVisibleColumnsChanged = func(cols []string) {
|
||||
|
||||
@@ -88,13 +88,11 @@ func newPlaylistPage(
|
||||
}
|
||||
_, canRate := a.sm.Server.(mediaprovider.SupportsRating)
|
||||
_, canShare := a.sm.Server.(mediaprovider.SupportsSharing)
|
||||
_, canSongRadio := a.sm.Server.(mediaprovider.SupportsSongRadio)
|
||||
remove := fyne.NewMenuItem("Remove from playlist", a.onRemoveSelectedFromPlaylist)
|
||||
remove.Icon = theme.ContentClearIcon()
|
||||
a.tracklist.Options = widgets.TracklistOptions{
|
||||
DisableRating: !canRate,
|
||||
DisableSharing: !canShare,
|
||||
DisableSongRadio: !canSongRadio,
|
||||
DisableRating: !canRate,
|
||||
DisableSharing: !canShare,
|
||||
AuxiliaryMenuItems: []*fyne.MenuItem{
|
||||
util.NewReorderTracksSubmenu(a.doSetNewTrackOrder),
|
||||
remove,
|
||||
|
||||
+15
-19
@@ -34,14 +34,13 @@ type TracksPage struct {
|
||||
}
|
||||
|
||||
type tracksPageState struct {
|
||||
searchText string
|
||||
widgetPool *util.WidgetPool
|
||||
contr *controller.Controller
|
||||
conf *backend.TracksPageConfig
|
||||
mp mediaprovider.MediaProvider
|
||||
canRate bool
|
||||
canShare bool
|
||||
canSongRadio bool
|
||||
searchText string
|
||||
widgetPool *util.WidgetPool
|
||||
contr *controller.Controller
|
||||
conf *backend.TracksPageConfig
|
||||
mp mediaprovider.MediaProvider
|
||||
canRate bool
|
||||
canShare bool
|
||||
}
|
||||
|
||||
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.canRate = mp.(mediaprovider.SupportsRating)
|
||||
_, t.canShare = mp.(mediaprovider.SupportsSharing)
|
||||
_, t.canSongRadio = mp.(mediaprovider.SupportsSongRadio)
|
||||
t.tracklist.Options = widgets.TracklistOptions{
|
||||
DisableSorting: true,
|
||||
DisableRating: !t.canRate,
|
||||
DisableSharing: !t.canShare,
|
||||
DisableSongRadio: !t.canSongRadio,
|
||||
AutoNumber: true,
|
||||
DisableSorting: true,
|
||||
DisableRating: !t.canRate,
|
||||
DisableSharing: !t.canShare,
|
||||
AutoNumber: true,
|
||||
}
|
||||
t.tracklist.SetVisibleColumns(conf.TracklistColumns)
|
||||
t.tracklist.OnVisibleColumnsChanged = func(cols []string) {
|
||||
@@ -140,11 +137,10 @@ func (t *TracksPage) doSearch(query string) {
|
||||
if t.searchTracklist == nil {
|
||||
t.searchTracklist = t.obtainTracklist()
|
||||
t.searchTracklist.Options = widgets.TracklistOptions{
|
||||
AutoNumber: true,
|
||||
DisableSorting: true,
|
||||
DisableRating: !t.canRate,
|
||||
DisableSharing: !t.canShare,
|
||||
DisableSongRadio: !t.canSongRadio,
|
||||
AutoNumber: true,
|
||||
DisableSorting: true,
|
||||
DisableRating: !t.canRate,
|
||||
DisableSharing: !t.canShare,
|
||||
}
|
||||
t.searchTracklist.SetVisibleColumns(t.conf.TracklistColumns)
|
||||
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) {
|
||||
r, ok := c.App.ServerManager.Server.(mediaprovider.SupportsSongRadio)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("server does not support song radio")
|
||||
}
|
||||
|
||||
radioTracks, err := r.GetSongRadio(sourceTrack.ID, 100)
|
||||
radioTracks, err := c.App.ServerManager.Server.GetSongRadio(sourceTrack.ID, 100)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error getting song radio: %s", err.Error())
|
||||
}
|
||||
|
||||
@@ -76,9 +76,6 @@ type TracklistOptions struct {
|
||||
|
||||
// Disables the sharing option.
|
||||
DisableSharing bool
|
||||
|
||||
// Disables the song radio option.
|
||||
DisableSongRadio bool
|
||||
}
|
||||
|
||||
type Tracklist struct {
|
||||
@@ -588,7 +585,6 @@ func (t *Tracklist) onShowContextMenu(e *fyne.PointEvent, trackIdx int) {
|
||||
}
|
||||
t.ratingSubmenu.Disabled = t.Options.DisableRating
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user