use of android.support.v7.widget.PopupMenu in project ListenerMusicPlayer by hefuyicoder.
the class PlaylistSongAdapter 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);
final int adapterPosition = itemHolder.getAdapterPosition();
final Song song = arraylist.get(adapterPosition);
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(adapterPosition).id;
MusicPlayer.playNext(mContext, ids, -1, ListenerUtil.IdType.NA);
break;
case R.id.popup_song_goto_album:
NavigationUtil.goToAlbum(mContext, song.albumId, song.title);
break;
case R.id.popup_song_goto_artist:
NavigationUtil.goToArtist(mContext, song.artistId, song.artistName);
break;
case R.id.popup_song_addto_queue:
long[] id = new long[1];
id[0] = song.id;
MusicPlayer.addToQueue(mContext, id, -1, ListenerUtil.IdType.Playlist);
break;
case R.id.popup_song_addto_playlist:
ListenerUtil.showAddPlaylistDialog(mContext, new long[] { song.id });
break;
case R.id.popup_song_delete:
new MaterialDialog.Builder(mContext).title(mContext.getResources().getString(R.string.delete_playlist_song) + "?").positiveText(R.string.delete).negativeText(R.string.cancel).onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
PlaylistSongLoader.removeFromPlaylist(mContext, new long[] { song.id }, playlistId);
arraylist.remove(adapterPosition);
songIDs = getSongIds();
notifyItemRemoved(adapterPosition);
}
}).onNegative(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
dialog.dismiss();
}
}).show();
break;
}
return false;
}
});
menu.inflate(R.menu.popup_song);
menu.show();
}
});
}
use of android.support.v7.widget.PopupMenu in project ListenerMusicPlayer by hefuyicoder.
the class SearchAdapter method setArtistPopupMenu.
private void setArtistPopupMenu(ItemHolder itemHolder, final int position) {
final Artist artist = (Artist) searchResults.get(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_artist_addto_queue:
getSongListIdByArtist(artist.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_artist_addto_playlist:
getSongListIdByArtist(artist.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_artist_delete:
ArtistSongLoader.getSongsForArtist(mContext, artist.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) {
searchResults.remove(position);
notifyDataSetChanged();
}
});
} else {
String songCount = ListenerUtil.makeLabel(mContext, R.plurals.Nsongs, artist.songCount);
ListenerUtil.showDeleteDialog(mContext, songCount, ids, new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
searchResults.remove(position);
notifyDataSetChanged();
}
});
}
}
});
break;
}
return false;
}
});
menu.inflate(R.menu.popup_artist);
menu.show();
}
});
}
use of android.support.v7.widget.PopupMenu in project ListenerMusicPlayer by hefuyicoder.
the class SearchAdapter method setAlbumPopupMenu.
private void setAlbumPopupMenu(ItemHolder itemHolder, final int position) {
final Album album = (Album) searchResults.get(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_album_addto_queue:
getSongListIdByAlbum(album.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(album.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, album.artistId, album.artistName);
break;
case R.id.popup_artist_delete:
AlbumSongLoader.getSongsForAlbum(mContext, album.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) {
searchResults.remove(position);
notifyDataSetChanged();
}
});
} else {
String songCount = ListenerUtil.makeLabel(mContext, R.plurals.Nsongs, album.songCount);
ListenerUtil.showDeleteDialog(mContext, songCount, ids, new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
searchResults.remove(position);
notifyDataSetChanged();
}
});
}
}
});
break;
}
return false;
}
});
menu.inflate(R.menu.popup_album);
menu.show();
}
});
}
use of android.support.v7.widget.PopupMenu in project WordPress-Android by wordpress-mobile.
the class ThemeBrowserAdapter method configureImageButton.
private void configureImageButton(Context context, ThemeViewHolder themeViewHolder, final String themeId, final boolean isPremium, boolean isCurrent) {
final PopupMenu popupMenu = new PopupMenu(context, themeViewHolder.imageButton);
popupMenu.getMenuInflater().inflate(R.menu.theme_more, popupMenu.getMenu());
configureMenuForTheme(popupMenu.getMenu(), isCurrent);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int i = item.getItemId();
if (i == R.id.menu_activate) {
if (isPremium) {
mCallback.onDetailsSelected(themeId);
} else {
mCallback.onActivateSelected(themeId);
}
} else if (i == R.id.menu_try_and_customize) {
mCallback.onTryAndCustomizeSelected(themeId);
} else if (i == R.id.menu_view) {
mCallback.onViewSelected(themeId);
} else if (i == R.id.menu_details) {
mCallback.onDetailsSelected(themeId);
} else {
mCallback.onSupportSelected(themeId);
}
return true;
}
});
themeViewHolder.imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupMenu.show();
}
});
}
use of android.support.v7.widget.PopupMenu in project PocketHub by pockethub.
the class CommentListAdapter method showMorePopup.
private void showMorePopup(View v, final GitHubComment comment, final boolean canEdit, final boolean canDelete) {
PopupMenu menu = new PopupMenu(context, v);
menu.inflate(R.menu.comment_popup);
menu.getMenu().findItem(R.id.m_edit).setEnabled(canEdit);
menu.getMenu().findItem(R.id.m_delete).setEnabled(canDelete);
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch(menuItem.getItemId()) {
case R.id.m_edit:
if (editCommentListener != null) {
editCommentListener.onEditComment(comment);
}
break;
case R.id.m_delete:
if (deleteCommentListener != null) {
deleteCommentListener.onDeleteComment(comment);
}
break;
}
return false;
}
});
menu.show();
}
Aggregations