From 2e6617ec8350500b22e63b1003b0c8256b75f936 Mon Sep 17 00:00:00 2001 From: aliveoutside <53598473+aliveoutside@users.noreply.github.com> Date: Mon, 19 Sep 2022 13:58:23 +0300 Subject: [PATCH] [music] [PlaylistConverter] add track to playlist only if it has a vaild download url --- .../java/ru/vtosters/lite/downloaders/AudioDownloader.java | 5 ++--- .../lite/music/converter/playlist/PlaylistConverter.java | 7 ++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/downloaders/AudioDownloader.java b/app/src/main/java/ru/vtosters/lite/downloaders/AudioDownloader.java index 24a31411a..cf3e96cd6 100644 --- a/app/src/main/java/ru/vtosters/lite/downloaders/AudioDownloader.java +++ b/app/src/main/java/ru/vtosters/lite/downloaders/AudioDownloader.java @@ -37,7 +37,6 @@ public class AudioDownloader { public static void downloadPlaylist(Playlist playlist) { var tracks = PlaylistConverter.getPlaylist(playlist); - var tracksWithUrls = tracks.stream().filter(track -> !track.D.isEmpty()).collect(Collectors.toList()); var playlistName = IOUtils.getValidFileName(playlist.g); @@ -48,10 +47,10 @@ public class AudioDownloader { var notification = MusicNotificationBuilder.buildPlaylistDownloadNotification(playlistName, notificationId); PlaylistDownloader.downloadPlaylist( - tracksWithUrls, + tracks, IOUtils.getValidFileName(playlist.g), downloadPath, - MusicCallbackBuilder.buildPlaylistCallback(tracksWithUrls.size(), notification, notificationId) + MusicCallbackBuilder.buildPlaylistCallback(tracks.size(), notification, notificationId) ); } diff --git a/app/src/main/java/ru/vtosters/lite/music/converter/playlist/PlaylistConverter.java b/app/src/main/java/ru/vtosters/lite/music/converter/playlist/PlaylistConverter.java index bc479d3f1..56e295e16 100644 --- a/app/src/main/java/ru/vtosters/lite/music/converter/playlist/PlaylistConverter.java +++ b/app/src/main/java/ru/vtosters/lite/music/converter/playlist/PlaylistConverter.java @@ -64,7 +64,12 @@ public class PlaylistConverter { var playlist = new JSONObject(response).getJSONObject("response").getJSONArray("audios"); var tracks = new ArrayList(); for (int i = 0; i < playlist.length(); i++) { - tracks.add(new MusicTrack(playlist.getJSONObject(i))); + var track = new MusicTrack(playlist.getJSONObject(i)); + + // add track only if it has a valid url + if (!track.D.isEmpty()) { + tracks.add(track); + } } return tracks;