Summary
Follow-up to #276. Once the watch app can sync subscriptions/queue and stream episodes over its own LTE connection, add the ability to push a downloaded episode file from the phone to the watch, so it can be played without any network connection at all (LTE dead zone, watch left on airplane mode, etc.).
Scope
- Transfer the file at
FeedItem.downloadedFilePath to the watch's local storage over the Data Layer API (or ChannelClient for larger payloads).
- Extend the watch's
MediaSessionService to prefer a locally-transferred file over streaming, mirroring the phone's PlaybackUrlResolver/PlaybackMediaItemFactory local-vs-stream resolution pattern.
- Storage management on the watch (eviction policy, similar to
Feed.maxDownloadsToKeep on the phone) since watch storage is limited.
- UI affordance on phone and/or watch to trigger "send to watch" for a downloaded episode.
Depends on
#276 (subscription/queue sync and streaming playback must exist first).
Summary
Follow-up to #276. Once the watch app can sync subscriptions/queue and stream episodes over its own LTE connection, add the ability to push a downloaded episode file from the phone to the watch, so it can be played without any network connection at all (LTE dead zone, watch left on airplane mode, etc.).
Scope
FeedItem.downloadedFilePathto the watch's local storage over the Data Layer API (orChannelClientfor larger payloads).MediaSessionServiceto prefer a locally-transferred file over streaming, mirroring the phone'sPlaybackUrlResolver/PlaybackMediaItemFactorylocal-vs-stream resolution pattern.Feed.maxDownloadsToKeepon the phone) since watch storage is limited.Depends on
#276 (subscription/queue sync and streaming playback must exist first).