🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/advplyr/audiobookshelf-app/pull/1810
**Author:** [@Pittermaennchen](https://github.com/Pittermaennchen)
**Created:** 2/22/2026
**Status:** 🔄 Open
**Base:** `master` ← **Head:** `master`
---
### 📝 Commits (6)
- [`2e1e0fc`](https://github.com/advplyr/audiobookshelf-app/commit/2e1e0fc1dad319f93b785c20fb01334fce6c7279) feat: auto-play next episode when playing podcast playlists
- [`5b49b88`](https://github.com/advplyr/audiobookshelf-app/commit/5b49b88fd40d39b1682f2ace029346f62381fba6) fix: forward ENDED metadata event to JS when app is backgrounded
- [`e243477`](https://github.com/advplyr/audiobookshelf-app/commit/e24347742b41ee6fab8cef92990e782b995bd9c9) fix: use correct app icons in debug build
- [`d5761a7`](https://github.com/advplyr/audiobookshelf-app/commit/d5761a7d57e3d4e3be3571728e50fb27fbea2403) fix: advance podcast playlist natively to survive Android Doze mode
- [`fc028d4`](https://github.com/advplyr/audiobookshelf-app/commit/fc028d482922b68769eb16a9a5b4d721cd999361) fix: keep CPU/network awake during podcast playlist advancement
- [`083d151`](https://github.com/advplyr/audiobookshelf-app/commit/083d1511f0936f217de1dbaeec20bc4472e0f51f) fix: robust background playlist advancement for podcast playlists
### 📊 Changes
**34 files changed** (+386 additions, -27 deletions)
<details>
<summary>View changed files</summary>
➕ `CLAUDE.md` (+95 -0)
📝 `android/app/src/debug/res/mipmap-hdpi/ic_launcher.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-hdpi/ic_launcher_background.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-mdpi/ic_launcher.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-mdpi/ic_launcher_background.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xhdpi/ic_launcher.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xhdpi/ic_launcher_background.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_background.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_background.png` (+0 -0)
📝 `android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png` (+0 -0)
_...and 14 more files_
</details>
### 📄 Description
## Summary
- When playback ends while a playlist queue is active, automatically start the next episode instead of stopping
- Add `playlistQueue` state to Vuex store to track current playlist context (`playlistId`, `items`, `currentIndex`)
- Set queue context in `playlist/_id.vue` when the play button is pressed
- Pass playable items down to `ItemTableRow` so individual episode clicks also set up the queue for sequential playback
- Emit `playback-ended` event from `AudioPlayer` on `STATE_ENDED`
- Handle `playback-ended` in `AudioPlayerContainer` to advance the queue and trigger the next `play-item`; clear queue when playing outside a playlist
## Test plan
- [x] Open the Podcasts library and navigate to a playlist
- [x] Press the playlist play button and verify the first unfinished episode starts playing
- [x] Wait for the episode to end and verify the next episode in the playlist starts automatically
- [x] Verify playback stops after the last episode in the playlist
- [x] Click an individual episode in the playlist table and verify auto-play continues to the next episode
- [x] Play an item outside of a playlist and verify the queue is cleared (no unintended auto-play)
- [x] Test with locally downloaded episodes as well as streamed episodes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/advplyr/audiobookshelf-app/pull/1810
Author: @Pittermaennchen
Created: 2/22/2026
Status: 🔄 Open
Base:
master← Head:master📝 Commits (6)
2e1e0fcfeat: auto-play next episode when playing podcast playlists5b49b88fix: forward ENDED metadata event to JS when app is backgroundede243477fix: use correct app icons in debug buildd5761a7fix: advance podcast playlist natively to survive Android Doze modefc028d4fix: keep CPU/network awake during podcast playlist advancement083d151fix: robust background playlist advancement for podcast playlists📊 Changes
34 files changed (+386 additions, -27 deletions)
View changed files
➕
CLAUDE.md(+95 -0)📝
android/app/src/debug/res/mipmap-hdpi/ic_launcher.png(+0 -0)📝
android/app/src/debug/res/mipmap-hdpi/ic_launcher_background.png(+0 -0)📝
android/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png(+0 -0)📝
android/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png(+0 -0)📝
android/app/src/debug/res/mipmap-mdpi/ic_launcher.png(+0 -0)📝
android/app/src/debug/res/mipmap-mdpi/ic_launcher_background.png(+0 -0)📝
android/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.png(+0 -0)📝
android/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png(+0 -0)📝
android/app/src/debug/res/mipmap-xhdpi/ic_launcher.png(+0 -0)📝
android/app/src/debug/res/mipmap-xhdpi/ic_launcher_background.png(+0 -0)📝
android/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png(+0 -0)📝
android/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png(+0 -0)📝
android/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png(+0 -0)📝
android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_background.png(+0 -0)📝
android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png(+0 -0)📝
android/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png(+0 -0)📝
android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png(+0 -0)📝
android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_background.png(+0 -0)📝
android/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png(+0 -0)...and 14 more files
📄 Description
Summary
playlistQueuestate to Vuex store to track current playlist context (playlistId,items,currentIndex)playlist/_id.vuewhen the play button is pressedItemTableRowso individual episode clicks also set up the queue for sequential playbackplayback-endedevent fromAudioPlayeronSTATE_ENDEDplayback-endedinAudioPlayerContainerto advance the queue and trigger the nextplay-item; clear queue when playing outside a playlistTest plan
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.