use of com.afollestad.materialdialogs.MaterialDialog in project Shuttle by timusus.
the class PlaylistUtils method renamePlaylistDialog.
public static void renamePlaylistDialog(final Context context, final Playlist playlist, final MaterialDialog.SingleButtonCallback listener) {
View customView = LayoutInflater.from(context).inflate(R.layout.dialog_playlist, null);
final CustomEditText editText = (CustomEditText) customView.findViewById(R.id.editText);
editText.setText(playlist.name);
MaterialDialog.Builder builder = DialogUtils.getBuilder(context).title(R.string.create_playlist_create_text_prompt).customView(customView, false).positiveText(R.string.save).onPositive((materialDialog, dialogAction) -> {
String name = editText.getText().toString();
if (name.length() > 0) {
ContentResolver resolver = context.getContentResolver();
ContentValues values = new ContentValues(1);
values.put(MediaStore.Audio.Playlists.NAME, name);
resolver.update(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, values, MediaStore.Audio.Playlists._ID + "=?", new String[] { Long.valueOf(playlist.id).toString() });
playlist.name = name;
Toast.makeText(context, R.string.playlist_renamed_message, Toast.LENGTH_SHORT).show();
}
if (listener != null) {
listener.onClick(materialDialog, dialogAction);
}
}).negativeText(R.string.cancel);
final MaterialDialog dialog = builder.build();
TextWatcher textWatcher = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// check if playlist with current name exists already, and warn the user if so.
setSaveButton(dialog, playlist, editText.getText().toString());
}
public void afterTextChanged(Editable s) {
}
};
editText.addTextChangedListener(textWatcher);
dialog.show();
}
use of com.afollestad.materialdialogs.MaterialDialog in project Shuttle by timusus.
the class TaggerDialog method onCreateDialog.
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
View customView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_tagger, null, false);
setupViews(customView);
populateViews();
materialDialog = DialogUtils.getBuilder(getContext()).title(R.string.edit_tags).customView(customView, false).positiveText(R.string.save).onPositive((dialog, which) -> saveTags()).negativeText(R.string.close).onNegative((dialog, which) -> dismiss()).autoDismiss(false).build();
materialDialog.getActionButton(DialogAction.POSITIVE).setEnabled(false);
return materialDialog;
}
use of com.afollestad.materialdialogs.MaterialDialog in project ListenerMusicPlayer by hefuyicoder.
the class CreatePlaylistDialog method onCreateDialog.
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new MaterialDialog.Builder(getActivity()).title(R.string.create_new_playlist).positiveText(R.string.create).negativeText(R.string.cancel).input(getString(R.string.playlist_name), "", false, new MaterialDialog.InputCallback() {
@Override
public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
long[] songs = getArguments().getLongArray("songs");
long playistId = MusicPlayer.createPlaylist(getActivity(), input.toString());
if (playistId != -1) {
if (songs != null && songs.length != 0) {
MusicPlayer.addToPlaylist(getActivity(), songs, playistId);
} else {
Toast.makeText(getActivity(), R.string.create_playlist_success, Toast.LENGTH_SHORT).show();
}
RxBus.getInstance().post(new PlaylistUpdateEvent());
} else {
Toast.makeText(getActivity(), R.string.create_playlist_fail, Toast.LENGTH_SHORT).show();
}
}
}).build();
}
use of com.afollestad.materialdialogs.MaterialDialog in project ListenerMusicPlayer by hefuyicoder.
the class AlbumAdapter method setOnPopupMenuListener.
private void setOnPopupMenuListener(final AlbumAdapter.ItemHolder itemHolder, final int position) {
itemHolder.popupMenu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final PopupMenu menu = new PopupMenu(mContext, v);
int adapterPosition = itemHolder.getAdapterPosition();
final Album album = arraylist.get(adapterPosition);
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()) {
case R.id.popup_album_addto_queue:
getSongListIdByAlbum(arraylist.get(position).id).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<long[]>() {
@Override
public void call(long[] ids) {
MusicPlayer.addToQueue(mContext, ids, -1, ListenerUtil.IdType.NA);
}
});
break;
case R.id.popup_album_addto_playlist:
getSongListIdByAlbum(arraylist.get(position).id).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<long[]>() {
@Override
public void call(long[] ids) {
ListenerUtil.showAddPlaylistDialog(mContext, ids);
}
});
break;
case R.id.popup_album_goto_artist:
NavigationUtil.goToArtist(mContext, arraylist.get(position).artistId, arraylist.get(position).artistName);
break;
case R.id.popup_artist_delete:
switch(action) {
case Constants.NAVIGATE_PLAYLIST_FAVOURATE:
getSongListIdByAlbum(album.id).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<long[]>() {
@Override
public void call(long[] ids) {
ListenerUtil.showDeleteFromFavourate(mContext, ids);
}
});
break;
case Constants.NAVIGATE_PLAYLIST_RECENTPLAY:
getSongListIdByAlbum(album.id).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<long[]>() {
@Override
public void call(long[] ids) {
ListenerUtil.showDeleteFromRecentlyPlay(mContext, ids);
}
});
break;
default:
AlbumSongLoader.getSongsForAlbum(mContext, arraylist.get(position).id).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<List<Song>>() {
@Override
public void call(List<Song> songs) {
long[] ids = new long[songs.size()];
int i = 0;
for (Song song : songs) {
ids[i] = song.id;
i++;
}
if (ids.length == 1) {
ListenerUtil.showDeleteDialog(mContext, songs.get(0).title, ids, new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
arraylist.remove(position);
notifyDataSetChanged();
}
});
} else {
String songCount = ListenerUtil.makeLabel(mContext, R.plurals.Nsongs, arraylist.get(position).songCount);
ListenerUtil.showDeleteDialog(mContext, songCount, ids, new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
arraylist.remove(position);
notifyDataSetChanged();
}
});
}
}
});
break;
}
break;
}
return false;
}
});
menu.inflate(R.menu.popup_album);
menu.show();
}
});
}
use of com.afollestad.materialdialogs.MaterialDialog in project ListenerMusicPlayer by hefuyicoder.
the class AlbumSongsAdapter method setOnPopupMenuListener.
private void setOnPopupMenuListener(final ItemHolder itemHolder, final int position) {
itemHolder.popupMenu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final PopupMenu menu = new PopupMenu(mContext, v);
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()) {
case R.id.popup_song_play_next:
long[] ids = new long[1];
ids[0] = arraylist.get(position).id;
MusicPlayer.playNext(mContext, ids, -1, ListenerUtil.IdType.NA);
break;
case R.id.popup_song_goto_album:
NavigationUtil.goToAlbum(mContext, arraylist.get(position).albumId, arraylist.get(position).title);
break;
case R.id.popup_song_goto_artist:
NavigationUtil.goToArtist(mContext, arraylist.get(position).artistId, arraylist.get(position).artistName);
break;
case R.id.popup_song_addto_queue:
long[] id = new long[1];
id[0] = arraylist.get(position).id;
MusicPlayer.addToQueue(mContext, id, -1, ListenerUtil.IdType.NA);
break;
case R.id.popup_song_addto_playlist:
ListenerUtil.showAddPlaylistDialog(mContext, new long[] { arraylist.get(itemHolder.getAdapterPosition()).id });
break;
case R.id.popup_song_delete:
long[] deleteIds = { arraylist.get(position).id };
ListenerUtil.showDeleteDialog(mContext, arraylist.get(position).title, deleteIds, new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
arraylist.remove(position);
songIDs = getSongIds();
notifyDataSetChanged();
}
});
break;
}
return false;
}
});
menu.inflate(R.menu.popup_song);
menu.show();
}
});
}
Aggregations