more refactoring to make nowplayingcard more consistent with rest of widget APIs

This commit is contained in:
Drew Weymouth
2023-11-14 08:59:49 -08:00
parent 5ce843f6cc
commit e841793318
2 changed files with 34 additions and 22 deletions
+6 -6
View File
@@ -73,15 +73,15 @@ func NewBottomPanel(p *player.Player, pm *backend.PlaybackManager, contr *contro
bp.NowPlaying.OnAddToPlaylist = func() {
contr.DoAddTracksToPlaylistWorkflow([]string{bp.playbackManager.NowPlaying().ID})
}
bp.NowPlaying.OnAlbumNameTapped(func() {
bp.NowPlaying.OnAlbumNameTapped = func() {
contr.NavigateTo(controller.AlbumRoute(bp.playbackManager.NowPlaying().AlbumID))
})
bp.NowPlaying.OnArtistNameTapped(func(artistID string) {
}
bp.NowPlaying.OnArtistNameTapped = func(artistID string) {
contr.NavigateTo(controller.ArtistRoute(artistID))
})
bp.NowPlaying.OnTrackNameTapped(func() {
}
bp.NowPlaying.OnTrackNameTapped = func() {
contr.NavigateTo(controller.NowPlayingRoute(bp.playbackManager.NowPlaying().ID))
})
}
bp.Controls = widgets.NewPlayerControls()
bp.Controls.OnPlayPause(func() {
p.PlayPause()
+28 -16
View File
@@ -23,10 +23,13 @@ type NowPlayingCard struct {
cover *TappableImage
menu *widget.PopUpMenu
OnShowCoverImage func()
OnSetRating func(rating int)
OnSetFavorite func(favorite bool)
OnAddToPlaylist func()
OnTrackNameTapped func()
OnArtistNameTapped func(artistID string)
OnAlbumNameTapped func()
OnShowCoverImage func()
OnSetRating func(rating int)
OnSetFavorite func(favorite bool)
OnAddToPlaylist func()
}
func NewNowPlayingCard() *NowPlayingCard {
@@ -46,6 +49,9 @@ func NewNowPlayingCard() *NowPlayingCard {
n.cover.SetMinSize(fyne.NewSize(85, 85))
n.cover.FillMode = canvas.ImageFillContain
n.cover.Hidden = true
n.albumName.OnTapped = n.onAlbumNameTapped
n.artistName.OnTapped = n.onArtistNameTapped
n.trackName.OnTapped = n.onTrackNameTapped
return n
}
@@ -55,6 +61,24 @@ func (n *NowPlayingCard) MinSize() fyne.Size {
return fyne.NewSize(n.BaseWidget.MinSize().Width, 85)
}
func (n *NowPlayingCard) onAlbumNameTapped() {
if n.OnAlbumNameTapped != nil {
n.OnAlbumNameTapped()
}
}
func (n *NowPlayingCard) onArtistNameTapped(artistID string) {
if n.OnArtistNameTapped != nil {
n.OnArtistNameTapped(artistID)
}
}
func (n *NowPlayingCard) onTrackNameTapped() {
if n.OnTrackNameTapped != nil {
n.OnTrackNameTapped()
}
}
func (n *NowPlayingCard) onShowCoverImage(*fyne.PointEvent) {
if n.OnShowCoverImage != nil {
n.OnShowCoverImage()
@@ -99,18 +123,6 @@ func (n *NowPlayingCard) Update(track string, artists, artistIDs []string, album
n.Refresh()
}
func (n *NowPlayingCard) OnArtistNameTapped(f func(string)) {
n.artistName.OnTapped = f
}
func (n *NowPlayingCard) OnAlbumNameTapped(f func()) {
n.albumName.OnTapped = f
}
func (n *NowPlayingCard) OnTrackNameTapped(f func()) {
n.trackName.OnTapped = f
}
func (n *NowPlayingCard) showMenu(e *fyne.PointEvent) {
if n.menu == nil {
ratingMenu := util.NewRatingSubmenu(n.onSetRating)