fix(mediacontrols): answer "no artwork" instead of saying nothing #80
Closed
logan
wants to merge 1 commits from
fix/mpris-stale-art into main
pull from: fix/mpris-stale-art
merge into: yonlu:main
yonlu:main
yonlu:perf/279-284-scoped-library-payloads
yonlu:batch/274-276-slskd
yonlu:batch/258-272
yonlu:fix/263-slskd-transfer-lifecycle
yonlu:fix/271-slskd-search-recall
yonlu:fix/270-slskd-candidate-shape
yonlu:build/265-go-1.26
yonlu:feat/264-explore-cards
yonlu:fix/258-artifact-blob-cursor
yonlu:docs/256-claude-md-split
yonlu:batch/248-249
yonlu:fix/248-artist-metadata-sweep
yonlu:fix/247-cover-art-orphans
yonlu:fix/249-unbounded-growth
yonlu:fix/246-incremental-scan-phantoms
yonlu:fix/183-phantom-across-retire
yonlu:fix/243-model-fallback
yonlu:feat/31-play-all-shuffle-all
yonlu:fix/240-loop-operational-fixes
yonlu:docs/220-skill-check-scope
yonlu:fix/231-setter-rollback
yonlu:fix/197-duplicate-column-label
yonlu:fix/175-wizard-follows-the-library
yonlu:fix/146-stub-etxtbsy
yonlu:docs/225-fixtures-wav-tags
yonlu:feat/238-merge-leg-refresh-watch
yonlu:feat/236-autonomous-backlog-loop
yonlu:test/217-fixture-names-in-queue-selection
yonlu:fix/216-riff-parse-allocation
yonlu:fix/170-queue-header-action-names
yonlu:fix/210-nav-sheet-scroll-affordance
yonlu:docs/50-readme-landing-page
yonlu:feat/65-art-prefetch-ahead
yonlu:feat/71-more-as-a-bottom-sheet
yonlu:feat/54-native-touch-feel
yonlu:feat/67-entity-links-into-menus
yonlu:test/196-visual-tier-gates
yonlu:fix/138-ui-test-storage-leak
yonlu:fix/104-wav-tags-read
yonlu:fix/207-sheet-scroll-affordance
yonlu:fix/204-ui-visual-update-filter
yonlu:pi-agent-backlog-automation
yonlu:63-touch-model-phase-2
yonlu:63-android-touch-model
yonlu:186-touch-targets-settings
yonlu:186-touch-targets-page-header
yonlu:187-seek-bar-hit-area
yonlu:189-190-explore-correctness
yonlu:135-android-underrun-instrumentation
yonlu:51-android-small-screens
yonlu:fix/171-phone-queue-scrim
yonlu:fix/137-touch-only-affordances
yonlu:fix/154-nested-css-check
yonlu:feat/58-mini-player-progress-line
yonlu:fix/66-album-page-scrolls-as-one
yonlu:60-context-menu-action-sheet
yonlu:64-android-system-volume
yonlu:59-slim-the-mini-player
yonlu:55-queue-as-a-screen
yonlu:feat/57-drop-the-android-top-bar
yonlu:feat/62-jobs-as-a-notification
yonlu:fix/53-seek-bar-never-moves
yonlu:fix/159-android-task-app-id
yonlu:fix/52-android-activity-recreation-restarts-the-process
yonlu:fix/150-expand-button-under-the-art
yonlu:feat/42-inline-volume-and-centred-transport
yonlu:fix/156-queue-selection-fixture-order
yonlu:fix/151-fuse-the-scroll-guard-and-the-write
yonlu:fix/43-queue-panel-selection
yonlu:fix/143-top-bar-fits-its-window
yonlu:feat/27-jobs-into-settings
yonlu:feat/25-configurable-sidebar-tabs
yonlu:feat/6-global-back-forward
yonlu:fix/72-active-view-broadcast
yonlu:fix/69-page-header-action-overflow
yonlu:fix/quick-wins-batch
yonlu:fix/118-in-library-clear
yonlu:fix/61-mini-player-plain-text
yonlu:fix/68-hover-affordances-pointer
yonlu:fix/119-dev-headless-port
yonlu:fix/130-issue-claim-user
yonlu:fix/131-codegen-check-scope
yonlu:feat/28-autotag-match-on-album
yonlu:feat/17-demote-version-selector
yonlu:feat/38-ownership-visibility
yonlu:ci/115-manual-release
yonlu:feat/34-icon-language
yonlu:feat/7-full-tracklist-toggle
yonlu:fix/16-tagwriter-totals
yonlu:fix/unclaim-ca-certs
yonlu:fix/unclaim-shell
yonlu:ci/unclaim-on-close
yonlu:docs/closing-keyword
yonlu:docs/retire-stale-planning-docs
yonlu:docs/issue-driven-workflow
yonlu:integration/small-fixes
yonlu:fix/small-issue-batch
yonlu:fix/queue-toggle-state
yonlu:fix/drag-count-badge
yonlu:fix/album-card-year
yonlu:fix/album-tracklist-heading
yonlu:fix/seek-bar-clock-width
yonlu:fix/explore-art-scanner-requests
yonlu:chore/workflow-guardrails
1
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
128fa85a65 |
fix(mediacontrols): answer "no artwork" instead of saying nothing
A track with no cover art omitted mpris:artUrl entirely, and KDE's media controller keeps showing the last image it was handed -- so the taskbar preview for an untagged track displayed the cover of whichever earlier album happened to have one, where the user has no way to tell it is stale. The key is now always published, empty when there is nothing. Omitting a field is what an absent value naturally reads as, and artwork is the one field where that is wrong. The dictionary build is extracted so it can be asserted on without a bus. Every other field stays absent when empty -- a title of "" would make players show a blank line where they would otherwise fall back to the filename. Refs #41 |