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 {
|
type AlbumInfo struct {
|
||||||
Info string
|
Notes string
|
||||||
LastFMUrl string
|
LastFmUrl string
|
||||||
MusicBrainzID string
|
MusicBrainzID string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,8 +65,8 @@ func (s *subsonicMediaProvider) GetAlbumInfo(albumID string) (*mediaprovider.Alb
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
album := &mediaprovider.AlbumInfo{
|
album := &mediaprovider.AlbumInfo{
|
||||||
Info: al.Notes,
|
Notes: al.Notes,
|
||||||
LastFMUrl: al.LastFmUrl,
|
LastFmUrl: al.LastFmUrl,
|
||||||
MusicBrainzID: al.MusicBrainzID,
|
MusicBrainzID: al.MusicBrainzID,
|
||||||
}
|
}
|
||||||
return album, nil
|
return album, nil
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ func NewAlbumPageHeader(page *AlbumPage) *AlbumPageHeader {
|
|||||||
fyne.NewMenuItem("Download...", func() {
|
fyne.NewMenuItem("Download...", func() {
|
||||||
a.page.contr.ShowDownloadDialog(a.page.tracks, a.titleLabel.String())
|
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)
|
a.page.contr.ShowAlbumInfoDialog(a.albumID, a.titleLabel.String(), a.cover.Image.Image)
|
||||||
}))
|
}))
|
||||||
pop = widget.NewPopUpMenu(menu, fyne.CurrentApp().Driver().CanvasForObject(a))
|
pop = widget.NewPopUpMenu(menu, fyne.CurrentApp().Driver().CanvasForObject(a))
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ import (
|
|||||||
"fyne.io/fyne/v2/widget"
|
"fyne.io/fyne/v2/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const musicBrainzReleaseUrl = "https://musicbrainz.org/release"
|
||||||
|
|
||||||
type AlbumInfoDialog struct {
|
type AlbumInfoDialog struct {
|
||||||
widget.BaseWidget
|
widget.BaseWidget
|
||||||
|
|
||||||
@@ -61,11 +63,11 @@ func (a *AlbumInfoDialog) buildMainContainer(albumInfo *mediaprovider.AlbumInfo,
|
|||||||
|
|
||||||
infoContent := widget.NewLabel("Album info not available")
|
infoContent := widget.NewLabel("Album info not available")
|
||||||
|
|
||||||
if albumInfo.Info != "" {
|
if albumInfo.Notes != "" {
|
||||||
infoContent = a.infoLabel(albumInfo.Info)
|
infoContent = a.infoLabel(albumInfo.Notes)
|
||||||
}
|
}
|
||||||
|
|
||||||
urlContainer := a.buildUrlContainer(albumInfo.LastFMUrl, albumInfo.MusicBrainzID)
|
urlContainer := a.buildUrlContainer(albumInfo.LastFmUrl, albumInfo.MusicBrainzID)
|
||||||
|
|
||||||
return container.NewVBox(
|
return container.NewVBox(
|
||||||
iconImage,
|
iconImage,
|
||||||
@@ -89,14 +91,19 @@ func (a *AlbumInfoDialog) infoLabel(info string) *widget.Label {
|
|||||||
return lbl
|
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)
|
urls := make([]*widget.Hyperlink, 0)
|
||||||
|
|
||||||
if lastFMUrl, err := url.Parse(lastFM); err == nil {
|
if lastFm != "" {
|
||||||
urls = append(urls, widget.NewHyperlink("Last.fm", lastFMUrl))
|
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})
|
urlContainer := container.New(&layouts.HboxCustomPadding{DisableThemePad: true, ExtraPad: -10})
|
||||||
|
|||||||
Reference in New Issue
Block a user