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;
}
}
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() {
}
});
}
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;
}
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;
}
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;
}
Aggregations