Podcast played/unplayed tracking + play queue (podcast-app model) #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Make the Podcasts tab behave like a real podcast app: track which episodes are new/unplayed vs played, and let me queue up all the unplayed ones for continuous listening. Once an episode finishes, it moves out of the unplayed list into a Played list.
Motivation
Right now the library is a flat, reverse-chronological list. There's no notion of what I've heard vs. what's new, and no way to just hit play and roll through everything unplayed.
Behavior
Current state of the code
PodcastEntry(Marks/Services/PodcastIndex.swift) has no played flag — needs a new field (e.g.playedAt: Date?or aPlayStateenum) plus migration for the existingindex.json.PodcastProgress(Marks/Views/PodcastPlayerView.swift) already persists per-URL position and clears at >97% completion / <10s. The completion crossing (~line 240, the 97% analytics event) and the play-to-end handler (~line 200) are the natural hooks to flip state to played.PodcastPlayerViewModelis single-episode today — no queue, no auto-advance. This needs a queue model (ordered list of unplayedPodcastEntrys) and "advance to next on completion".PodcastLibraryViewrenders the flat list; it needs the Unplayed/Played split + a "Play all" affordance.Notes / dependencies