From d072625499a5e75ca7cf656dbd4fbfb080c6885a Mon Sep 17 00:00:00 2001 From: Stephanie Gredell Date: Thu, 25 Jan 2024 00:01:34 -0800 Subject: [PATCH] Use ImmutableList, add guava dependency --- app/build.gradle | 1 + app/src/main/java/musicbot/SpotifyClient.java | 7 ++++--- .../musicbot/buttonInteractions/MoreRecommendation.java | 5 +++-- app/src/main/java/musicbot/commands/Recommend.java | 5 +++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 43238df..fc90a40 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,6 +25,7 @@ dependencies { // This dependency is used by the application. implementation("net.dv8tion:JDA:5.0.0-alpha.19") implementation 'se.michaelthelin.spotify:spotify-web-api-java:8.3.4' + implementation("com.google.guava:guava:33.0.0-jre") } task fatJar(type: Jar) { diff --git a/app/src/main/java/musicbot/SpotifyClient.java b/app/src/main/java/musicbot/SpotifyClient.java index 5121cc8..6f97584 100644 --- a/app/src/main/java/musicbot/SpotifyClient.java +++ b/app/src/main/java/musicbot/SpotifyClient.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Optional; +import java.util.stream.Collector; import java.util.stream.Collectors; public class SpotifyClient { @@ -56,7 +57,7 @@ public class SpotifyClient { final Paging tracks = searchTracksRequest.execute(); - return Arrays.stream(tracks.getItems()).collect(Collectors.toList()); + return Arrays.stream(tracks.getItems()).collect(ImmutableList.toImmutableList()); } catch (SpotifyWebApiException | ParseException | IOException exception) { return List.of(); } @@ -80,7 +81,7 @@ public class SpotifyClient { try { final Recommendations recommendations = recommendationsRequest.execute(); - return Arrays.stream(recommendations.getTracks()).collect(Collectors.toList()); + return Arrays.stream(recommendations.getTracks()).collect(ImmutableList.toImmutableList()); } catch (IOException | SpotifyWebApiException | ParseException e) { System.out.println("Error: " + e.getMessage()); return ImmutableList.of(); @@ -92,7 +93,7 @@ public class SpotifyClient { try { final String[] genres = request.execute(); - return Arrays.stream(genres).collect(Collectors.toList()); + return Arrays.stream(genres).collect(ImmutableList.toImmutableList()); } catch (IOException | SpotifyWebApiException | ParseException e) { System.out.println("Error: " + e.getMessage()); return ImmutableList.of(); diff --git a/app/src/main/java/musicbot/buttonInteractions/MoreRecommendation.java b/app/src/main/java/musicbot/buttonInteractions/MoreRecommendation.java index e4a520d..feb340b 100644 --- a/app/src/main/java/musicbot/buttonInteractions/MoreRecommendation.java +++ b/app/src/main/java/musicbot/buttonInteractions/MoreRecommendation.java @@ -1,5 +1,6 @@ package musicbot.buttonInteractions; +import com.google.common.collect.ImmutableList; import musicbot.ButtonInteraction; import musicbot.Paginator; import musicbot.RecommendationService; @@ -54,7 +55,7 @@ public class MoreRecommendation implements ButtonInteraction { trackList.forEach(track -> { final List trackArtists = Arrays.stream(track.getArtists()) .map(ArtistSimplified::getName) - .collect(Collectors.toList()); + .collect(ImmutableList.toImmutableList()); final String artists = String.join(", ", trackArtists); eb.addField(track.getName(), artists, false); @@ -67,7 +68,7 @@ public class MoreRecommendation implements ButtonInteraction { .collect(Collectors.joining(", ")); return Button.primary("recommend_" + artists, track.getName()); - }).collect(Collectors.toList()); + }).collect(ImmutableList.toImmutableList()); if (!paginatedTracks.isIsLastPage()) { final String buttonId = "more-recommend_" + artist + "--" + genre + "_" + paginatedTracks.getNextPageNum(); diff --git a/app/src/main/java/musicbot/commands/Recommend.java b/app/src/main/java/musicbot/commands/Recommend.java index 4492871..1d04812 100644 --- a/app/src/main/java/musicbot/commands/Recommend.java +++ b/app/src/main/java/musicbot/commands/Recommend.java @@ -1,5 +1,6 @@ package musicbot.commands; +import com.google.common.collect.ImmutableList; import musicbot.MCommand; import musicbot.Paginator; import musicbot.RecommendationService; @@ -65,7 +66,7 @@ public class Recommend implements MCommand { trackList.forEach(track -> { final List trackArtists = Arrays.stream(track.getArtists()) .map(ArtistSimplified::getName) - .collect(Collectors.toList()); + .collect(ImmutableList.toImmutableList()); final String artists = String.join(", ", trackArtists); eb.addField(track.getName(), artists, false); @@ -77,7 +78,7 @@ public class Recommend implements MCommand { .collect(Collectors.joining(", ")); return Button.primary("recommend_" + artists, track.getName()); - }).collect(Collectors.toList()); + }).collect(ImmutableList.toImmutableList()); final String buttonId = "more-recommend_" + artistInput + "--" + genreInput + "_" + paginatedTracks.getNextPageNum();