diff options
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -143,6 +143,21 @@ intro/outro skipping. Schema fields for manual skip offsets exist but nothing re - **Feeds are big.** A real subscription in testing produced 2753 episodes in one refresh. Any per-episode work — a query in a loop, an O(n²) match — needs to be considered at that scale. +- **The service is a `MediaLibraryService`, not a `MediaSessionService`.** Android Auto only + treats an app as driving-friendly if it can browse a media library. Three things are each + individually fatal and none of them fail loudly: the `automotive_app_desc.xml` meta-data must + sit at *application* level, the service must be `exported` (the controller is another + process), and `onConnect` must grant `DEFAULT_SESSION_AND_LIBRARY_COMMANDS` — with plain + `DEFAULT_SESSION_COMMANDS` a car connects successfully and then gets PERMISSION_DENIED on the + library root. `MediaBrowseTest` walks the tree over the real protocol to catch all three. + +- **Car head units show about three transport controls.** Leave `COMMAND_SEEK_TO_PREVIOUS`/`NEXT` + available and they take the slots, pushing skip-forward off the screen. They are removed in + `onConnect` so the seek buttons get the room. + +- **XML comments cannot contain `--`.** The house prose style uses it constantly and it makes + the manifest unparseable, with a merge error that doesn't name the line. + - **The playing episode is always the head of the queue.** `advance()` drops the head, so if something played from a show list isn't there, finishing it deletes a queued episode unplayed. `play()` calls `playNow()` first to hold that invariant. Don't add a playback entry point that |
