/** * Handles clicks on the context menu. * * <p>{@inheritDoc} * * @param item * @return */ @Override public boolean onContextItemSelected(MenuItem item) { Song song = getCurrentSong(); if (song == null || song.isRemote()) { return false; } // Note: Very similar to code in SongView:doItemContext(). Refactor? switch (item.getItemId()) { case R.id.download: mActivity.downloadItem(song); return true; case R.id.view_this_album: SongListActivity.show(getActivity(), song.getAlbum()); return true; case R.id.view_albums_by_song: AlbumListActivity.show(getActivity(), new Artist(song.getArtistId(), song.getArtist())); return true; case R.id.view_songs_by_artist: SongListActivity.show(getActivity(), new Artist(song.getArtistId(), song.getArtist())); return true; default: throw new IllegalStateException("Unknown menu ID."); } }