aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/musichub/business/MusicHub.java28
-rw-r--r--src/main/java/musichub/main/Main.java18
2 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java
index 660f0f8..f6805b6 100644
--- a/src/main/java/musichub/business/MusicHub.java
+++ b/src/main/java/musichub/business/MusicHub.java
@@ -359,5 +359,33 @@ public class MusicHub {
this.getAudioElement(searchResult, searchResult.get(0).getTitle());
}
}
+ public String getPlayListsTitles() {
+ StringBuilder titleList = new StringBuilder();
+ for (PlayList pl : playlists)
+ titleList.append(pl.getTitle()).append("\n");
+ return titleList.toString();
+ }
+
+ public List<AudioElement> getPlayListSongs(String playListTitle) throws NoPlayListFoundException {
+ PlayList thePlayList = null;
+ ArrayList<AudioElement> songsInPlayList = new ArrayList<>();
+ for (PlayList pl : playlists) {
+ if (pl.getTitle().equalsIgnoreCase(playListTitle)) {
+ thePlayList = pl;
+ break;
+ }
+ }
+ if (thePlayList == null) throw new NoPlayListFoundException("No playlist with this title in the MusicHub!");
+
+ List<UUID> songIDs = thePlayList.getElements();
+ for (UUID id : songIDs)
+ for (AudioElement el : elements) {
+ if (el instanceof Song) {
+ if (el.getUUID().equals(id)) songsInPlayList.add(el);
+ }
+ }
+ return songsInPlayList;
+
+ }
} \ No newline at end of file
diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
index 674cc7b..c7d6aa9 100644
--- a/src/main/java/musichub/main/Main.java
+++ b/src/main/java/musichub/main/Main.java
@@ -266,6 +266,23 @@ public class Main {
System.out.println("Type h for available commands");
choice = scan.nextLine();
break;
+ case 'm':
+ //songs of a playlist
+ System.out.println("Songs of a playlist will be displayed; enter the playlist name, available playlists are:");
+ System.out.println(theHub.getPlayListsTitles());
+
+ playListTitle = scan.nextLine();
+ try {
+ List<AudioElement> songs = theHub.getPlayListSongs(playListTitle);
+ System.out.println(theHub.getPlayListSongs(playListTitle));
+ String song = scan.nextLine();
+ theHub.getAudioElement(songs, song);
+ } catch (NoPlayListFoundException ex) {
+ System.out.println("No playlist found with the requested title " + ex.getMessage());
+ }
+ printAvailableCommands();
+ choice = scan.nextLine();
+ break;
default:
break;
@@ -285,6 +302,7 @@ public class Main {
System.out.println("+: add a song to an album");
System.out.println("l: add a new audiobook");
System.out.println("p: create a new playlist from existing songs and audio books");
+ System.out.println("m: display songs of a playlist");
System.out.println("-: delete an existing playlist");
System.out.println("s: save elements, albums, playlists");
System.out.println("o: consult the app logs");