From 4cf77404a1bc56a77f138534bebf90280786ccc0 Mon Sep 17 00:00:00 2001 From: Antoine POPINEAU Date: Tue, 1 Sep 2020 18:25:10 +0200 Subject: [PATCH] #73: fix track sorting order by fixing a mistake and taking disc_number into consideration. --- .../com/github/apognu/otter/repositories/TracksRepository.kt | 4 ++-- app/src/main/java/com/github/apognu/otter/utils/Models.kt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/github/apognu/otter/repositories/TracksRepository.kt b/app/src/main/java/com/github/apognu/otter/repositories/TracksRepository.kt index ddc6d2c..e354f74 100644 --- a/app/src/main/java/com/github/apognu/otter/repositories/TracksRepository.kt +++ b/app/src/main/java/com/github/apognu/otter/repositories/TracksRepository.kt @@ -13,7 +13,7 @@ import java.io.BufferedReader class TracksRepository(override val context: Context?, albumId: Int) : Repository() { override val cacheId = "tracks-album-$albumId" - override val upstream = HttpUpstream>(HttpUpstream.Behavior.AtOnce, "/api/v1/tracks/?playable=true&album=$albumId", object : TypeToken() {}.type) + override val upstream = HttpUpstream>(HttpUpstream.Behavior.AtOnce, "/api/v1/tracks/?playable=true&album=$albumId&ordering=disc_number,position", object : TypeToken() {}.type) override fun cache(data: List) = TracksCache(data) override fun uncache(reader: BufferedReader) = gsonDeserializerOf(TracksCache::class.java).deserialize(reader) @@ -56,6 +56,6 @@ class TracksRepository(override val context: Context?, albumId: Int) : Repositor } track - }.sortedBy { it.position } + }.sortedWith(compareBy({ it.disc_number }, { it.position })) } } \ No newline at end of file diff --git a/app/src/main/java/com/github/apognu/otter/utils/Models.kt b/app/src/main/java/com/github/apognu/otter/utils/Models.kt index 65832d3..d95f5e6 100644 --- a/app/src/main/java/com/github/apognu/otter/utils/Models.kt +++ b/app/src/main/java/com/github/apognu/otter/utils/Models.kt @@ -101,6 +101,7 @@ data class Track( val title: String, val artist: Artist, val album: Album?, + val disc_number: Int = 0, val position: Int = 0, val uploads: List = listOf(), val copyright: String? = null,