Skip to content

[TV] Add episode details modal - #5688

Open
sztomek wants to merge 6 commits into
feat/tv-podcast-follow-account-modalfrom
feat/tv-episode-details-modal
Open

[TV] Add episode details modal#5688
sztomek wants to merge 6 commits into
feat/tv-podcast-follow-account-modalfrom
feat/tv-episode-details-modal

Conversation

@sztomek

@sztomek sztomek commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Description

Adds a TV episode details modal and wires it to the "Episode details" action in the episode actions menu. The modal mirrors the existing TvPodcastInfoModal: it's built on the shared TvModal, shows a header (artwork + podcast name + episode title + "date · duration"), an "Episode details" heading, and a D-pad-scrollable description (per Figma, the description scrolls within the modal).

The description is the episode's show notes, loaded on demand via the shared ShowNotesManager (the stored episodeDescription field is frequently empty) and rendered with the shared HtmlText component. While the notes load a spinner is shown; if they can't be found the modal shows an "Unable to find show notes" message. The podcast name is resolved from the episode's podcastUuid via a small TvEpisodeInfoViewModel, so nothing extra has to be threaded through the list screens.

Selecting "Episode details" replaces the actions menu (the menu closes and the details modal opens); Back returns to the episode list. It is reachable from every current entry point that surfaces the episode actions menu:

  • Podcast details episode list
  • Up Next
  • Playlist details

Testing Instructions

  1. Sign in on an Android TV device/emulator with some subscribed podcasts and a non-empty Up Next.
  2. Go to Your Podcasts → open a podcast → focus an episode → open the actions menu → select Episode details.
  3. Confirm the modal shows artwork, podcast name, episode title, "date · duration", a brief loading spinner, then the show notes, and that they scroll with D-pad up/down.
  4. Press Back — the modal closes and focus returns to the episode list.
  5. Repeat from Up Next and from a Playlist's details.
  6. Open details for episodes from two different podcasts in a row and confirm the podcast name and notes are never stale.

Screenshots or Screencast

Screen_recording_20260731_103302.mp4

Checklist

  • If this is a user-facing change, I have added an entry in CHANGELOG.md
  • Ensure the linter passes (./gradlew spotlessApply to automatically apply formatting/linting)
  • I have considered whether it makes sense to add tests for my changes
  • All strings that need to be localized are in modules/services/localization/src/main/res/values/strings.xml
  • Any jetpack compose components I added or changed are covered by compose previews
  • I have updated (or requested that someone edit) the Event Horizon schema to reflect any new or changed analytics. (No analytics in this change.)

I have tested any UI changes...

  • with different themes
  • with a landscape orientation
  • with the device set to have a large display and font size
  • for accessibility with TalkBack

@sztomek sztomek changed the title Add TV episode details modal [TV] Add episode details modal Jul 31, 2026
@sztomek sztomek added this to the 8.18 milestone Jul 31, 2026
@sztomek sztomek added [Type] Feature Adding a new feature. [Area] TV labels Jul 31, 2026
@sztomek
sztomek marked this pull request as ready for review July 31, 2026 08:44
@sztomek
sztomek requested a review from a team as a code owner July 31, 2026 08:44
@sztomek
sztomek requested review from geekygecko and removed request for a team July 31, 2026 08:44
@sztomek sztomek mentioned this pull request Jul 31, 2026
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Area] TV [Type] Feature Adding a new feature.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant