diff --git a/ui/bottompanel.go b/ui/bottompanel.go index 5332624..1f2b9c1 100644 --- a/ui/bottompanel.go +++ b/ui/bottompanel.go @@ -104,7 +104,7 @@ func NewBottomPanel(pm *backend.PlaybackManager, contr *controller.Controller) * func (bp *BottomPanel) onSongChange(song, _ *mediaprovider.Track) { if song == nil { - bp.NowPlaying.Update("", []string{}, []string{}, "", nil) + bp.NowPlaying.Update(nil, nil) } else { bp.coverArtID = song.CoverArtID var im image.Image @@ -116,7 +116,7 @@ func (bp *BottomPanel) onSongChange(song, _ *mediaprovider.Track) { imgTTLSec := song.Duration + 30 im, _ = bp.ImageManager.GetCoverThumbnailWithTTL(song.CoverArtID, time.Duration(imgTTLSec)*time.Second) } - bp.NowPlaying.Update(song.Name, song.ArtistNames, song.ArtistIDs, song.Album, im) + bp.NowPlaying.Update(song, im) } } diff --git a/ui/widgets/nowplayingcard.go b/ui/widgets/nowplayingcard.go index bb7d9f0..ae77156 100644 --- a/ui/widgets/nowplayingcard.go +++ b/ui/widgets/nowplayingcard.go @@ -3,6 +3,7 @@ package widgets import ( "image" + "github.com/dweymouth/supersonic/backend/mediaprovider" "github.com/dweymouth/supersonic/ui/layouts" myTheme "github.com/dweymouth/supersonic/ui/theme" "github.com/dweymouth/supersonic/ui/util" @@ -117,12 +118,19 @@ func (n *NowPlayingCard) CreateRenderer() fyne.WidgetRenderer { return widget.NewSimpleRenderer(c) } -func (n *NowPlayingCard) Update(track string, artists, artistIDs []string, album string, cover image.Image) { - n.trackName.SetText(track) - n.trackName.Hidden = track == "" - n.artistName.BuildSegments(artists, artistIDs) - n.albumName.SetText(album) - n.albumName.Hidden = album == "" +func (n *NowPlayingCard) Update(track *mediaprovider.Track, cover image.Image) { + if track != nil { + n.trackName.SetText(track.Name) + n.artistName.BuildSegments(track.ArtistNames, track.ArtistIDs) + n.albumName.SetText(track.Album) + } else { + n.trackName.SetText("") + n.artistName.BuildSegments([]string{}, []string{}) + n.albumName.SetText("") + } + n.trackName.Hidden = n.trackName.Text == "" + n.artistName.Hidden = len(n.artistName.Segments) == 0 + n.albumName.Hidden = n.albumName.Text == "" n.cover.Image.Image = cover n.cover.Hidden = cover == nil n.Refresh()