package com.kabouzeid.gramophone.dialogs;
import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.text.InputType;
import com.afollestad.materialdialogs.MaterialDialog;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.util.PlaylistsUtil;
import java.util.ArrayList;
/**
* @author Karim Abou Zeid (kabouzeid), Aidan Follestad (afollestad)
*/
public class CreatePlaylistDialog extends DialogFragment {
@NonNull
public static CreatePlaylistDialog create() {
return create((Song) null);
}
@NonNull
public static CreatePlaylistDialog create(@Nullable Song song) {
ArrayList<Song> list = new ArrayList<>();
if (song != null)
list.add(song);
return create(list);
}
@NonNull
public static CreatePlaylistDialog create(ArrayList<Song> songs) {
CreatePlaylistDialog dialog = new CreatePlaylistDialog();
Bundle args = new Bundle();
args.putParcelableArrayList("songs", songs);
dialog.setArguments(args);
return dialog;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new MaterialDialog.Builder(getActivity())
.title(R.string.new_playlist_title)
.positiveText(R.string.create_action)
.negativeText(android.R.string.cancel)
.inputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_PERSON_NAME |
InputType.TYPE_TEXT_FLAG_CAP_WORDS)
.input(R.string.playlist_name_empty, 0, false, new MaterialDialog.InputCallback() {
@Override
public void onInput(MaterialDialog materialDialog, @NonNull CharSequence charSequence) {
if (getActivity() == null)
return;
if (!charSequence.toString().trim().isEmpty()) {
final int playlistId = PlaylistsUtil.createPlaylist(getActivity(), charSequence.toString());
if (playlistId != -1 && getActivity() != null) {
//noinspection unchecked
ArrayList<Song> songs = getArguments().getParcelableArrayList("songs");
if (songs != null) {
PlaylistsUtil.addToPlaylist(getActivity(), songs, playlistId, true);
}
}
}
}
}).build();
}
}