From 64ec6982029b7462793fdd32db4aea900f61c6bc Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Fri, 4 Aug 2023 23:39:14 -0400 Subject: [PATCH] few cleanups around handling track change callback --- ui/browsing/albumpage.go | 6 +----- ui/browsing/favoritespage.go | 12 ++++++------ ui/browsing/nowplayingpage.go | 6 +----- ui/browsing/playlistpage.go | 8 ++------ ui/browsing/trackspage.go | 5 +++++ 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/ui/browsing/albumpage.go b/ui/browsing/albumpage.go index 0716a66..1b38846 100644 --- a/ui/browsing/albumpage.go +++ b/ui/browsing/albumpage.go @@ -127,11 +127,7 @@ func (a *AlbumPage) Route() controller.Route { } func (a *AlbumPage) OnSongChange(track, lastScrobbledIfAny *mediaprovider.Track) { - if track == nil { - a.nowPlayingID = "" - } else { - a.nowPlayingID = track.ID - } + a.nowPlayingID = sharedutil.TrackIDOrEmptyStr(track) a.tracklist.SetNowPlaying(a.nowPlayingID) a.tracklist.IncrementPlayCount(sharedutil.TrackIDOrEmptyStr(lastScrobbledIfAny)) } diff --git a/ui/browsing/favoritespage.go b/ui/browsing/favoritespage.go index 368a036..82758b6 100644 --- a/ui/browsing/favoritespage.go +++ b/ui/browsing/favoritespage.go @@ -6,6 +6,7 @@ import ( "github.com/dweymouth/supersonic/backend" "github.com/dweymouth/supersonic/backend/mediaprovider" + "github.com/dweymouth/supersonic/sharedutil" "github.com/dweymouth/supersonic/ui/controller" "github.com/dweymouth/supersonic/ui/layouts" myTheme "github.com/dweymouth/supersonic/ui/theme" @@ -248,13 +249,12 @@ func (a *FavoritesPage) OnSearched(query string) { var _ CanShowNowPlaying = (*FavoritesPage)(nil) -func (a *FavoritesPage) OnSongChange(song, _ *mediaprovider.Track) { - a.nowPlayingID = "" - if song != nil { - a.nowPlayingID = song.ID - } +func (a *FavoritesPage) OnSongChange(song, lastScrobbledIfAny *mediaprovider.Track) { + a.nowPlayingID = sharedutil.TrackIDOrEmptyStr(song) if a.tracklistCtr != nil { - a.tracklistCtr.Objects[0].(*widgets.Tracklist).SetNowPlaying(a.nowPlayingID) + tracklist := a.tracklistCtr.Objects[0].(*widgets.Tracklist) + tracklist.SetNowPlaying(a.nowPlayingID) + tracklist.IncrementPlayCount(sharedutil.TrackIDOrEmptyStr(lastScrobbledIfAny)) } } diff --git a/ui/browsing/nowplayingpage.go b/ui/browsing/nowplayingpage.go index f93f281..634f1f3 100644 --- a/ui/browsing/nowplayingpage.go +++ b/ui/browsing/nowplayingpage.go @@ -120,11 +120,7 @@ func (a *NowPlayingPage) SelectAll() { var _ CanShowNowPlaying = (*NowPlayingPage)(nil) func (a *NowPlayingPage) OnSongChange(song, lastScrobbledIfAny *mediaprovider.Track) { - if song == nil { - a.nowPlayingID = "" - } else { - a.nowPlayingID = song.ID - } + a.nowPlayingID = sharedutil.TrackIDOrEmptyStr(song) a.tracklist.SetNowPlaying(a.nowPlayingID) a.tracklist.IncrementPlayCount(sharedutil.TrackIDOrEmptyStr(lastScrobbledIfAny)) } diff --git a/ui/browsing/playlistpage.go b/ui/browsing/playlistpage.go index f18a9a5..bdff825 100644 --- a/ui/browsing/playlistpage.go +++ b/ui/browsing/playlistpage.go @@ -125,12 +125,8 @@ func (a *PlaylistPage) Route() controller.Route { return controller.PlaylistRoute(a.playlistID) } -func (a *PlaylistPage) OnSongChange(song, lastScrobbledIfAny *mediaprovider.Track) { - if song == nil { - a.nowPlayingID = "" - } else { - a.nowPlayingID = song.ID - } +func (a *PlaylistPage) OnSongChange(track, lastScrobbledIfAny *mediaprovider.Track) { + a.nowPlayingID = sharedutil.TrackIDOrEmptyStr(track) a.tracklist.SetNowPlaying(a.nowPlayingID) a.tracklist.IncrementPlayCount(sharedutil.TrackIDOrEmptyStr(lastScrobbledIfAny)) } diff --git a/ui/browsing/trackspage.go b/ui/browsing/trackspage.go index 2378a3f..ce689e6 100644 --- a/ui/browsing/trackspage.go +++ b/ui/browsing/trackspage.go @@ -153,6 +153,11 @@ func (t *TracksPage) Save() SavedPage { t.loader.Dispose() t.tracklist.Clear() t.widgetPool.Release(util.WidgetTypeTracklist, t.tracklist) + if t.searchTracklist != nil { + t.searchLoader.Dispose() + t.searchTracklist.Clear() + t.widgetPool.Release(util.WidgetTypeTracklist, t.searchTracklist) + } state := t.tracksPageState return &state }