feat: CarPlay audio app redesign with browse grid, artwork, and Siri search#121
Merged
formatBCE merged 10 commits intomusic-assistant:mainfrom Feb 24, 2026
Merged
feat: CarPlay audio app redesign with browse grid, artwork, and Siri search#121formatBCE merged 10 commits intomusic-assistant:mainfrom
formatBCE merged 10 commits intomusic-assistant:mainfrom
Conversation
- Replace 3-tab layout (Home/Library/Search) with single Library root - Browse section uses CPListImageRowItem with themed category icons (Albums, Playlists, Audiobooks, Radio) matching app's purple theme - Recently Played section loads async below Browse - Add Audiobooks and Radio category navigation - Add KmpHelper bridge methods for audiobooks and radio stations - Expand search to include AUDIOBOOK and RADIO media types - Add AppDelegate for CarPlay scene routing - Defer CarPlay template setup until Koin/KMP is initialized - Register CarPlay files and entitlements in Xcode project - Fix CarPlayContentManager item mapping to use KMP subtitle property Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add .claude/carplay.md with template constraints, file map, and patterns - Update project.md and project-structure.md to reference CarPlay docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add async image loading with NSCache for CarPlay list items, replacing SF Symbol placeholders with actual album/playlist artwork from the server. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace single "Recently Played" section with per-folder image rows (Recently Added Tracks, Random Albums, etc.). Each folder renders as a CPListImageRowItem with up to 8 artwork thumbnails. Empty folders and items without a playable URI are filtered out. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use UIImageAsset to register both light and dark variants of browse category images so they update automatically on appearance change. Light: #E0DEFF bg / #575992 icon. Dark: #404378 bg / #C0C1FF icon.
Replace image row browse with a CPListItem that pushes a CPGridTemplate showing all 7 categories (Artists, Albums, Tracks, Playlists, Audiobooks, Podcasts, Radio). Grid adapts to any CarPlay screen size. Icons rendered without background at 80% size for clarity.
Wire up in-process INPlayMediaIntentHandling so Siri can search and play media. Adds Siri entitlement, Info.plist keys, and AppDelegate intent routing. Siri not yet triggering — tracked in TODO.
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
Complete redesign of CarPlay interface with single root template, 7-category browse grid, dynamic artwork loading, and SiriKit integration for voice-driven search and playback.
Changes
Files Changed
CarPlaySceneDelegate.swift— Complete redesignCarPlayContentManager.swift— Expanded fetch + mappingiOSApp.swift— Intent handler routingSiriIntentHandler.swift— NEW, INPlayMediaIntentHandlingInfo.plist— Siri usage + intentsCarPlay.entitlements— Siri capabilityproject.pbxproj— Register new fileKmpHelper.kt— All category + search methods.claude/carplay.md— NEW, architecture docsREADME.md— Remove duplicate sectionTest Plan
Notes