-
Notifications
You must be signed in to change notification settings - Fork 276
Add bulk add episode to playlist toolbar action #4928
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds a bulk "Add to playlist" action to episode lists and the Up Next queue, allowing users to select multiple podcast episodes and add them to playlists. The implementation includes validation to prevent adding custom files or exceeding the 1000-episode playlist limit, along with appropriate analytics tracking for bulk operations.
Changes:
- Added "Add to playlist" toolbar action to multiselect mode for episode lists and Up Next queue
- Refactored
AddToPlaylistFragmentFactoryto accept a list of episodes instead of a single episode - Implemented validation to block adding user episodes and enforce the 1000-episode limit
- Added bulk analytics events (
EPISODE_ADDED_TO_LIST_BULKandEPISODE_REMOVED_FROM_LIST_BULK) - Enhanced UI feedback with appropriate error messages for different limit scenarios
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| menu_multiselect_upnext.xml | Added "Add to playlist" menu item for Up Next multiselect toolbar |
| AddToPlaylistFragmentFactory.kt | Refactored interface to support bulk episodes; added MultiSelect source; changed single-episode method to delegate to bulk method |
| MultiSelectEpisodesHelper.kt | Added addToPlaylist function with validation for user episodes and episode count limits |
| MultiSelectEpisodeAction.kt | Added AddToPlaylist action object and included it in the standard actions list |
| ids.xml | Added menu_add_to_playlist ID resource |
| strings.xml | Added error messages for playlist limits and episode type restrictions |
| AnalyticsEvent.kt | Added bulk episode analytics events |
| AddToPlaylistViewModel.kt | Implemented analytics tracking for bulk add/remove operations |
| AddToPlaylistPage.kt | Changed callback signature to return boolean for validation feedback |
| AddToPlaylistFragment.kt | Enhanced limit validation with differentiated error messages for various scenarios |
| SharingModule.kt | Updated factory implementation to use new bulk episodes interface |
.../src/main/java/au/com/shiftyjelly/pocketcasts/views/multiselect/MultiSelectEpisodesHelper.kt
Show resolved
Hide resolved
There was a problem hiding this 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 13 out of 13 changed files in this pull request and generated no new comments.
geekygecko
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That worked great in my testing. There was only a minor issue, when I navigated to Up Next from the full screen player, I didn't see the snackbar warning that playlists can only contain podcast episodes.
Screen.Recording.2026-01-30.at.1.38.02.pm.mov
c02ad0d to
d132d8d
Compare
97f07dd to
c75676c
Compare
Description
This adds bulk add operation to episode lists and up next queue.
Closes PCDROID-413
Testing Instructions
multi_selectsource in analytics.episode_added_to_list_bulkevent.episode_removed_from_list_bulkevent.Screenshots or Screencast
Checklist
./gradlew spotlessApplyto automatically apply formatting/linting)modules/services/localization/src/main/res/values/strings.xmlI have tested any UI changes...