use of android.widget.PopupMenu in project materialistic by hidroh.
the class FavoriteActivityTest method testVoteItemPromptToLogin.
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Test
public void testVoteItemPromptToLogin() {
shadowAdapter.getViewHolder(0).itemView.findViewById(R.id.button_more).performClick();
PopupMenu popupMenu = ShadowPopupMenu.getLatestPopupMenu();
Assert.assertNotNull(popupMenu);
shadowOf(popupMenu).getOnMenuItemClickListener().onMenuItemClick(new RoboMenuItem(R.id.menu_contextual_vote));
verify(userServices).voteUp(any(Context.class), any(), userServicesCallback.capture());
userServicesCallback.getValue().onDone(false);
assertThat(shadowOf(activity).getNextStartedActivity()).hasComponent(activity, LoginActivity.class);
}
use of android.widget.PopupMenu in project ListenerMusicPlayer by hefuyicoder.
the class FolderAdapter 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);
int adapterPosition = itemHolder.getAdapterPosition();
final FolderInfo folderInfo = arraylist.get(adapterPosition);
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()) {
case R.id.popup_folder_addto_queue:
getSongListIdByFolder(folderInfo.folderPath).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<long[]>() {
@Override
public void call(long[] ids) {
MusicPlayer.addToQueue(mContext, ids, -1, ListenerUtil.IdType.Folder);
}
});
break;
case R.id.popup_folder_addto_playlist:
getSongListIdByFolder(folderInfo.folderPath).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_folder_delete:
new MaterialDialog.Builder(mContext).title(mContext.getResources().getString(R.string.delete_folder)).content("删除文件夹下" + folderInfo.songCount + "首歌曲?").positiveText(R.string.delete).negativeText(R.string.cancel).onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
getSongListIdByFolder(folderInfo.folderPath).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<long[]>() {
@Override
public void call(long[] ids) {
ListenerUtil.deleteTracks(mContext, ids);
RxBus.getInstance().post(new MediaUpdateEvent());
}
});
}
}).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_folder);
menu.show();
}
});
}
use of android.widget.PopupMenu in project ListenerMusicPlayer by hefuyicoder.
the class PlaylistAdapter 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) {
final Playlist playlist = arraylist.get(itemHolder.getAdapterPosition());
switch(item.getItemId()) {
case R.id.popup_playlist_rename:
new MaterialDialog.Builder(mContext).title(R.string.rename_playlist).positiveText("确定").negativeText(R.string.cancel).input(null, playlist.name, false, new MaterialDialog.InputCallback() {
@Override
public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
MusicPlayer.renamePlaylist(mContext, playlist.id, input.toString());
itemHolder.title.setText(input.toString());
Toast.makeText(mContext, R.string.rename_playlist_success, Toast.LENGTH_SHORT).show();
}
}).show();
break;
case R.id.popup_playlist_addto_playlist:
getSongListIdByPlaylist(playlist.id).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<long[]>() {
@Override
public void call(long[] ids) {
ListenerUtil.showAddPlaylistDialog(mFragment.getActivity(), ids);
}
});
break;
case R.id.popup_playlist_addto_queue:
getSongListIdByPlaylist(playlist.id).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<long[]>() {
@Override
public void call(long[] ids) {
MusicPlayer.addToQueue(mContext, ids, -1, ListenerUtil.IdType.Playlist);
}
});
break;
case R.id.popup_playlist_delete:
new MaterialDialog.Builder(mContext).title(R.string.delete_playlist).positiveText(R.string.delete).negativeText(R.string.cancel).onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
PlaylistLoader.deletePlaylists(mContext, playlist.id);
arraylist.remove(itemHolder.getAdapterPosition());
notifyItemRemoved(itemHolder.getAdapterPosition());
Toast.makeText(mContext, R.string.delete_playlist_success, Toast.LENGTH_SHORT).show();
}
}).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_playlist);
menu.show();
}
});
}
use of android.widget.PopupMenu in project ListenerMusicPlayer by hefuyicoder.
the class SearchAdapter method setSongPopupMenu.
private void setSongPopupMenu(ItemHolder itemHolder, final int position) {
final Song song = (Song) 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_song_play_next:
MusicPlayer.playNext(mContext, new long[] { song.id }, -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:
MusicPlayer.addToQueue(mContext, new long[] { song.id }, -1, ListenerUtil.IdType.NA);
break;
case R.id.popup_song_addto_playlist:
ListenerUtil.showAddPlaylistDialog(mContext, new long[] { song.id });
break;
case R.id.popup_song_delete:
ListenerUtil.showDeleteDialog(mContext, song.title, new long[] { song.id }, new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
searchResults.remove(position);
notifyItemRemoved(position);
}
});
break;
}
return false;
}
});
menu.inflate(R.menu.popup_song);
menu.show();
}
});
}
use of android.widget.PopupMenu in project ListenerMusicPlayer by hefuyicoder.
the class SongsListAdapter method setOnPopupMenuListener.
private void setOnPopupMenuListener(ItemHolder itemHolder, final int position) {
final int realSongPosition;
if (withHeader) {
realSongPosition = position - 1;
} else {
realSongPosition = 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(realSongPosition).id;
MusicPlayer.playNext(mContext, ids, -1, ListenerUtil.IdType.NA);
break;
case R.id.popup_song_goto_album:
NavigationUtil.goToAlbum(mContext, arraylist.get(realSongPosition).albumId, arraylist.get(realSongPosition).title);
break;
case R.id.popup_song_goto_artist:
NavigationUtil.goToArtist(mContext, arraylist.get(realSongPosition).artistId, arraylist.get(realSongPosition).artistName);
break;
case R.id.popup_song_addto_queue:
long[] id = new long[1];
id[0] = arraylist.get(realSongPosition).id;
MusicPlayer.addToQueue(mContext, id, -1, ListenerUtil.IdType.NA);
break;
case R.id.popup_song_addto_playlist:
ListenerUtil.showAddPlaylistDialog(mContext, new long[] { arraylist.get(realSongPosition).id });
break;
case R.id.popup_song_delete:
long[] deleteIds = { arraylist.get(realSongPosition).id };
switch(action) {
case Constants.NAVIGATE_PLAYLIST_FAVOURATE:
ListenerUtil.showDeleteFromFavourate(mContext, deleteIds);
break;
case Constants.NAVIGATE_PLAYLIST_RECENTPLAY:
ListenerUtil.showDeleteFromRecentlyPlay(mContext, deleteIds);
break;
default:
ListenerUtil.showDeleteDialog(mContext, arraylist.get(realSongPosition).title, deleteIds, new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
arraylist.remove(realSongPosition);
songIDs = getSongIds();
notifyItemRemoved(position);
}
});
break;
}
break;
}
return false;
}
});
menu.inflate(R.menu.popup_song);
menu.show();
}
});
}
Aggregations