mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 01:53:31 +00:00
chg: Move the playlist duplicates option to preferences
As per the recommendation of @eddyizm
This commit is contained in:
parent
a22883fdde
commit
1c2f1aa061
6 changed files with 43 additions and 28 deletions
|
|
@ -27,7 +27,6 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba
|
|||
|
||||
private PlaylistDialogHorizontalAdapter playlistDialogHorizontalAdapter;
|
||||
|
||||
private boolean SkipDuplicates;
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
|
|
@ -80,15 +79,10 @@ 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()) {
|
||||
|
|
@ -107,7 +101,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(this, getDialog(), playlist.getId(), SkipDuplicates);
|
||||
playlistChooserViewModel.addSongsToPlaylist(this, getDialog(), playlist.getId());
|
||||
} else {
|
||||
Toast.makeText(requireContext(), R.string.playlist_chooser_dialog_toast_add_failure, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ object Preferences {
|
|||
private const val NEXT_UPDATE_CHECK = "next_update_check"
|
||||
private const val CONTINUOUS_PLAY = "continuous_play"
|
||||
private const val LAST_INSTANT_MIX = "last_instant_mix"
|
||||
private const val ALLOW_PLAYLIST_DUPLICATES = "allow_playlist_duplicates"
|
||||
|
||||
|
||||
@JvmStatic
|
||||
|
|
@ -538,4 +539,17 @@ object Preferences {
|
|||
LAST_INSTANT_MIX, 0
|
||||
) + 5000 < System.currentTimeMillis()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setAllowPlaylistDuplicates(allowDuplicates: Boolean) {
|
||||
return App.getInstance().preferences.edit().putString(
|
||||
ALLOW_PLAYLIST_DUPLICATES,
|
||||
allowDuplicates.toString()
|
||||
).apply()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun allowPlaylistDuplicates(): Boolean {
|
||||
return App.getInstance().preferences.getBoolean(ALLOW_PLAYLIST_DUPLICATES, false)
|
||||
}
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ package com.cappielloantonio.tempo.viewmodel;
|
|||
|
||||
import android.app.Application;
|
||||
import android.app.Dialog;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.AndroidViewModel;
|
||||
|
|
@ -12,6 +13,7 @@ import androidx.lifecycle.MutableLiveData;
|
|||
import com.cappielloantonio.tempo.repository.PlaylistRepository;
|
||||
import com.cappielloantonio.tempo.subsonic.models.Child;
|
||||
import com.cappielloantonio.tempo.subsonic.models.Playlist;
|
||||
import com.cappielloantonio.tempo.util.Preferences;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -34,9 +36,12 @@ public class PlaylistChooserViewModel extends AndroidViewModel {
|
|||
return playlists;
|
||||
}
|
||||
|
||||
public void addSongsToPlaylist(LifecycleOwner owner, Dialog dialog, String playlistId, boolean skipDuplicates) {
|
||||
public void addSongsToPlaylist(LifecycleOwner owner, Dialog dialog, String playlistId) {
|
||||
List<String> songIds = Lists.transform(toAdd, Child::getId);
|
||||
if (skipDuplicates) {
|
||||
if (Preferences.allowPlaylistDuplicates()) {
|
||||
playlistRepository.addSongToPlaylist(playlistId, new ArrayList<>(songIds));
|
||||
dialog.dismiss();
|
||||
} else {
|
||||
playlistRepository.getPlaylistSongs(playlistId).observe(owner, playlistSongs -> {
|
||||
if (playlistSongs != null) {
|
||||
List<String> playlistSongIds = Lists.transform(playlistSongs, Child::getId);
|
||||
|
|
@ -45,9 +50,6 @@ public class PlaylistChooserViewModel extends AndroidViewModel {
|
|||
playlistRepository.addSongToPlaylist(playlistId, new ArrayList<>(songIds));
|
||||
dialog.dismiss();
|
||||
});
|
||||
} else {
|
||||
playlistRepository.addSongToPlaylist(playlistId, new ArrayList<>(songIds));
|
||||
dialog.dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue