ensure play queue track state is updated on favorite/unfavorite and scrobbles

This commit is contained in:
Drew Weymouth
2023-02-22 18:42:16 -08:00
parent 4cef01f1ca
commit d25baa9869
7 changed files with 65 additions and 16 deletions
+2 -1
View File
@@ -5,6 +5,7 @@ import (
"log"
"supersonic/backend"
"supersonic/res"
"supersonic/sharedutil"
"supersonic/ui/controller"
"supersonic/ui/layouts"
"supersonic/ui/util"
@@ -100,7 +101,7 @@ func (a *AlbumPage) OnSongChange(song *subsonic.Child, lastScrobbledIfAny *subso
a.nowPlayingID = song.ID
}
a.tracklist.SetNowPlaying(a.nowPlayingID)
a.tracklist.IncrementPlayCount(lastScrobbledIfAny)
a.tracklist.IncrementPlayCount(sharedutil.TrackIDOrEmptyStr(lastScrobbledIfAny))
}
func (a *AlbumPage) Reload() {
+4 -2
View File
@@ -2,6 +2,7 @@ package browsing
import (
"supersonic/backend"
"supersonic/sharedutil"
"supersonic/ui/controller"
"supersonic/ui/layouts"
"supersonic/ui/widgets"
@@ -44,8 +45,9 @@ func NewNowPlayingPage(
a.tracklist.SetVisibleColumns(conf.TracklistColumns)
a.tracklist.AutoNumber = true
a.tracklist.DisablePlaybackMenu = true
contr.ConnectTracklistActions(a.tracklist)
// override the default OnPlayTrackAt handler b/c we don't need to re-load the tracks into the queue
a.tracklist.OnPlayTrackAt = a.onPlayTrackAt
a.tracklist.OnAddToPlaylist = a.contr.DoAddTracksToPlaylistWorkflow
a.tracklist.AuxiliaryMenuItems = []*fyne.MenuItem{
fyne.NewMenuItem("Remove from queue", a.onRemoveSelectedFromQueue),
}
@@ -86,7 +88,7 @@ func (a *NowPlayingPage) OnSongChange(song *subsonic.Child, lastScrobbledIfAny *
a.nowPlayingID = song.ID
}
a.tracklist.SetNowPlaying(a.nowPlayingID)
a.tracklist.IncrementPlayCount(lastScrobbledIfAny)
a.tracklist.IncrementPlayCount(sharedutil.TrackIDOrEmptyStr(lastScrobbledIfAny))
}
func (a *NowPlayingPage) Reload() {
+2 -1
View File
@@ -5,6 +5,7 @@ import (
"log"
"supersonic/backend"
"supersonic/res"
"supersonic/sharedutil"
"supersonic/ui/controller"
"supersonic/ui/layouts"
"supersonic/ui/util"
@@ -87,7 +88,7 @@ func (a *PlaylistPage) OnSongChange(song *subsonic.Child, lastScrobbledIfAny *su
a.nowPlayingID = song.ID
}
a.tracklist.SetNowPlaying(a.nowPlayingID)
a.tracklist.IncrementPlayCount(lastScrobbledIfAny)
a.tracklist.IncrementPlayCount(sharedutil.TrackIDOrEmptyStr(lastScrobbledIfAny))
}
func (a *PlaylistPage) Reload() {