Playlists multi select
This commit is contained in:
parent
ab678b43ca
commit
b4105b6cc0
13 changed files with 189 additions and 33 deletions
|
|
@ -8,17 +8,26 @@ import android.text.Html;
|
|||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.model.Playlist;
|
||||
import com.kabouzeid.gramophone.util.PlaylistsUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid), Aidan Follestad (afollestad)
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class DeletePlaylistDialog extends DialogFragment {
|
||||
|
||||
public static DeletePlaylistDialog create(long playlistId) {
|
||||
public static DeletePlaylistDialog create(Playlist playlist) {
|
||||
ArrayList<Playlist> list = new ArrayList<>();
|
||||
list.add(playlist);
|
||||
return create(list);
|
||||
}
|
||||
|
||||
public static DeletePlaylistDialog create(ArrayList<Playlist> playlists) {
|
||||
DeletePlaylistDialog dialog = new DeletePlaylistDialog();
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("playlist_id", playlistId);
|
||||
args.putSerializable("playlists", playlists);
|
||||
dialog.setArguments(args);
|
||||
return dialog;
|
||||
}
|
||||
|
|
@ -26,11 +35,20 @@ public class DeletePlaylistDialog extends DialogFragment {
|
|||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
long playlistId = getArguments().getLong("playlist_id");
|
||||
//noinspection unchecked
|
||||
final ArrayList<Playlist> playlists = (ArrayList<Playlist>) getArguments().getSerializable("playlists");
|
||||
int title;
|
||||
CharSequence content;
|
||||
if (playlists.size() > 1) {
|
||||
title = R.string.delete_playlists_title;
|
||||
content = Html.fromHtml(getString(R.string.delete_x_playlists, playlists.size()));
|
||||
} else {
|
||||
title = R.string.delete_playlist_title;
|
||||
content = Html.fromHtml(getString(R.string.delete_playlist_x, playlists.get(0).name));
|
||||
}
|
||||
return new MaterialDialog.Builder(getActivity())
|
||||
.title(R.string.delete_playlist_title)
|
||||
.content(Html.fromHtml(getString(R.string.delete_playlist_x,
|
||||
PlaylistsUtil.getNameForPlaylist(getActivity(), playlistId))))
|
||||
.title(title)
|
||||
.content(content)
|
||||
.positiveText(R.string.delete_action)
|
||||
.negativeText(android.R.string.cancel)
|
||||
.callback(new MaterialDialog.ButtonCallback() {
|
||||
|
|
@ -39,8 +57,7 @@ public class DeletePlaylistDialog extends DialogFragment {
|
|||
super.onPositive(dialog);
|
||||
if (getActivity() == null)
|
||||
return;
|
||||
long playlistId = getArguments().getLong("playlist_id");
|
||||
PlaylistsUtil.deletePlaylist(getActivity(), playlistId);
|
||||
PlaylistsUtil.deletePlaylists(getActivity(), playlists);
|
||||
}
|
||||
}).build();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public class DeleteSongsDialog extends DialogFragment {
|
|||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
//noinspection unchecked
|
||||
ArrayList<Song> songs = (ArrayList<Song>) getArguments().getSerializable("songs");
|
||||
final ArrayList<Song> songs = (ArrayList<Song>) getArguments().getSerializable("songs");
|
||||
int title;
|
||||
CharSequence content;
|
||||
if (songs.size() > 1) {
|
||||
|
|
@ -57,8 +57,6 @@ public class DeleteSongsDialog extends DialogFragment {
|
|||
super.onPositive(dialog);
|
||||
if (getActivity() == null)
|
||||
return;
|
||||
//noinspection unchecked
|
||||
ArrayList<Song> songs = (ArrayList<Song>) getArguments().getSerializable("songs");
|
||||
MusicUtil.deleteTracks(getActivity(), songs);
|
||||
}
|
||||
}).build();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue