Summary
Build a standalone Wear OS module (wear/) that runs a companion podcast app on an LTE-capable watch, independent of the phone being nearby.
Since the target watch has LTE, phase 1 does not require moving downloaded audio files to the watch — episodes stream directly from enclosureUrl over the watch's own connection. That keeps this phase self-contained: no dependency on the download subsystem.
Scope
- New
wear/ Gradle module sharing data/local entities/DAOs and data/repository with the phone app.
- Sync of subscriptions/queue (feed item metadata: title, enclosure URL, artwork, playback position) from phone to watch via the Wear OS Data Layer API (
DataClient/MessageClient).
- A
MediaSessionService on the watch module streaming directly from enclosureUrl (lighter than PlaybackController — no local-file-vs-stream branching needed since this phase streams only).
- Bidirectional playback-position sync so phone and watch stay in sync regardless of which device is playing.
- Minimal Wear Compose UI: queue list, now-playing/transport screen.
Out of scope (see follow-up issue)
Sending downloaded episode files to the watch for phone-free/off-LTE playback.
Summary
Build a standalone Wear OS module (
wear/) that runs a companion podcast app on an LTE-capable watch, independent of the phone being nearby.Since the target watch has LTE, phase 1 does not require moving downloaded audio files to the watch — episodes stream directly from
enclosureUrlover the watch's own connection. That keeps this phase self-contained: no dependency on the download subsystem.Scope
wear/Gradle module sharingdata/localentities/DAOs anddata/repositorywith the phone app.DataClient/MessageClient).MediaSessionServiceon the watch module streaming directly fromenclosureUrl(lighter thanPlaybackController— no local-file-vs-stream branching needed since this phase streams only).Out of scope (see follow-up issue)
Sending downloaded episode files to the watch for phone-free/off-LTE playback.