misc: Make NowPlayingCard.Update receive Track object

Small change to `NowPlayingCard`, to be able to use more Track
properties in the future (e.g. favorite status).
This commit is contained in:
Michael Manganiello
2024-04-27 14:02:05 -03:00
parent 7f158ed030
commit 3856ecdf73
2 changed files with 16 additions and 8 deletions
+2 -2
View File
@@ -104,7 +104,7 @@ func NewBottomPanel(pm *backend.PlaybackManager, contr *controller.Controller) *
func (bp *BottomPanel) onSongChange(song, _ *mediaprovider.Track) { func (bp *BottomPanel) onSongChange(song, _ *mediaprovider.Track) {
if song == nil { if song == nil {
bp.NowPlaying.Update("", []string{}, []string{}, "", nil) bp.NowPlaying.Update(nil, nil)
} else { } else {
bp.coverArtID = song.CoverArtID bp.coverArtID = song.CoverArtID
var im image.Image var im image.Image
@@ -116,7 +116,7 @@ func (bp *BottomPanel) onSongChange(song, _ *mediaprovider.Track) {
imgTTLSec := song.Duration + 30 imgTTLSec := song.Duration + 30
im, _ = bp.ImageManager.GetCoverThumbnailWithTTL(song.CoverArtID, time.Duration(imgTTLSec)*time.Second) 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)
} }
} }
+14 -6
View File
@@ -3,6 +3,7 @@ package widgets
import ( import (
"image" "image"
"github.com/dweymouth/supersonic/backend/mediaprovider"
"github.com/dweymouth/supersonic/ui/layouts" "github.com/dweymouth/supersonic/ui/layouts"
myTheme "github.com/dweymouth/supersonic/ui/theme" myTheme "github.com/dweymouth/supersonic/ui/theme"
"github.com/dweymouth/supersonic/ui/util" "github.com/dweymouth/supersonic/ui/util"
@@ -117,12 +118,19 @@ func (n *NowPlayingCard) CreateRenderer() fyne.WidgetRenderer {
return widget.NewSimpleRenderer(c) return widget.NewSimpleRenderer(c)
} }
func (n *NowPlayingCard) Update(track string, artists, artistIDs []string, album string, cover image.Image) { func (n *NowPlayingCard) Update(track *mediaprovider.Track, cover image.Image) {
n.trackName.SetText(track) if track != nil {
n.trackName.Hidden = track == "" n.trackName.SetText(track.Name)
n.artistName.BuildSegments(artists, artistIDs) n.artistName.BuildSegments(track.ArtistNames, track.ArtistIDs)
n.albumName.SetText(album) n.albumName.SetText(track.Album)
n.albumName.Hidden = 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.Image.Image = cover
n.cover.Hidden = cover == nil n.cover.Hidden = cover == nil
n.Refresh() n.Refresh()