Search in sources :

Example 1 with Artist

use of com.naman14.timber.models.Artist in project Timber by naman14.

the class SearchAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final ItemHolder itemHolder, int i) {
    switch(getItemViewType(i)) {
        case 0:
            Song song = (Song) searchResults.get(i);
            itemHolder.title.setText(song.title);
            itemHolder.songartist.setText(song.albumName);
            ImageLoader.getInstance().displayImage(TimberUtils.getAlbumArtUri(song.albumId).toString(), itemHolder.albumArt, new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true).showImageOnFail(R.drawable.ic_empty_music2).resetViewBeforeLoading(true).displayer(new FadeInBitmapDisplayer(400)).build());
            setOnPopupMenuListener(itemHolder, i);
            break;
        case 1:
            Album album = (Album) searchResults.get(i);
            itemHolder.albumtitle.setText(album.title);
            itemHolder.albumartist.setText(album.artistName);
            ImageLoader.getInstance().displayImage(TimberUtils.getAlbumArtUri(album.id).toString(), itemHolder.albumArt, new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true).showImageOnFail(R.drawable.ic_empty_music2).resetViewBeforeLoading(true).displayer(new FadeInBitmapDisplayer(400)).build());
            break;
        case 2:
            Artist artist = (Artist) searchResults.get(i);
            itemHolder.artisttitle.setText(artist.name);
            String albumNmber = TimberUtils.makeLabel(mContext, R.plurals.Nalbums, artist.albumCount);
            String songCount = TimberUtils.makeLabel(mContext, R.plurals.Nsongs, artist.songCount);
            itemHolder.albumsongcount.setText(TimberUtils.makeCombinedString(mContext, albumNmber, songCount));
            LastFmClient.getInstance(mContext).getArtistInfo(new ArtistQuery(artist.name), new ArtistInfoListener() {

                @Override
                public void artistInfoSucess(LastfmArtist artist) {
                    if (artist != null && itemHolder.artistImage != null) {
                        ImageLoader.getInstance().displayImage(artist.mArtwork.get(1).mUrl, itemHolder.artistImage, new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true).showImageOnFail(R.drawable.ic_empty_music2).resetViewBeforeLoading(true).displayer(new FadeInBitmapDisplayer(400)).build());
                    }
                }

                @Override
                public void artistInfoFailed() {
                }
            });
            break;
        case 10:
            itemHolder.sectionHeader.setText((String) searchResults.get(i));
        case 3:
            break;
    }
}
Also used : LastfmArtist(com.naman14.timber.lastfmapi.models.LastfmArtist) Artist(com.naman14.timber.models.Artist) Song(com.naman14.timber.models.Song) ArtistInfoListener(com.naman14.timber.lastfmapi.callbacks.ArtistInfoListener) FadeInBitmapDisplayer(com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer) Album(com.naman14.timber.models.Album) DisplayImageOptions(com.nostra13.universalimageloader.core.DisplayImageOptions) ArtistQuery(com.naman14.timber.lastfmapi.models.ArtistQuery) LastfmArtist(com.naman14.timber.lastfmapi.models.LastfmArtist)

Example 2 with Artist

use of com.naman14.timber.models.Artist in project Timber by naman14.

the class ArtistDetailFragment method setUpArtistDetails.

private void setUpArtistDetails() {
    final Artist artist = ArtistLoader.getArtist(getActivity(), artistID);
    collapsingToolbarLayout.setTitle(artist.name);
    LastFmClient.getInstance(getActivity()).getArtistInfo(new ArtistQuery(artist.name), new ArtistInfoListener() {

        @Override
        public void artistInfoSucess(final LastfmArtist artist) {
            if (artist != null) {
                ImageLoader.getInstance().displayImage(artist.mArtwork.get(4).mUrl, artistArt, new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true).showImageOnFail(R.drawable.ic_empty_music2).build(), new SimpleImageLoadingListener() {

                    @Override
                    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                        largeImageLoaded = true;
                        try {
                            new Palette.Builder(loadedImage).generate(new Palette.PaletteAsyncListener() {

                                @Override
                                public void onGenerated(Palette palette) {
                                    Palette.Swatch swatch = palette.getVibrantSwatch();
                                    if (swatch != null) {
                                        primaryColor = swatch.getRgb();
                                        collapsingToolbarLayout.setContentScrimColor(primaryColor);
                                        if (getActivity() != null)
                                            ATEUtils.setStatusBarColor(getActivity(), Helpers.getATEKey(getActivity()), primaryColor);
                                    } else {
                                        Palette.Swatch swatchMuted = palette.getMutedSwatch();
                                        if (swatchMuted != null) {
                                            primaryColor = swatchMuted.getRgb();
                                            collapsingToolbarLayout.setContentScrimColor(primaryColor);
                                            if (getActivity() != null)
                                                ATEUtils.setStatusBarColor(getActivity(), Helpers.getATEKey(getActivity()), primaryColor);
                                        }
                                    }
                                }
                            });
                        } catch (Exception ignored) {
                        }
                    }
                });
                Handler handler = new Handler();
                handler.postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        setBlurredPlaceholder(artist);
                    }
                }, 100);
            }
        }

        @Override
        public void artistInfoFailed() {
        }
    });
}
Also used : LastfmArtist(com.naman14.timber.lastfmapi.models.LastfmArtist) Artist(com.naman14.timber.models.Artist) Palette(android.support.v7.graphics.Palette) Handler(android.os.Handler) ImageView(android.widget.ImageView) View(android.view.View) ArtistQuery(com.naman14.timber.lastfmapi.models.ArtistQuery) LastfmArtist(com.naman14.timber.lastfmapi.models.LastfmArtist) SimpleImageLoadingListener(com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener) Bitmap(android.graphics.Bitmap) ArtistInfoListener(com.naman14.timber.lastfmapi.callbacks.ArtistInfoListener)

Example 3 with Artist

use of com.naman14.timber.models.Artist in project Timber by naman14.

the class QueueLoader method getQueueSongs.

public static List<Song> getQueueSongs(Context context) {
    final ArrayList<Song> mSongList = new ArrayList<>();
    mCursor = new NowPlayingCursor(context);
    if (mCursor != null && mCursor.moveToFirst()) {
        do {
            final long id = mCursor.getLong(0);
            final String songName = mCursor.getString(1);
            final String artist = mCursor.getString(2);
            final long albumId = mCursor.getLong(3);
            final String album = mCursor.getString(4);
            final int duration = mCursor.getInt(5);
            final long artistid = mCursor.getInt(7);
            final int tracknumber = mCursor.getInt(6);
            final Song song = new Song(id, albumId, artistid, songName, artist, album, duration, tracknumber);
            mSongList.add(song);
        } while (mCursor.moveToNext());
    }
    if (mCursor != null) {
        mCursor.close();
        mCursor = null;
    }
    return mSongList;
}
Also used : Song(com.naman14.timber.models.Song) ArrayList(java.util.ArrayList)

Example 4 with Artist

use of com.naman14.timber.models.Artist in project Timber by naman14.

the class AlbumSongLoader method getSongsForAlbum.

public static ArrayList<Song> getSongsForAlbum(Context context, long albumID) {
    Cursor cursor = makeAlbumSongCursor(context, albumID);
    ArrayList arrayList = new ArrayList();
    if ((cursor != null) && (cursor.moveToFirst()))
        do {
            long id = cursor.getLong(0);
            String title = cursor.getString(1);
            String artist = cursor.getString(2);
            String album = cursor.getString(3);
            int duration = cursor.getInt(4);
            int trackNumber = cursor.getInt(5);
            /*This fixes bug where some track numbers displayed as 100 or 200*/
            while (trackNumber >= 1000) {
                //When error occurs the track numbers have an extra 1000 or 2000 added, so decrease till normal.
                trackNumber -= 1000;
            }
            long artistId = cursor.getInt(6);
            long albumId = albumID;
            arrayList.add(new Song(id, albumId, artistId, title, artist, album, duration, trackNumber));
        } while (cursor.moveToNext());
    if (cursor != null)
        cursor.close();
    return arrayList;
}
Also used : Song(com.naman14.timber.models.Song) ArrayList(java.util.ArrayList) Cursor(android.database.Cursor)

Example 5 with Artist

use of com.naman14.timber.models.Artist in project Timber by naman14.

the class LastAddedLoader method getLastAddedSongs.

public static List<Song> getLastAddedSongs(Context context) {
    ArrayList<Song> mSongList = new ArrayList<>();
    mCursor = makeLastAddedCursor(context);
    if (mCursor != null && mCursor.moveToFirst()) {
        do {
            long id = mCursor.getLong(0);
            String title = mCursor.getString(1);
            String artist = mCursor.getString(2);
            String album = mCursor.getString(3);
            int duration = mCursor.getInt(4);
            int trackNumber = mCursor.getInt(5);
            long artistId = mCursor.getInt(6);
            long albumId = mCursor.getLong(7);
            final Song song = new Song(id, albumId, artistId, title, artist, album, duration, trackNumber);
            mSongList.add(song);
        } while (mCursor.moveToNext());
    }
    if (mCursor != null) {
        mCursor.close();
        mCursor = null;
    }
    return mSongList;
}
Also used : Song(com.naman14.timber.models.Song) ArrayList(java.util.ArrayList)

Aggregations

Song (com.naman14.timber.models.Song)8 ArtistInfoListener (com.naman14.timber.lastfmapi.callbacks.ArtistInfoListener)5 ArtistQuery (com.naman14.timber.lastfmapi.models.ArtistQuery)5 LastfmArtist (com.naman14.timber.lastfmapi.models.LastfmArtist)5 Artist (com.naman14.timber.models.Artist)5 ArrayList (java.util.ArrayList)5 View (android.view.View)4 Cursor (android.database.Cursor)3 Bitmap (android.graphics.Bitmap)2 Palette (android.support.v7.graphics.Palette)2 ImageView (android.widget.ImageView)2 FadeInBitmapDisplayer (com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer)2 SimpleImageLoadingListener (com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener)2 ContentResolver (android.content.ContentResolver)1 Uri (android.net.Uri)1 Handler (android.os.Handler)1 FragmentStatePagerAdapter (android.support.v4.app.FragmentStatePagerAdapter)1 RecyclerView (android.support.v7.widget.RecyclerView)1 TextView (android.widget.TextView)1 Album (com.naman14.timber.models.Album)1