rework async in artist page
This commit is contained in:
+23
-18
@@ -175,7 +175,7 @@ func (a *ArtistPage) playArtistRadio() {
|
|||||||
err := a.pm.PlaySimilarSongs(a.artistID)
|
err := a.pm.PlaySimilarSongs(a.artistID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fyne.Do(func() {
|
fyne.Do(func() {
|
||||||
log.Println("error playing similar songs: %v", err)
|
log.Printf("error playing similar songs: %v", err)
|
||||||
a.contr.ToastProvider.ShowErrorToast(lang.L("Unable to play artist radio"))
|
a.contr.ToastProvider.ShowErrorToast(lang.L("Unable to play artist radio"))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -245,17 +245,17 @@ func (a *ArtistPage) load() {
|
|||||||
log.Printf("Failed to get artist: %s", err.Error())
|
log.Printf("Failed to get artist: %s", err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if a.disposed {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fyne.Do(func() {
|
fyne.Do(func() {
|
||||||
|
if a.disposed {
|
||||||
|
return
|
||||||
|
}
|
||||||
a.artistInfo = artist
|
a.artistInfo = artist
|
||||||
a.header.Update(artist, a.im)
|
a.header.Update(artist, a.im)
|
||||||
if a.activeView == 0 {
|
if a.activeView == 0 {
|
||||||
a.showAlbumGrid(false /*reSort*/)
|
a.showAlbumGrid(false /*reSort*/)
|
||||||
} else {
|
} else {
|
||||||
a.showTopTracks()
|
go a.showTopTracks()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -263,9 +263,11 @@ func (a *ArtistPage) load() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed to get artist info: %s", err.Error())
|
log.Printf("Failed to get artist info: %s", err.Error())
|
||||||
}
|
}
|
||||||
if !a.disposed {
|
fyne.Do(func() {
|
||||||
fyne.Do(func() { a.header.UpdateInfo(info) })
|
if !a.disposed {
|
||||||
}
|
a.header.UpdateInfo(info)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *ArtistPage) showAlbumGrid(reSort bool) {
|
func (a *ArtistPage) showAlbumGrid(reSort bool) {
|
||||||
@@ -409,7 +411,7 @@ func NewArtistPageHeader(page *ArtistPage) *ArtistPageHeader {
|
|||||||
SizeName: theme.SizeNameHeadingText,
|
SizeName: theme.SizeNameHeadingText,
|
||||||
}
|
}
|
||||||
a.artistImage = widgets.NewImagePlaceholder(myTheme.ArtistIcon, 225)
|
a.artistImage = widgets.NewImagePlaceholder(myTheme.ArtistIcon, 225)
|
||||||
a.artistImage.OnTapped = func(*fyne.PointEvent) { go a.showPopUpCover() }
|
a.artistImage.OnTapped = func(*fyne.PointEvent) { a.showPopUpCover() }
|
||||||
a.favoriteBtn = widgets.NewFavoriteButton(func() { go a.toggleFavorited() })
|
a.favoriteBtn = widgets.NewFavoriteButton(func() { go a.toggleFavorited() })
|
||||||
a.playBtn = widget.NewButtonWithIcon(lang.L("Play Discography"), theme.MediaPlayIcon(), func() {
|
a.playBtn = widget.NewButtonWithIcon(lang.L("Play Discography"), theme.MediaPlayIcon(), func() {
|
||||||
go a.artistPage.pm.PlayArtistDiscography(a.artistID, false /*shuffle*/)
|
go a.artistPage.pm.PlayArtistDiscography(a.artistID, false /*shuffle*/)
|
||||||
@@ -541,6 +543,7 @@ func (a *ArtistPageHeader) UpdateInfo(info *mediaprovider.ArtistInfo) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// should NOT be called asynchronously
|
||||||
func (a *ArtistPageHeader) showPopUpCover() {
|
func (a *ArtistPageHeader) showPopUpCover() {
|
||||||
if a.artistImageID == "" {
|
if a.artistImageID == "" {
|
||||||
if im := a.artistImage.Image(); im != nil {
|
if im := a.artistImage.Image(); im != nil {
|
||||||
@@ -551,15 +554,17 @@ func (a *ArtistPageHeader) showPopUpCover() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
a.fullSizeCoverFetching = true
|
a.fullSizeCoverFetching = true
|
||||||
defer func() { a.fullSizeCoverFetching = false }()
|
go func() {
|
||||||
cover, err := a.artistPage.im.GetFullSizeCoverArt(a.artistImageID)
|
defer func() { a.fullSizeCoverFetching = false }()
|
||||||
if err != nil {
|
cover, err := a.artistPage.im.GetFullSizeCoverArt(a.artistImageID)
|
||||||
log.Printf("error getting full size album cover: %s", err.Error())
|
if err != nil {
|
||||||
return
|
log.Printf("error getting full size album cover: %s", err.Error())
|
||||||
}
|
return
|
||||||
if a.artistPage != nil {
|
}
|
||||||
a.artistPage.contr.ShowPopUpImage(cover)
|
if a.artistPage != nil {
|
||||||
}
|
fyne.Do(func() { a.artistPage.contr.ShowPopUpImage(cover) })
|
||||||
|
}
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user