Beispiel #1
0
  private static void generateSpotifyOperation(
      ClientTrack[] selectedTracks, TrackDatabase db, PlaylistTableModel playlistTableModel) {
    Client client = new Client(5000, db);
    ServerTrack[] seeds = new ServerTrack[selectedTracks.length];

    boolean someSCMSDataAvailable = false;
    for (int i = 0; i < selectedTracks.length; i++) {
      if (selectedTracks[i].getScms(db) != null) {
        someSCMSDataAvailable = true;
        seeds[i] =
            new ServerTrack(
                i,
                selectedTracks[i].getTrackName(),
                selectedTracks[i].getArtistName(db),
                selectedTracks[i].getScms());
      } else {
        seeds[i] = null;
      }
    }
    if (someSCMSDataAvailable) {
      try {
        db.createNewSpotifyPlaylist(client.similarTracks(seeds));
      } catch (Exception e) {
        new ErrorMessage("Error in connection to server. Could not generate Spotify playlist");
      }
      playlistTableModel.setPlaylists();
      playlistTableModel.fireTableDataChanged();
    } else {
      new ErrorMessage("No SCMS data is available for any of the selected tracks");
    }

    // Unset SCMS data in tracks
    for (int i = 0; i < selectedTracks.length; i++) {
      if (selectedTracks[i] != null) {
        selectedTracks[i].unsetScms();
      }
    }
  }