diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/AddToPlaylistDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/AddToPlaylistDialog.java index ae081804a..aed0123f5 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/AddToPlaylistDialog.java +++ b/app/src/main/java/com/kabouzeid/gramophone/dialogs/AddToPlaylistDialog.java @@ -5,6 +5,7 @@ import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; +import android.widget.Toast; import com.afollestad.materialdialogs.MaterialDialog; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.loader.PlaylistLoader; @@ -57,9 +58,32 @@ public Dialog onCreateDialog(Bundle savedInstanceState) { CreatePlaylistDialog.create(songs).show(getActivity().getSupportFragmentManager(), "ADD_TO_PLAYLIST"); } else { materialDialog.dismiss(); - PlaylistsUtil.addToPlaylist(getActivity(), songs, playlists.get(i - 1).id, true); + ArrayList updatedSongs = getNotExistingSongs(songs, playlists.get(i - 1).id); + if (updatedSongs.size() > 0 ){ + PlaylistsUtil.addToPlaylist(getActivity(), updatedSongs, playlists.get(i - 1).id, true); + }else { + Toast.makeText(getActivity(), " Inserted "+updatedSongs.size()+" songs ins to the Playlist", Toast.LENGTH_SHORT).show(); + } } }) .build(); } + + /** + * getNotExistingSongs helps get rid of songs that already exxist in a playlist, + * returns a list of songs + * @param songs list of songs to be added to playlist + * @param playlistId playlist Id + */ + private ArrayList getNotExistingSongs(ArrayList songs, int playlistId ){ + ArrayList newSongsList = new ArrayList<>(); + if (songs.size()>0){ + for (Song song : songs){ + if (!PlaylistsUtil.doPlaylistContains(getActivity(), playlistId, song.id)){ + newSongsList.add(song); + } + } + } + return newSongsList; + } }