Merged
Conversation
MiSikora
commented
Jan 27, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds the ability to add an episode to a playlist directly from the episode details screen. Previously, this functionality was only available from other screens like the shelf.
Changes:
- Refactored the "Add to Up Next" button to become a general "Add" button that shows a menu with options to add to Up Next (top/bottom) or to a playlist
- Updated string resources to improve capitalization consistency for "Up Next" references
- Added infrastructure for showing snackbars in dialog contexts by adding
snackBarView()method toBaseDialogFragmentandcloseDialogs()toFragmentHostListener
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| modules/services/views/src/main/java/au/com/shiftyjelly/pocketcasts/views/swipe/AddToPlaylistFragmentFactory.kt | Added new EpisodeDetails source for analytics tracking when adding to playlist from episode details |
| modules/services/views/src/main/java/au/com/shiftyjelly/pocketcasts/views/fragments/BaseDialogFragment.kt | Added snackBarView() method to support showing snackbars in dialogs |
| modules/services/ui/src/main/java/au/com/shiftyjelly/pocketcasts/ui/helper/FragmentHostListener.kt | Added closeDialogs() method to the interface for closing all dialogs |
| modules/services/localization/src/main/res/values/strings.xml | Updated "Up Next" string capitalization for consistency and added new "Add" button label |
| modules/features/podcasts/src/main/res/layout/fragment_episode_container.xml | Added CoordinatorLayout for snackbar display in episode details |
| modules/features/podcasts/src/main/res/layout/fragment_episode.xml | Renamed button ID from btnAddToUpNext to btnAddEpisode to reflect new functionality |
| modules/features/podcasts/src/main/res/layout-land/fragment_episode.xml | Updated landscape layout with renamed button and constraint references |
| modules/features/podcasts/src/main/java/au/com/shiftyjelly/pocketcasts/podcasts/view/episode/EpisodeFragmentViewModel.kt | Refactored Up Next logic into separate methods (addToUpNextTop(), addToUpNextBottom(), removeFromUpNext()) and removed reactive Up Next state tracking |
| modules/features/podcasts/src/main/java/au/com/shiftyjelly/pocketcasts/podcasts/view/episode/EpisodeFragment.kt | Replaced toggle button behavior with menu dialog showing Up Next and playlist options |
| modules/features/podcasts/src/main/java/au/com/shiftyjelly/pocketcasts/podcasts/view/episode/EpisodeContainerFragment.kt | Implemented snackBarView() to return the CoordinatorLayout for snackbar display |
| modules/features/filters/src/main/java/au/com/shiftyjelly/pocketcasts/playlists/manual/AddToPlaylistFragment.kt | Added closeDialogs() call to close episode details when navigating to newly created playlist |
| app/src/main/java/au/com/shiftyjelly/pocketcasts/ui/MainActivity.kt | Implemented closeDialogs() and updated snackBarView() to check for dialog-specific snackbar views |
| CHANGELOG.md | Added entry documenting the new feature |
Comments suppressed due to low confidence (1)
modules/features/podcasts/src/main/res/layout-land/fragment_episode.xml:116
- The
btnAddEpisodebutton in the landscape layout is missing theandroid:contentDescriptionattribute that is present in the portrait layout. For consistency and accessibility, addandroid:contentDescription="@string/podcasts_add_episode"to this view.
<au.com.shiftyjelly.pocketcasts.podcasts.view.episode.ToggleActionButton
android:id="@+id/btnAddEpisode"
android:layout_width="0dp"
android:layout_height="wrap_content"
tools:background="@tools:sample/avatars"
app:layout_constraintStart_toEndOf="@+id/btnDownload"
app:layout_constraintEnd_toStartOf="@+id/btnPadding"
app:layout_constraintTop_toTopOf="@+id/btnDownload"
app:layout_constraintHorizontal_chainStyle="packed" />
9af0acc to
7d6c862
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
modules/features/podcasts/src/main/res/layout-land/fragment_episode.xml:116
- The landscape layout is missing the
android:contentDescriptionattribute for thebtnAddEpisodebutton. Addandroid:contentDescription="@string/podcasts_add_episode"to match the portrait layout and ensure proper accessibility support with TalkBack.
<au.com.shiftyjelly.pocketcasts.podcasts.view.episode.ToggleActionButton
android:id="@+id/btnAddEpisode"
android:layout_width="0dp"
android:layout_height="wrap_content"
tools:background="@tools:sample/avatars"
app:layout_constraintStart_toEndOf="@+id/btnDownload"
app:layout_constraintEnd_toStartOf="@+id/btnPadding"
app:layout_constraintTop_toTopOf="@+id/btnDownload"
app:layout_constraintHorizontal_chainStyle="packed" />
|
Could we have a long press to do a spefic command in settings? |
geekygecko
approved these changes
Jan 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Description
This allows to add episode to a playlist from episode details view.
Closes PCDROID-412
Testing Instructions
episode_detailsanalytics value source.Screenshots or Screencast
Checklist
./gradlew spotlessApplyto automatically apply formatting/linting)modules/services/localization/src/main/res/values/strings.xmlI have tested any UI changes...