Playlists multi select

This commit is contained in:
Karim Abou Zeid 2015-05-25 16:10:59 +02:00
commit b4105b6cc0
13 changed files with 189 additions and 33 deletions

View file

@ -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();
}

View file

@ -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();