Overview & Background
Subscribed podcasts imported directly via custom RSS URLs (or OPML) are currently treated as second-class citizens compared to catalog shows, refreshing mostly on-demand. Since the app fetches subscribed feeds directly from their source RSS endpoints, pure RSS feeds should have full parity with catalog podcasts.
Proposed Scope
- Periodic Background Synchronization:
- Incorporate subscribed pure RSS feeds into the background WorkManager refresh cadence alongside catalog shows.
- Respect conditional HTTP headers (
ETag, If-Modified-Since) to minimize unnecessary data usage and battery drain.
- New Episode Notifications:
- Detect newly published episodes during background sync for pure RSS feeds.
- Dispatch notifications based on the user's notification preferences for that show.
- Automatic & Smart Downloads:
- Enable per-show "Auto Download" toggles for pure RSS feeds (e.g., download newest 1/3/5 episodes).
- Integrate pure RSS episodes into
SmartDownloadManager queue refill logic.
- Identity & Storage Contracts:
- Maintain strict backward compatibility for
rss: URI prefixes and negative ID mappings in Room.
- Ensure episodic supplements and episode GUIDs remain stable across feed refreshes.
Acceptance Criteria
Overview & Background
Subscribed podcasts imported directly via custom RSS URLs (or OPML) are currently treated as second-class citizens compared to catalog shows, refreshing mostly on-demand. Since the app fetches subscribed feeds directly from their source RSS endpoints, pure RSS feeds should have full parity with catalog podcasts.
Proposed Scope
ETag,If-Modified-Since) to minimize unnecessary data usage and battery drain.SmartDownloadManagerqueue refill logic.rss:URI prefixes and negative ID mappings in Room.Acceptance Criteria
rss:IDs, negative ID conventions).