Search in sources :

Example 6 with Album

use of io.hefuyi.listener.mvp.model.Album 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;
    }
}
Also used : Artist(io.hefuyi.listener.mvp.model.Artist) Song(io.hefuyi.listener.mvp.model.Song) Album(io.hefuyi.listener.mvp.model.Album) Gson(com.google.gson.Gson) ArtistArt(io.hefuyi.listener.mvp.model.ArtistArt)

Example 7 with Album

use of io.hefuyi.listener.mvp.model.Album in project ListenerMusicPlayer by hefuyicoder.

the class AlbumAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final ItemHolder itemHolder, final int i) {
    Album localItem = arraylist.get(i);
    itemHolder.title.setText(localItem.title);
    itemHolder.artist.setText(localItem.artistName);
    itemHolder.songcount.setText(ListenerUtil.makeLabel(mContext, R.plurals.Nsongs, localItem.songCount));
    Glide.with(itemHolder.itemView.getContext()).load(ListenerUtil.getAlbumArtUri(localItem.id).toString()).asBitmap().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(new SimpleTarget<Bitmap>() {

        @Override
        public void onLoadFailed(Exception e, Drawable errorDrawable) {
            if (isGrid) {
                itemHolder.footer.setBackgroundColor(ATEUtil.getThemeAlbumDefaultPaletteColor(mContext));
            }
            itemHolder.albumArt.setImageDrawable(ATEUtil.getDefaultAlbumDrawable(mContext));
            itemHolder.title.setTextColor(ATEUtil.getThemeTextColorPrimary(mContext));
            itemHolder.artist.setTextColor(ATEUtil.getThemeTextColorSecondly(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.albumArt.setImageBitmap(resource);
                            itemHolder.title.setTextColor(ColorUtil.getOpaqueColor(detailColor));
                            itemHolder.artist.setTextColor(detailColor);
                            itemHolder.songcount.setTextColor(detailColor);
                            itemHolder.popupMenu.setColorFilter(detailColor);
                        }
                    }
                });
            } else {
                itemHolder.albumArt.setImageBitmap(resource);
            }
        }
    });
    if (ListenerUtil.isLollipop())
        itemHolder.albumArt.setTransitionName("transition_album_art" + i);
    setOnPopupMenuListener(itemHolder, i);
}
Also used : Palette(android.support.v7.graphics.Palette) Bitmap(android.graphics.Bitmap) Drawable(android.graphics.drawable.Drawable) Album(io.hefuyi.listener.mvp.model.Album)

Example 8 with Album

use of io.hefuyi.listener.mvp.model.Album in project ListenerMusicPlayer by hefuyicoder.

the class ArtistSongAdapter method setUpAlbums.

private void setUpAlbums(final RecyclerView albumsRecyclerview) {
    albumsRecyclerview.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
    albumsRecyclerview.setHasFixedSize(true);
    //to add spacing between cards
    int spacingInPixels = mContext.getResources().getDimensionPixelSize(R.dimen.spacing_card);
    albumsRecyclerview.addItemDecoration(new SpacesItemDecoration(spacingInPixels));
    albumsRecyclerview.setNestedScrollingEnabled(false);
    ArtistAlbumLoader.getAlbumsForArtist(mContext, artistID).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<List<Album>>() {

        @Override
        public void call(List<Album> albumList) {
            ArtistAlbumAdapter mAlbumAdapter = new ArtistAlbumAdapter(mContext, albumList);
            albumsRecyclerview.setAdapter(mAlbumAdapter);
        }
    });
}
Also used : Album(io.hefuyi.listener.mvp.model.Album) ArrayList(java.util.ArrayList) List(java.util.List) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager)

Aggregations

Album (io.hefuyi.listener.mvp.model.Album)8 List (java.util.List)5 Song (io.hefuyi.listener.mvp.model.Song)3 NonNull (android.support.annotation.NonNull)2 RecyclerView (android.support.v7.widget.RecyclerView)2 MenuItem (android.view.MenuItem)2 View (android.view.View)2 ImageView (android.widget.ImageView)2 PopupMenu (android.widget.PopupMenu)2 TextView (android.widget.TextView)2 DialogAction (com.afollestad.materialdialogs.DialogAction)2 MaterialDialog (com.afollestad.materialdialogs.MaterialDialog)2 ArrayList (java.util.ArrayList)2 Cursor (android.database.Cursor)1 Bitmap (android.graphics.Bitmap)1 Drawable (android.graphics.drawable.Drawable)1 Palette (android.support.v7.graphics.Palette)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1 Gson (com.google.gson.Gson)1 Artist (io.hefuyi.listener.mvp.model.Artist)1