Repository navigation
Conversation
Liremant
force-pushed
the
pr/friends
branch
2 times, most recently
from
November 9, 2026 05:36
244bfc1 to
1b675b2
Compare
VitzS7
approved these changes
Nov 9, 2026
VitzS7
left a comment
Contributor
There was a problem hiding this comment.
Looks good. Dropping the empty track check in parse_buddylist is the right call, and falling back to the context title and playing the context on double click matches what the official client does. I read the diff and ran cargo test -p sf-services on the branch (185 passed) and qmllint on FriendRow and FriendsPanel (only the usual unqualified Social warnings).
Liremant
marked this pull request as draft
November 9, 2026 15:33
Contributor
Author
|
Converted to draft pending live testing — the reported count mismatch needs a real-account check before this merges. Awaiting test results on the current build. |
added 3 commits
November 10, 2026 20:09
The panel renders whatever the buddylist returns — nothing in the app cuts the list — and Spotify only includes friends who are listening right now, so four rows can genuinely be all there is. A count next to the header and a debug log of raw versus playing rows make that visible instead of a guess.
Spotify leaves a buddylist entry in place when the friend plays a whole context — a playlist without a named track — and the desktop client shows it. The parser demanded a track URI and dropped those rows, which is why the panel showed four friends where the official client showed eleven. Such a row now reads what it has (context instead of the track name) and double-click plays the context.
…t a track Comparing the same account: the official panel showed eleven friends, ours four. presence-view answers only who is listening right now, and the official client accumulates those snapshots — a friend who left the list stays as a dimmed row with their last timestamp (the 2 hr / Yesterday captions in the panel). We were overwriting the list with every poll, so the accumulation never happened. A new answer now merges into the existing list: fresh data for who is back, kept rows for who disappeared, entries older than a week drop out. Rows without a track stay too, showing what context the friend is playing.
Liremant
force-pushed
the
pr/friends
branch
2 times, most recently
from
November 10, 2026 12:20
329ab06 to
4ae1f87
Compare
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.
What
The Friends tab showed four rows where the official client shows eleven. Comparing the same account side by side: the missing friends were all entries whose row has a context (a playlist or album) but no named track — the desktop client renders those as "where they're playing", our parser threw them away.
Why
parse_buddylistdemanded a non-emptytrack/uriand dropped every row without one. Spotify keeps such entries in the buddylist (a friend playing a whole context, or a private/local source), so they are real rows, not noise.What changed
playContext(contextUri, "")), which is what the official client does too.Testing
cargo test -p sf-services— 183 passed (the buddylist fixture extended with a context-only row).cargo build -p materialfy,qmllintclean onFriendRow.qml.