changing AlbumInfo attributes name, using the same names as subsonic API. Checking if lastFm and musicBrainzID are not empty strings. Saving the musicbrainz release url in constant. Using 'Show Info...' in meatball menu.
This commit is contained in:
@@ -19,8 +19,8 @@ type AlbumWithTracks struct {
|
||||
}
|
||||
|
||||
type AlbumInfo struct {
|
||||
Info string
|
||||
LastFMUrl string
|
||||
Notes string
|
||||
LastFmUrl string
|
||||
MusicBrainzID string
|
||||
}
|
||||
|
||||
|
||||
@@ -65,8 +65,8 @@ func (s *subsonicMediaProvider) GetAlbumInfo(albumID string) (*mediaprovider.Alb
|
||||
return nil, err
|
||||
}
|
||||
album := &mediaprovider.AlbumInfo{
|
||||
Info: al.Notes,
|
||||
LastFMUrl: al.LastFmUrl,
|
||||
Notes: al.Notes,
|
||||
LastFmUrl: al.LastFmUrl,
|
||||
MusicBrainzID: al.MusicBrainzID,
|
||||
}
|
||||
return album, nil
|
||||
|
||||
@@ -204,7 +204,7 @@ func NewAlbumPageHeader(page *AlbumPage) *AlbumPageHeader {
|
||||
fyne.NewMenuItem("Download...", func() {
|
||||
a.page.contr.ShowDownloadDialog(a.page.tracks, a.titleLabel.String())
|
||||
}),
|
||||
fyne.NewMenuItem("Get Info...", func() {
|
||||
fyne.NewMenuItem("Show Info...", func() {
|
||||
a.page.contr.ShowAlbumInfoDialog(a.albumID, a.titleLabel.String(), a.cover.Image.Image)
|
||||
}))
|
||||
pop = widget.NewPopUpMenu(menu, fyne.CurrentApp().Driver().CanvasForObject(a))
|
||||
|
||||
@@ -18,6 +18,8 @@ import (
|
||||
"fyne.io/fyne/v2/widget"
|
||||
)
|
||||
|
||||
const musicBrainzReleaseUrl = "https://musicbrainz.org/release"
|
||||
|
||||
type AlbumInfoDialog struct {
|
||||
widget.BaseWidget
|
||||
|
||||
@@ -61,11 +63,11 @@ func (a *AlbumInfoDialog) buildMainContainer(albumInfo *mediaprovider.AlbumInfo,
|
||||
|
||||
infoContent := widget.NewLabel("Album info not available")
|
||||
|
||||
if albumInfo.Info != "" {
|
||||
infoContent = a.infoLabel(albumInfo.Info)
|
||||
if albumInfo.Notes != "" {
|
||||
infoContent = a.infoLabel(albumInfo.Notes)
|
||||
}
|
||||
|
||||
urlContainer := a.buildUrlContainer(albumInfo.LastFMUrl, albumInfo.MusicBrainzID)
|
||||
urlContainer := a.buildUrlContainer(albumInfo.LastFmUrl, albumInfo.MusicBrainzID)
|
||||
|
||||
return container.NewVBox(
|
||||
iconImage,
|
||||
@@ -89,14 +91,19 @@ func (a *AlbumInfoDialog) infoLabel(info string) *widget.Label {
|
||||
return lbl
|
||||
}
|
||||
|
||||
func (a *AlbumInfoDialog) buildUrlContainer(lastFM, musicBrainzID string) *fyne.Container {
|
||||
func (a *AlbumInfoDialog) buildUrlContainer(lastFm, musicBrainzID string) *fyne.Container {
|
||||
urls := make([]*widget.Hyperlink, 0)
|
||||
|
||||
if lastFMUrl, err := url.Parse(lastFM); err == nil {
|
||||
urls = append(urls, widget.NewHyperlink("Last.fm", lastFMUrl))
|
||||
if lastFm != "" {
|
||||
if lastFmUrl, err := url.Parse(lastFm); err == nil {
|
||||
urls = append(urls, widget.NewHyperlink("Last.fm", lastFmUrl))
|
||||
}
|
||||
}
|
||||
if musicBrainzUrl, err := url.Parse(fmt.Sprintf("https://musicbrainz.org/release/%s", musicBrainzID)); err == nil {
|
||||
urls = append(urls, widget.NewHyperlink("MusicBrainz", musicBrainzUrl))
|
||||
|
||||
if musicBrainzID != "" {
|
||||
if musicBrainzUrl, err := url.Parse(fmt.Sprintf("%s/%s", musicBrainzReleaseUrl, musicBrainzID)); err == nil {
|
||||
urls = append(urls, widget.NewHyperlink("MusicBrainz", musicBrainzUrl))
|
||||
}
|
||||
}
|
||||
|
||||
urlContainer := container.New(&layouts.HboxCustomPadding{DisableThemePad: true, ExtraPad: -10})
|
||||
|
||||
Reference in New Issue
Block a user