2 package com.andrew.apollo.adapters;
\r
4 import android.content.Context;
\r
5 import android.database.Cursor;
\r
6 import android.graphics.drawable.AnimationDrawable;
\r
7 import android.os.RemoteException;
\r
8 import android.support.v4.widget.SimpleCursorAdapter;
\r
9 import android.view.View;
\r
10 import android.view.ViewGroup;
\r
11 import com.andrew.apollo.R;
\r
12 import com.andrew.apollo.list.fragments.ArtistAlbumsFragment;
\r
13 import com.andrew.apollo.utils.ImageUtils;
\r
14 import com.andrew.apollo.utils.MusicUtils;
\r
15 import com.andrew.apollo.views.ViewHolderList;
\r
16 import com.androidquery.AQuery;
\r
18 import java.lang.ref.WeakReference;
\r
21 * @author Andrew Neal
\r
23 public class ArtistAlbumAdapter extends SimpleCursorAdapter {
\r
25 private AnimationDrawable mPeakOneAnimation, mPeakTwoAnimation;
\r
27 private WeakReference<ViewHolderList> holderReference;
\r
29 public ArtistAlbumAdapter(Context context, int layout, Cursor c, String[] from, int[] to,
\r
31 super(context, layout, c, from, to, flags);
\r
35 * Used to quickly our the ContextMenu
\r
37 private final View.OnClickListener showContextMenu = new View.OnClickListener() {
\r
39 public void onClick(View v) {
\r
40 v.showContextMenu();
\r
45 public View getView(int position, View convertView, ViewGroup parent) {
\r
46 final View view = super.getView(position, convertView, parent);
\r
48 ViewHolderList viewholder;
\r
52 viewholder = new ViewHolderList(view);
\r
53 holderReference = new WeakReference<ViewHolderList>(viewholder);
\r
54 view.setTag(holderReference.get());
\r
57 viewholder = (ViewHolderList)convertView.getTag();
\r
61 AQuery aq = new AQuery(view);
\r
64 String albumName = mCursor.getString(ArtistAlbumsFragment.mAlbumNameIndex);
\r
65 holderReference.get().mViewHolderLineOne.setText(albumName);
\r
68 String artistName = mCursor.getString(ArtistAlbumsFragment.mArtistNameIndex);
\r
71 int songs_plural = mCursor.getInt(ArtistAlbumsFragment.mSongCountIndex);
\r
72 String numSongs = MusicUtils.makeAlbumsLabel(mContext, 0, songs_plural, true);
\r
73 holderReference.get().mViewHolderLineTwo.setText(numSongs);
\r
75 ImageUtils.setAlbumImage(viewholder.mViewHolderImage, artistName, albumName);
\r
77 holderReference.get().mQuickContext.setOnClickListener(showContextMenu);
\r
79 // Now playing indicator
\r
80 long currentalbumid = MusicUtils.getCurrentAlbumId();
\r
81 long albumid = mCursor.getLong(ArtistAlbumsFragment.mAlbumIdIndex);
\r
82 if (currentalbumid == albumid) {
\r
83 holderReference.get().mPeakOne.setImageResource(R.anim.peak_meter_1);
\r
84 holderReference.get().mPeakTwo.setImageResource(R.anim.peak_meter_2);
\r
85 mPeakOneAnimation = (AnimationDrawable)holderReference.get().mPeakOne.getDrawable();
\r
86 mPeakTwoAnimation = (AnimationDrawable)holderReference.get().mPeakTwo.getDrawable();
\r
88 if (MusicUtils.mService.isPlaying()) {
\r
89 mPeakOneAnimation.start();
\r
90 mPeakTwoAnimation.start();
\r
92 mPeakOneAnimation.stop();
\r
93 mPeakTwoAnimation.stop();
\r
95 } catch (RemoteException e) {
\r
96 e.printStackTrace();
\r
99 holderReference.get().mPeakOne.setImageResource(0);
\r
100 holderReference.get().mPeakTwo.setImageResource(0);
\r