Skip to content

Seek from the lock screen, and show the cover of the song playing here - #48

Merged
hatstand merged 1 commit into
mainfrom
claude/project-thread-65hya0
Oct 6, 2026
Merged

hatstand merged 1 commit into
mainfrom
claude/project-thread-65hya0

Conversation

@hatstand

@hatstand hatstand commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Requested by John · project thread

Before: while Clementine plays on the iPhone, Now Playing on the lock screen and in Control Center has no position bar to drag, although Android's notification can seek. Right after a song change it can show the previous song's cover. That lasts until the next status update, or longer while paused.

After: you can drag the position bar for songs that have a length, and Clementine seeks. The cover only appears once Clementine's current song is the one playing on the phone, and it refreshes as soon as that song arrives.

How: NowPlaying registers changePlaybackPositionCommand, sending Clementine a seek, and enables it only when the item has a length. The cover comes from session.song only when its URL matches the render item's song. The cover is cached so it isn't decoded again on every once-a-second update. AppModel also refreshes Now Playing on CURRENT_METAINFO. design/DESIGN.md is updated to match.

This was not built locally because the session had no Xcode, so CI is the first build.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DihgxevQ7a59sF9RFc4Wby


Generated by Claude Code

@hatstand hatstand self-assigned this Oct 6, 2026

hatstand commented Oct 6, 2026

Copy link
Copy Markdown
Contributor Author

The app job (and CI, which only checks the other jobs passed) is red at Check the String Catalog has the app's strings. That failure isn't from this PR. Build and all 117 tests pass. The PR adds no user-visible strings, yet the catalog check fails with the same 3-line change on main at 58f85d3 (run). The check was added to main after this branch was cut, and CI tests the merge with main.

No fix for main's catalog exists yet to port in, and I can't regenerate it without a Mac. I'll merge main and re-run once its catalog is fixed. #47 is changing the catalog too and may be where that fix lands.


Generated by Claude Code

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Screenshots

From run 37544971558, against a real Clementine. Left: main. Right: this pull request, light and dark.

Screen main This PR This PR, dark
01_connect
02_queue
03_player
04_connection
05_settings
06_library
07_library_album
08_search
09_outputs
10_internet
11_internet_radio

@hatstand
hatstand marked this pull request as ready for review October 6, 2026 23:09
@hatstand
hatstand enabled auto-merge (rebase) October 6, 2026 23:09
While Clementine plays on the phone, Now Playing had no position bar to
drag, though Android's notification seeks. And it took the cover from
Clementine's current song whatever was playing here, so after a change of
song it could show the previous song's cover, until the next status update
or, when paused, until something else changed. The cover is now only shown
once Clementine's song is the one playing here, refreshed when the song
arrives, and decoded once rather than on every update.

Release-note: While Clementine plays on your iPhone, you can seek from the lock screen, and it no longer shows the previous song's cover after a change of song.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DihgxevQ7a59sF9RFc4Wby
@hatstand
hatstand force-pushed the claude/project-thread-65hya0 branch from 5bf83bf to 0f593f5 Compare October 6, 2026 23:09
@hatstand
hatstand merged commit 23092a7 into main Oct 6, 2026
4 checks passed
@hatstand
hatstand deleted the claude/project-thread-65hya0 branch October 6, 2026 23:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants