use of io.hefuyi.listener.mvp.model.Song in project ListenerMusicPlayer by hefuyicoder.
the class PlaylistAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(final ItemHolder itemHolder, final int i) {
final Playlist localItem = arraylist.get(i);
itemHolder.title.setText(localItem.name);
itemHolder.songcount.setText(ListenerUtil.makeLabel(mContext, R.plurals.Nsongs, localItem.songCount));
itemHolder.subtitle1.setVisibility(View.GONE);
itemHolder.divider.setVisibility(View.GONE);
PlaylistSongLoader.getSongsInPlaylist(mContext, localItem.id).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<List<Song>>() {
@Override
public void call(List<Song> playlistsongs) {
String uri = "";
long firstAlbumID = -1;
if (playlistsongs.size() != 0) {
firstAlbumID = playlistsongs.get(0).albumId;
uri = ListenerUtil.getAlbumArtUri(firstAlbumID).toString();
}
itemHolder.playlistArt.setTag(R.string.playlistArt, firstAlbumID);
Glide.with(itemHolder.itemView.getContext()).load(uri).asBitmap().placeholder(ATEUtil.getDefaultAlbumDrawable(mContext)).into(new SimpleTarget<Bitmap>() {
@Override
public void onLoadFailed(Exception e, Drawable errorDrawable) {
if (isGrid) {
itemHolder.footer.setBackgroundColor(ATEUtil.getThemeAlbumDefaultPaletteColor(mContext));
}
itemHolder.playlistArt.setImageDrawable(ATEUtil.getDefaultAlbumDrawable(mContext));
itemHolder.title.setTextColor(ATEUtil.getThemeTextColorPrimary(mContext));
itemHolder.songcount.setTextColor(ATEUtil.getThemeTextColorSecondly(mContext));
itemHolder.popupMenu.setColorFilter(mContext.getResources().getColor(R.color.background_floating_material_dark));
}
@Override
public void onResourceReady(final Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
if (isGrid) {
new Palette.Builder(resource).generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
Palette.Swatch swatch = ColorUtil.getMostPopulousSwatch(palette);
if (swatch != null) {
int color = swatch.getRgb();
itemHolder.footer.setBackgroundColor(color);
int detailColor = swatch.getTitleTextColor();
itemHolder.playlistArt.setImageBitmap(resource);
itemHolder.title.setTextColor(ColorUtil.getOpaqueColor(detailColor));
itemHolder.songcount.setTextColor(detailColor);
itemHolder.popupMenu.setColorFilter(detailColor);
}
}
});
} else {
itemHolder.playlistArt.setImageBitmap(resource);
}
}
});
}
});
if (ListenerUtil.isLollipop())
itemHolder.playlistArt.setTransitionName("transition_album_art" + i);
setOnPopupMenuListener(itemHolder, i);
}
use of io.hefuyi.listener.mvp.model.Song in project ListenerMusicPlayer by hefuyicoder.
the class PlayqueueSongsAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ItemHolder itemHolder = (ItemHolder) holder;
Song localItem;
localItem = arraylist.get(position);
itemHolder.title.setText(localItem.title);
itemHolder.artist.setText(localItem.artistName);
itemHolder.album.setText(localItem.albumName);
if (mSwatch != null) {
itemHolder.title.setTextColor(mSwatch.getBodyTextColor());
itemHolder.artist.setTextColor(mSwatch.getTitleTextColor());
itemHolder.album.setTextColor(mSwatch.getTitleTextColor());
if (MusicPlayer.getQueuePosition() == position) {
itemHolder.playIndicator.setVisibility(View.VISIBLE);
itemHolder.playIndicator.setBackgroundColor(ColorUtil.getBlackWhiteColor(mSwatch.getRgb()));
} else {
itemHolder.playIndicator.setVisibility(View.GONE);
}
}
Glide.with(holder.itemView.getContext()).load(ListenerUtil.getAlbumArtUri(localItem.albumId).toString()).error(ATEUtil.getDefaultAlbumDrawable(mContext)).placeholder(ATEUtil.getDefaultAlbumDrawable(mContext)).centerCrop().into(itemHolder.albumArt);
}
use of io.hefuyi.listener.mvp.model.Song 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 io.hefuyi.listener.mvp.model.Song in project ListenerMusicPlayer by hefuyicoder.
the class SearchAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(ItemHolder itemHolder, int position) {
switch(getItemViewType(position)) {
case 0:
Song song = (Song) searchResults.get(position);
itemHolder.title.setText(song.title);
itemHolder.subtitle1.setText(song.artistName);
itemHolder.subtitle2.setText(song.albumName);
Glide.with(itemHolder.itemView.getContext()).load(ListenerUtil.getAlbumArtUri(song.albumId).toString()).error(ATEUtil.getDefaultAlbumDrawable(mContext)).placeholder(ATEUtil.getDefaultAlbumDrawable(mContext)).centerCrop().into(itemHolder.image);
setOnPopupMenuListener(itemHolder, 0, position);
break;
case 1:
Album album = (Album) searchResults.get(position);
itemHolder.title.setText(album.title);
itemHolder.subtitle1.setText(album.artistName);
itemHolder.subtitle2.setText(ListenerUtil.makeLabel(mContext, R.plurals.Nsongs, album.songCount));
Glide.with(itemHolder.itemView.getContext()).load(ListenerUtil.getAlbumArtUri(album.id).toString()).asBitmap().placeholder(ATEUtil.getDefaultAlbumDrawable(mContext)).error(ATEUtil.getDefaultAlbumDrawable(mContext)).centerCrop().into(itemHolder.image);
if (ListenerUtil.isLollipop())
itemHolder.image.setTransitionName("transition_album_art" + position);
setOnPopupMenuListener(itemHolder, 1, position);
break;
case 2:
Artist artist = (Artist) searchResults.get(position);
itemHolder.title.setText(artist.name);
itemHolder.subtitle1.setText(ListenerUtil.makeLabel(mContext, R.plurals.Nalbums, artist.albumCount));
itemHolder.subtitle2.setText(ListenerUtil.makeLabel(mContext, R.plurals.Nsongs, artist.songCount));
String artistArtJson = PreferencesUtility.getInstance(mContext).getArtistArt(artist.id);
if (!TextUtils.isEmpty(artistArtJson)) {
ArtistArt artistArt = new Gson().fromJson(artistArtJson, ArtistArt.class);
Glide.with(mContext).load(artistArt.getLarge()).asBitmap().placeholder(ATEUtil.getDefaultSingerDrawable(mContext)).diskCacheStrategy(DiskCacheStrategy.SOURCE).error(ATEUtil.getDefaultSingerDrawable(mContext)).into(itemHolder.image);
}
if (ListenerUtil.isLollipop())
itemHolder.image.setTransitionName("transition_artist_art" + position);
setOnPopupMenuListener(itemHolder, 2, position);
break;
case 10:
itemHolder.sectionHeader.setText((String) searchResults.get(position));
case 3:
break;
}
}
use of io.hefuyi.listener.mvp.model.Song in project ListenerMusicPlayer by hefuyicoder.
the class AlbumSongsAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(AlbumSongsAdapter.ItemHolder itemHolder, int i) {
Song localItem = arraylist.get(i);
itemHolder.title.setText(localItem.title);
itemHolder.artist.setText(localItem.artistName);
itemHolder.album.setText(localItem.albumName);
Glide.with(mContext).load(ListenerUtil.getAlbumArtUri(localItem.albumId).toString()).diskCacheStrategy(DiskCacheStrategy.SOURCE).error(ATEUtil.getDefaultAlbumDrawable(mContext)).centerCrop().into(itemHolder.albumArt);
if (MusicPlayer.getCurrentAudioId() == localItem.id) {
itemHolder.title.setTextColor(ATEUtil.getThemeAccentColor(mContext));
} else {
itemHolder.title.setTextColor(ATEUtil.getThemeTextColorPrimary(mContext));
}
setOnPopupMenuListener(itemHolder, i);
}
Aggregations