Skip to content

Episode summaries tweaks#5335

Merged
sztomek merged 10 commits into
mainfrom
feat/radical-episode-summaries-tweaks
May 25, 2026
Merged

Episode summaries tweaks#5335
sztomek merged 10 commits into
mainfrom
feat/radical-episode-summaries-tweaks

Conversation

@geekygecko
Copy link
Copy Markdown
Member

@geekygecko geekygecko commented May 24, 2026

Description

Tweaks the episode page UI and state handling for the PR #5276

This PR:

  • Consolidates episode summary, transcript, Plus status, selected tab, and date/duration data into a single
    EpisodePageState.
  • Alters the episode date/duration layout spacing.
  • Simplifies ButtonTabs unused attributes.
  • Removes the text animation when switching between Description and Summary.
  • Uses darker primary text for summary body content.
  • Changed the button tabs on the dark theme.

Testing Instructions

  1. Enable the AI Summaries feature flag in dev settings
  2. Select a podcast that has generated transcripts (e.g. The American Life)
  3. Select a podcast episode to open its details
  4. Notice the tabbed UI: Description / Summary / Transcript tabs
  5. Tap the "Summary" tab
  6. Observe the summary rendered inline below the tabs

Screenshots

Light Dark
Screenshot_20260524_224402 Screenshot_20260524_224420
Without Chat Without Both
Screenshot_20260525_075353 Screenshot_20260525_075436

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 spreadsheet to reflect any new or changed analytics.

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

Copilot AI review requested due to automatic review settings May 24, 2026 12:17
@dangermattic
Copy link
Copy Markdown
Collaborator

dangermattic commented May 24, 2026

1 Warning
⚠️ This PR is assigned to the milestone 8.13. The due date for this milestone has already passed.
Please assign it to a milestone with a later deadline or check whether the release for this milestone has already been finished.

Generated by 🚫 Danger

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Tweaks the episode details UI/state for the AI Summaries surface introduced in #5276 by consolidating related state into a single EpisodePageState, simplifying tab rendering, and adjusting layout spacing/typography for the summary view.

Changes:

  • Consolidates transcript/summary/Plus status/tab selection/date+duration into EpisodePageState and updates UI bindings to consume it.
  • Adjusts episode header spacing by introducing a padding spacer + barrier above the title when the AI date/duration row is present/absent.
  • Simplifies ButtonTabs by removing unused icon/trailing-icon support and removes the summary text animation while darkening summary body text.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
modules/services/compose/src/main/java/au/com/shiftyjelly/pocketcasts/compose/buttons/ButtonTabs.kt Removes icon/trailing icon support from ButtonTab and simplifies tab content.
modules/features/podcasts/src/main/res/layout/fragment_episode.xml Updates constraints/spacing for the episode date+duration row and title positioning.
modules/features/podcasts/src/main/java/au/com/shiftyjelly/pocketcasts/podcasts/view/episode/EpisodeFragmentViewModel.kt Introduces EpisodePageState and migrates multiple independent flows into a single StateFlow.
modules/features/podcasts/src/main/java/au/com/shiftyjelly/pocketcasts/podcasts/view/episode/EpisodeFragment.kt Updates Compose content to read from pageState, removes summary animation, and tweaks summary text styling.

Copilot AI review requested due to automatic review settings May 24, 2026 12:53
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

modules/features/podcasts/src/main/java/au/com/shiftyjelly/pocketcasts/podcasts/view/episode/EpisodeFragment.kt:746

  • ButtonTabs is passed backgroundColor = primaryUi01 here, but ButtonTabs' default textSelectedColor is still primaryUi02. In dark themes primaryUi01 and primaryUi02 differ, so the selected tab text won't blend with the row background as intended. Pass textSelectedColor = MaterialTheme.theme.colors.primaryUi01 (or adjust ButtonTabs defaults) to keep the selected text/background pairing consistent.
                            ButtonTabs(
                                tabs = tabs,
                                selectedTab = selectedButtonTab,
                                backgroundColor = MaterialTheme.theme.colors.primaryUi01,
                                modifier = Modifier
                                    .fillMaxWidth()
                                    .padding(top = 4.dp),
                            )

Copilot AI review requested due to automatic review settings May 24, 2026 13:16
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Comment thread modules/features/podcasts/src/main/res/layout/fragment_episode.xml
@geekygecko geekygecko marked this pull request as ready for review May 24, 2026 22:32
@geekygecko geekygecko requested a review from a team as a code owner May 24, 2026 22:32
@geekygecko geekygecko requested review from Copilot and sztomek and removed request for a team May 24, 2026 22:32
@geekygecko geekygecko added this to the 8.13 milestone May 24, 2026
@geekygecko geekygecko added [Type] Enhancement Improve an existing feature. [Area] Episode Popup Episode popup shown when tapping an episode row Enhancement labels May 24, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Copy link
Copy Markdown
Contributor

@sztomek sztomek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for these changes!

Base automatically changed from feat/radical-episode-summaries to main May 25, 2026 08:50
Copilot AI review requested due to automatic review settings May 25, 2026 08:52
@sztomek sztomek force-pushed the feat/radical-episode-summaries-tweaks branch from c43d968 to 3a107a0 Compare May 25, 2026 08:52
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

@sztomek sztomek merged commit 80542ac into main May 25, 2026
19 checks passed
@sztomek sztomek deleted the feat/radical-episode-summaries-tweaks branch May 25, 2026 09:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Area] Episode Popup Episode popup shown when tapping an episode row Enhancement [Type] Enhancement Improve an existing feature.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants