From 77c3959c488e3eb674669e601e885eafb0cb5826 Mon Sep 17 00:00:00 2001 From: austinried <4966622+austinried@users.noreply.github.com> Date: Tue, 29 Sep 2026 08:49:55 +0000 Subject: [PATCH] share the artist song ordering and pin it with a test --- .../main/kotlin/com/subtracks/data/db/QueueDao.kt | 4 ++-- .../subtracks/playback/PlaybackControllerTest.kt | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/subtracks/data/db/QueueDao.kt b/app/src/main/kotlin/com/subtracks/data/db/QueueDao.kt index a867770f..445cc094 100644 --- a/app/src/main/kotlin/com/subtracks/data/db/QueueDao.kt +++ b/app/src/main/kotlin/com/subtracks/data/db/QueueDao.kt @@ -191,8 +191,8 @@ interface QueueDao { @Query( "SELECT songs.id FROM songs " + "JOIN albums ON albums.sourceId = songs.sourceId AND albums.id = songs.albumId " + - "WHERE songs.sourceId = :sourceId AND albums.artistId = :artistId " + - "ORDER BY albums.year DESC, albums.name COLLATE NOCASE, albums.id, songs.disc, songs.track, songs.id", + "WHERE songs.sourceId = :sourceId AND albums.artistId = :artistId" + + ARTIST_SONGS_ORDER, ) suspend fun artistSongIds( sourceId: Long, diff --git a/app/src/test/kotlin/com/subtracks/playback/PlaybackControllerTest.kt b/app/src/test/kotlin/com/subtracks/playback/PlaybackControllerTest.kt index ef4dc7ea..fccf8591 100644 --- a/app/src/test/kotlin/com/subtracks/playback/PlaybackControllerTest.kt +++ b/app/src/test/kotlin/com/subtracks/playback/PlaybackControllerTest.kt @@ -2282,6 +2282,19 @@ class PlaybackControllerTest { assertEquals(setOf("a1", "a2", "a3", "b1", "b2"), handle.items.map { it.id }.toSet()) } + @Test + fun artistQueueRowsFollowTheFlatShuffleIdOrder() { + seedArtist() + runBlocking { queues.replace(listOf(queues.artistEntry(1, "ar1"))) } + + val snapshot = runBlocking { queues.snapshot() } + val paged = (0 until snapshot.size).map { runBlocking { queues.itemAt(snapshot, it)?.song?.id } } + val flat = runBlocking { db.queueDao().artistSongIds(1, "ar1") } + + assertEquals(listOf("b1", "b2", "a1", "a2", "a3"), flat) + assertEquals(flat, paged) + } + @Test fun restoringResumesFromTheSavedPosition() { seedAlbum(3, sourceId = 1)