Android Open Source - PlayTunes Album List Adapter From Project Back to project page PlayTunes .
License The source code is released under:
Copyright (c) 2014, Impeccable Labs, LLC. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions ar...
If you think the Android project PlayTunes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.ideabag.playtunes.adapter;
/ / f r o m w w w . j a v a 2 s . c o m
import com.ideabag.playtunes.R;
import com.ideabag.playtunes.util.AsyncDrawable;
import com.ideabag.playtunes.util.BitmapWorkerTask;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
public class AlbumListAdapter extends AsyncQueryAdapter {
protected LayoutInflater inflater;
private int mAlbumThumbWidthPx;
public AlbumListAdapter( Context context ) {
super ( context );
inflater = ( LayoutInflater ) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
mAlbumThumbWidthPx = context.getResources().getDimensionPixelSize( R.dimen.list_item_height );
}
@Override public View getView( int position, View convertView, ViewGroup parent ) {
ViewHolder holder;
if ( null == convertView ) {
holder = new ViewHolder();
convertView = inflater.inflate( R.layout.list_item_album, null );
holder.albumArtist = ( TextView ) convertView.findViewById( R.id.AlbumArtist );
holder.albumTitle = ( TextView ) convertView.findViewById( R.id.AlbumTitle );
holder.albumThumb = ( ImageView ) convertView.findViewById( R.id.AlbumArtThumb );
holder.songCount = ( TextView ) convertView.findViewById( R.id.SongCount );
convertView.setTag( holder );
} else {
holder = ( ViewHolder ) convertView.getTag();
//holder.albumThumb.get
BitmapDrawable mAlbumArtDrawable = ( BitmapDrawable ) holder.albumThumb.getDrawable();
if ( null != mAlbumArtDrawable ) {
// Clear the drawable, but we retain the reference through mAlbumArtDrawable
holder.albumThumb.setImageBitmap( null );
//new RecycleBitmapTask().execute( mAlbumArtDrawable );
}
}
mCursor.moveToPosition( position );
//
// Set the album art
//
String albumArtUriString = mCursor.getString( mCursor.getColumnIndexOrThrow( MediaStore.Audio.Albums.ALBUM_ART ) );
if ( null != albumArtUriString ) {
//Uri albumArtUri = Uri.parse( albumArtUriString );
//holder.albumThumb.setImageURI( albumArtUri );
if ( BitmapWorkerTask.cancelPotentialWork( albumArtUriString, holder.albumThumb ) ) {
final BitmapWorkerTask task = new BitmapWorkerTask( holder.albumThumb, mAlbumThumbWidthPx );
final AsyncDrawable asyncDrawable =
new AsyncDrawable( mContext.getResources(),
null, // BitmapFactory.decodeResource( mContext.getResources(), R.drawable.no_album_art_thumb )
task );
holder.albumThumb.setImageDrawable( asyncDrawable );
task.execute( albumArtUriString );
}
} else {
holder.albumThumb.setImageResource( R.drawable.no_album_art_thumb );
}
convertView.setTag( R.id.tag_album_id, mCursor.getString( mCursor.getColumnIndexOrThrow( MediaStore.Audio.Albums._ID ) ) );
String artistName = mCursor.getString( mCursor.getColumnIndexOrThrow( MediaStore.Audio.Albums.ARTIST ) );
String albumName = mCursor.getString( mCursor.getColumnIndexOrThrow( MediaStore.Audio.Albums.ALBUM ) );
int songCount = mCursor.getInt( mCursor.getColumnIndexOrThrow( MediaStore.Audio.Albums.NUMBER_OF_SONGS ) );
holder.albumArtist.setText( artistName );
holder.albumTitle.setText( albumName );
holder.songCount.setText( "" + songCount );
return convertView;
}
static class ViewHolder {
ImageView albumThumb;
TextView songCount;
TextView albumTitle;
TextView albumArtist;
}
}
Java Source Code List com.ideabag.playtunes.PlaylistManager.java com.ideabag.playtunes.DragNDrop.DragListener.java com.ideabag.playtunes.DragNDrop.DragNDropListView.java com.ideabag.playtunes.DragNDrop.DropListener.java com.ideabag.playtunes.DragNDrop.RemoveListener.java com.ideabag.playtunes.activity.MainActivity.java com.ideabag.playtunes.activity.NowPlayingActivity.java com.ideabag.playtunes.activity.SettingsActivity.java com.ideabag.playtunes.adapter.AlbumListAdapter.java com.ideabag.playtunes.adapter.AlbumsAllAdapter.java com.ideabag.playtunes.adapter.AlbumsOneAdapter.java com.ideabag.playtunes.adapter.ArtistAlbumsAdapter.java com.ideabag.playtunes.adapter.ArtistAllSongsAdapter.java com.ideabag.playtunes.adapter.ArtistListAdapter.java com.ideabag.playtunes.adapter.ArtistSinglesAdapter.java com.ideabag.playtunes.adapter.ArtistsAllAdapter.java com.ideabag.playtunes.adapter.AsyncQueryAdapter.java com.ideabag.playtunes.adapter.GenresAllAdapter.java com.ideabag.playtunes.adapter.GenresOneAdapter.java com.ideabag.playtunes.adapter.NavigationListAdapter.java com.ideabag.playtunes.adapter.PlaylistsAllAdapter.java com.ideabag.playtunes.adapter.PlaylistsOneAdapter.java com.ideabag.playtunes.adapter.SongListAdapter.java com.ideabag.playtunes.adapter.SongsAllAdapter.java com.ideabag.playtunes.adapter.search.SearchAlbumsAdapter.java com.ideabag.playtunes.adapter.search.SearchArtistsAdapter.java com.ideabag.playtunes.adapter.search.SearchSongsAdapter.java com.ideabag.playtunes.database.MediaQuery.java com.ideabag.playtunes.dialog.AddToPlaylistDialogFragment.java com.ideabag.playtunes.dialog.CreatePlaylistDialogFragment.java com.ideabag.playtunes.dialog.FeedbackDialogFragment.java com.ideabag.playtunes.dialog.PlaylistDeleteDialogFragment.java com.ideabag.playtunes.dialog.PlaylistMenuDialogFragment.java com.ideabag.playtunes.dialog.PlaylistRenameDialogFragment.java com.ideabag.playtunes.dialog.RateAppDialogFragment.java com.ideabag.playtunes.dialog.SongMenuDialogFragment.java com.ideabag.playtunes.fragment.AlbumsAllFragment.java com.ideabag.playtunes.fragment.AlbumsOneFragment.java com.ideabag.playtunes.fragment.ArtistSinglesFragment.java com.ideabag.playtunes.fragment.ArtistsAllFragment.java com.ideabag.playtunes.fragment.ArtistsOneFragment.java com.ideabag.playtunes.fragment.FooterControlsFragment.java com.ideabag.playtunes.fragment.GenresAllFragment.java com.ideabag.playtunes.fragment.GenresOneFragment.java com.ideabag.playtunes.fragment.MusicBrowserFragment.java com.ideabag.playtunes.fragment.NavigationDrawerFragment.java com.ideabag.playtunes.fragment.NavigationFragment.java com.ideabag.playtunes.fragment.PlaylistsAllFragment.java com.ideabag.playtunes.fragment.PlaylistsOneFragment.java com.ideabag.playtunes.fragment.SaveScrollListFragment.java com.ideabag.playtunes.fragment.SongsFragment.java com.ideabag.playtunes.fragment.TrackProgressFragment.java com.ideabag.playtunes.fragment.search.SearchAlbumsFragment.java com.ideabag.playtunes.fragment.search.SearchAllFragment.java com.ideabag.playtunes.fragment.search.SearchArtistsFragment.java com.ideabag.playtunes.fragment.search.SearchFragment.java com.ideabag.playtunes.fragment.search.SearchSongsFragment.java com.ideabag.playtunes.fragment.search.SearchSuggestionsFragment.java com.ideabag.playtunes.media.AudioFocusHelper.java com.ideabag.playtunes.media.MusicFocusable.java com.ideabag.playtunes.media.MusicIntentReceiver.java com.ideabag.playtunes.media.PlaylistMediaPlayer.java com.ideabag.playtunes.media.RemoteControlClientCompat.java com.ideabag.playtunes.media.RemoteControlHelper.java com.ideabag.playtunes.service.LockscreenManager.java com.ideabag.playtunes.service.MusicPlayerService.java com.ideabag.playtunes.service.PlaybackNotification.java com.ideabag.playtunes.util.AdmobUtil.java com.ideabag.playtunes.util.AlbumSongsCountTask.java com.ideabag.playtunes.util.AsyncDrawable.java com.ideabag.playtunes.util.BitmapWorkerTask.java com.ideabag.playtunes.util.CheckRemoteVersionFileTask.java com.ideabag.playtunes.util.DrawerLayout.java com.ideabag.playtunes.util.GAEvent.java com.ideabag.playtunes.util.IMusicBrowser.java com.ideabag.playtunes.util.ISearchableAdapter.java com.ideabag.playtunes.util.LoadAlbumStackTask.java com.ideabag.playtunes.util.MergeAdapter.java com.ideabag.playtunes.util.QueryCountTask.java com.ideabag.playtunes.util.SackOfViewsAdapter.java com.ideabag.playtunes.util.SearchHistory.java com.ideabag.playtunes.util.StarToggleTask.java com.ideabag.playtunes.util.TrackerSingleton.java