Automattic / Automattic/pocket-casts-android
Add a contextual Play/Shuffle button to podcast pages for instant playback based on active sort/filters
- Dominant language
- Kotlin
- Stars
- 2.8k
- Forks
- 308
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 197
Description
### Description
**Current Behavior**:
On a podcast’s main page:
- Users can sort episodes (e.g., Oldest to Newest, A-Z, duration).
- To play *all* episodes or shuffle them, users must:
**Method A**: Manually select multiple episodes, then rely on Up Next shuffle feature (tedious for large libraries).
**Method B**: Leave the podcast page:
1. Navigate to **Filters → “Play All”**.
2. Reconfigure sorting/filters *again* (even if already set on the podcast page).
**Issues with the Existing “Play All” in Filters**:
- ❌ Requires navigating away from the podcast page.
- ❌ Does not use the podcast page’s active sort/filter settings (users must reconfigure).
- ❌ Lacks a “shuffle” option without additional steps (e.g., Up Next shuffle feature).
**Suggested Improvement**:
Add a **floating play button** directly on the podcast page:
- **Single tap**: Starts playback from the **first episode** in the *currently visible list* (respecting active sort order, e.g., “Oldest to Newest”).
- **Long press**: Shows a menu with:
- **Play All** (entire podcast, in sorted order).
- **Shuffle All** (entire podcast, ignoring order).
- The button honors filters applied on the podcast page (e.g., unplayed episodes, downloaded-only).
**Example Workflow**:
1. User sorts a podcast’s episodes by “Oldest to Newest” on the podcast page.
2. Taps the play button → playback starts from the oldest episode, continuing in order.
3. Long-presses the button → selects “Shuffle All” → all episodes play randomly.
**Why This Matters**:
- **Faster access**: No need to leave the podcast page or recreate settings.
- **Context-aware**: Uses the user’s *current* view (sort/filter) instead of redundant setup.
- **Consistency**: Matches patterns in apps like Spotify/YouTube, where play/shuffle buttons are prominently placed.
---
### **Additional Context**
- **Related to #3503** (request for random/shuffle playback), but focuses on leveraging *existing* user context (sort/filter) for a seamless experience.
- **Mockup example**: Place the button near the podcast artwork or above the episode list (similar to Spotify’s “Shuffle Play” button).
### Screenshots or screen recording
_No response_
### Did you search for existing list?
- [x] I have searched for existing issues.
Contributor guide
Research direction
No files or tests are named. Start by locating the podcast page and the existing Filters → Play All playback flow, then review related issue #3503. Done means a contextual button uses the active sort and filters for immediate playback and offers Play All and Shuffle All without leaving the podcast page.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- audio-video-rtc, mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100