From 3c47ccbe6d3ed1c912990aefd425f581c9096185 Mon Sep 17 00:00:00 2001 From: LuftVerbot <97435834+LuftVerbot@users.noreply.github.com> Date: Fri, 4 Oct 2024 18:59:49 +0200 Subject: [PATCH] quick fix Small fix for adding/deleting playlist tracks --- .../echo/extension/DeezerApi.kt | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/ext/src/main/java/dev/brahmkshatriya/echo/extension/DeezerApi.kt b/ext/src/main/java/dev/brahmkshatriya/echo/extension/DeezerApi.kt index a50c72a..e98e389 100644 --- a/ext/src/main/java/dev/brahmkshatriya/echo/extension/DeezerApi.kt +++ b/ext/src/main/java/dev/brahmkshatriya/echo/extension/DeezerApi.kt @@ -636,38 +636,39 @@ class DeezerApi { } suspend fun addToPlaylist(playlist: Playlist, tracks: List) = coroutineScope { - async(Dispatchers.IO) { - callApi( - method = "playlist.addSongs", - params = buildJsonObject { - put("playlist_id", playlist.id) - put("songs", buildJsonArray { - tracks.map { track -> + callApi( + method = "playlist.addSongs", + params = buildJsonObject { + put("playlist_id", playlist.id) + put("songs", buildJsonArray { + tracks.map { track -> + async(Dispatchers.IO) { add(buildJsonArray { add(track.id); add(0) }) } - }) - } - ) - }.await() + }.awaitAll() + }) + } + ) } suspend fun removeFromPlaylist(playlist: Playlist, tracks: List, indexes: List) = coroutineScope { - val trackIds = tracks.map { it.id } - val ids = indexes.map { index -> trackIds[index] } - async(Dispatchers.IO) { - callApi( - method = "playlist.deleteSongs", - params = buildJsonObject { - put("playlist_id", playlist.id) - put("songs", buildJsonArray { - ids.map { id -> - add(buildJsonArray { add(id); add(0) }) - } - }) - } - ) - }.await() - } + val trackIds = tracks.map { it.id } + val ids = indexes.map { index -> trackIds[index] } + + callApi( + method = "playlist.deleteSongs", + params = buildJsonObject { + put("playlist_id", playlist.id) + put("songs", buildJsonArray { + ids.map { id -> + async(Dispatchers.IO) { + add(buildJsonArray { add(id); add(0) }) + } + }.awaitAll() + }) + } + ) + } suspend fun createPlaylist(title: String, description: String? = ""): JsonObject { val jsonData = callApi(