Skip to content

Feat(album): add a whole album to a local playlist as one entry - #2694

Open
lenvora wants to merge 4 commits into
maxrave-dev:devfrom
lenvora:feat/add-album-to-playlist
Open

lenvora wants to merge 4 commits into
maxrave-dev:devfrom
lenvora:feat/add-album-to-playlist

Conversation

@lenvora

@lenvora lenvora commented Oct 17, 2026 •

Copy link
Copy Markdown

What & why

Add a whole album to a local playlist as a single entry instead of one row per track. The album is stored in the existing pair_song_local_playlist table with a nullable songId plus an itemType discriminator (Migration 27→28). Tapping the row plays the album, double-tapping opens its page; the entry can be dragged, reordered and removed like a song row, and playing the playlist from the top plays each album's tracks where the album sits. YouTube sync and backup are untouched, because album rows never enter LocalPlaylistEntity.tracks.

Core side: maxrave-dev/core#42

Linked issue

Closes #2178

Checklist

  • This PR addresses an accepted issue (linked above)
  • I wrote or personally reviewed every line of this change
  • I tested it on Android and/or Desktop (say which, and how)

Tested on Android (debug universal APK) and Desktop (Linux/Wayland, jpackage build): the album shows as one row, single tap plays it, double tap opens the album page, drag/reorder and remove work. Migration 27→28 was verified against a real database.

Adds an 'Add to a playlist' action to the album bottom sheet that opens
the local playlist picker and appends every track of the album in album
order, reusing SongSelectionViewModel.addToPlaylist.
"Add to a playlist" on an album now stores the album itself and the list
shows it as a single row. Tapping it plays the album and carries on into
the rest of the list, double tapping opens the album page, and its sheet
can open or remove it; dragging already reorders it.

The queue is built whole from the database so an album expands in place,
and it follows the visible order — added-time for the time filters,
stored position otherwise. Album rows take no YouTube action (they have
nothing to sync, back up or queue) and removal goes by entry id, since a
song's videoId never matches a NULL songId.

Also bump core.
@github-actions

Copy link
Copy Markdown

Thanks for the PR! Please complete the pull request template — in particular the checkbox confirming you wrote or personally reviewed every line, and the issue this change addresses. It helps us tell real contributions from the flood of auto-generated ones. Edit your PR description; no need to open a new PR.

@github-actions github-actions Bot added the needs-template PR template incomplete — see the triage comment label Oct 17, 2026
Picks up core 6e95d12, which plays a track's audio upload when its
age-restricted music video is refused on every client.
Picks up core 4a616ab: a track's audio upload is now ranked by title,
artist and closest length instead of being rejected when its music video
runs longer.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-template PR template incomplete — see the triage comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

add full albums to playlists

1 participant