feat: Support skipping duplicates

This commit is contained in:
SinTan1729 2025-09-26 16:24:21 -05:00
parent 1223062388
commit e1d63a9eef
No known key found for this signature in database
GPG key ID: 0538DD402EA50898
4 changed files with 32 additions and 6 deletions

View file

@ -27,6 +27,8 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba
private PlaylistDialogHorizontalAdapter playlistDialogHorizontalAdapter;
private boolean SkipDuplicates;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@ -78,10 +80,15 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba
private void initPlaylistView() {
bind.playlistDialogRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
bind.playlistDialogRecyclerView.setHasFixedSize(true);
SkipDuplicates = true;
playlistDialogHorizontalAdapter = new PlaylistDialogHorizontalAdapter(this);
bind.playlistDialogRecyclerView.setAdapter(playlistDialogHorizontalAdapter);
bind.playlistChooserDialogSkipDuplicates.setOnCheckedChangeListener((__, isChecked) -> {
SkipDuplicates = isChecked;
});
playlistChooserViewModel.getPlaylistList(requireActivity()).observe(requireActivity(), playlists -> {
if (playlists != null) {
if (!playlists.isEmpty()) {
@ -100,8 +107,7 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba
public void onPlaylistClick(Bundle bundle) {
if (playlistChooserViewModel.getSongsToAdd() != null && !playlistChooserViewModel.getSongsToAdd().isEmpty()) {
Playlist playlist = bundle.getParcelable(Constants.PLAYLIST_OBJECT);
playlistChooserViewModel.addSongsToPlaylist(playlist.getId());
dismiss();
playlistChooserViewModel.addSongsToPlaylist(this, getDialog(), playlist.getId(), SkipDuplicates);
} else {
Toast.makeText(requireContext(), R.string.playlist_chooser_dialog_toast_add_failure, Toast.LENGTH_SHORT).show();
}