Add Internet sidebar browsing to the remote - #15
Merged
Merged
Conversation
A new Internet tab browses the tree Clementine's Internet sidebar shows (clementine-player/Clementine#7530), as the Android remote does: the services with their icons, and the nodes below them, level by level. Tapping a track or stream plays it, or adds it while Clementine is playing; touch and hold for Play now, Play next, Add to playlist and Replace playlist, and an opened album or playlist has Play and Add to playlist. Levels show Clementine's loading and "set up first" states, update as Clementine sends changes, and page through long lists. The tab is only there for Clementine that advertises SERVER_FEATURE_BROWSE. InternetBrowser in ClementineKit keeps the levels, merges pages and updates, and forgets node ids on each new connection, with tests. Clementine's latest release no longer knows --experimental-remote- streaming and exits on options it doesn't know, so the screenshots only pass it to releases that have it. They add the Internet tab. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015dJQ8hcp9Vd6tD9gJAXxTx
ScreenshotsFrom run 36595143930, against a real Clementine. Left: main. Right: this pull request, light and dark.
|
Searching expands the search field over the tab bar, so the Internet tab couldn't be found after the search screenshot. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015dJQ8hcp9Vd6tD9gJAXxTx
An opened album or playlist doesn't say "0 items" before Clementine first answers, and the new strings take the Android client's translations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015dJQ8hcp9Vd6tD9gJAXxTx
The CI Clementine gets three saved radio streams, so "Your radio streams" has something to show without depending on a service online. The screenshots open it after the Internet tab's top level, as 11_internet_radio, as the Android client's do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015dJQ8hcp9Vd6tD9gJAXxTx
"Your radio streams" is the last of Clementine's services, below the fold, and a list only has the rows in sight. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015dJQ8hcp9Vd6tD9gJAXxTx
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.































Adds support for browsing Clementine's Internet services from the remote, allowing users to browse services like SomaFM, Plex, and others, and add tracks or streams to the playlist.
Changes
Protocol: Extended
remotecontrolmessages.protowith new message types for browsing:REQUEST_BROWSE/BROWSEfor requesting and receiving node hierarchiesREQUEST_BROWSE_ADD/BROWSE_ADD_RESULTfor adding nodes to the playlistBrowseNodeKind,BrowseChildren,BrowsePlayability,BrowseState,BrowseAddAction,BrowseAddResultSERVER_FEATURE_BROWSEto indicate server capabilityBackend: Added
InternetBrowserclass to manage browsing state:UI: Added
InternetViewand supporting components:Integration:
AppModelto includeInternetBrowserinstancecanBrowseproperty toRemoteSessionbased on server featuresTesting: Added comprehensive
InternetBrowserTestscovering pagination, state transitions, and add operationsThe implementation follows the same patterns as the Library tab and maintains feature parity with the Android client's Internet browsing.
https://claude.ai/code/session_015dJQ8hcp9Vd6tD9gJAXxTx