refactor: consolidate client requests and move currently_playing_tracks_id to PlayerState#939
Merged
refactor: consolidate client requests and move currently_playing_tracks_id to PlayerState#939
currently_playing_tracks_id to PlayerState#939Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR simplifies the client request model by consolidating multiple specialized track-fetching requests into the single existing
GetContextrequest, and movescurrently_playing_tracks_idfromUIStatetoPlayerState.Consolidate
ClientRequestvariantsRemoved
GetUserSavedTracks,GetUserTopTracks,GetUserRecentlyPlayedTracks, andGetRadioTracksrequest variants. All of these are now dispatched asGetContext(ContextId::Tracks(...)). The handler resolves the appropriate API call by pattern-matching on the tracks URI string (USER_TOP_TRACKS_URI,USER_RECENTLY_PLAYED_TRACKS_URI,USER_LIKED_TRACKS_URI, or aradio:prefixed URI).Move
currently_playing_tracks_idtoPlayerStateThe field tracking the active Tracks context (for contexts not represented in Spotify's playback API, e.g. liked/top tracks) was moved from
UIStatetoPlayerState. This makes it accessible toPlayerState::playing_context_id(), which now falls back tocurrently_playing_tracks_idwhen there is no active Spotify context. All event handler functions that modify this field were updated to take&SharedStateinstead of usingUIStateGuard.