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.grid.fragments.AlbumsFragment;
\r
13 import com.andrew.apollo.utils.ImageUtils;
\r
14 import com.andrew.apollo.utils.MusicUtils;
\r
15 import com.andrew.apollo.views.ViewHolderGrid;
\r
16 import com.androidquery.AQuery;
\r
18 import java.lang.ref.WeakReference;
\r
21 * @author Andrew Neal
\r
23 public class AlbumAdapter extends SimpleCursorAdapter {
\r
25 private AnimationDrawable mPeakOneAnimation, mPeakTwoAnimation;
\r
27 private WeakReference<ViewHolderGrid> holderReference;
\r
29 public AlbumAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) {
\r
30 super(context, layout, c, from, to, flags);
\r
34 public View getView(final int position, View convertView, ViewGroup parent) {
\r
35 final View view = super.getView(position, convertView, parent);
\r
37 final ViewHolderGrid viewholder;
\r
41 viewholder = new ViewHolderGrid(view);
\r
42 holderReference = new WeakReference<ViewHolderGrid>(viewholder);
\r
43 view.setTag(holderReference.get());
\r
46 viewholder = (ViewHolderGrid)convertView.getTag();
\r
50 final AQuery aq = new AQuery(view);
\r
53 String albumName = mCursor.getString(AlbumsFragment.mAlbumNameIndex);
\r
54 holderReference.get().mViewHolderLineOne.setText(albumName);
\r
57 String artistName = mCursor.getString(AlbumsFragment.mArtistNameIndex);
\r
58 holderReference.get().mViewHolderLineTwo.setText(artistName);
\r
60 ImageUtils.setAlbumImage(viewholder.mViewHolderImage, artistName, albumName);
\r
62 // Now playing indicator
\r
63 long currentalbumid = MusicUtils.getCurrentAlbumId();
\r
64 long albumid = mCursor.getLong(AlbumsFragment.mAlbumIdIndex);
\r
65 if (currentalbumid == albumid) {
\r
66 holderReference.get().mPeakOne.setImageResource(R.anim.peak_meter_1);
\r
67 holderReference.get().mPeakTwo.setImageResource(R.anim.peak_meter_2);
\r
68 mPeakOneAnimation = (AnimationDrawable)holderReference.get().mPeakOne.getDrawable();
\r
69 mPeakTwoAnimation = (AnimationDrawable)holderReference.get().mPeakTwo.getDrawable();
\r
71 if (MusicUtils.mService.isPlaying()) {
\r
72 mPeakOneAnimation.start();
\r
73 mPeakTwoAnimation.start();
\r
75 mPeakOneAnimation.stop();
\r
76 mPeakTwoAnimation.stop();
\r
78 } catch (RemoteException e) {
\r
79 e.printStackTrace();
\r
82 holderReference.get().mPeakOne.setImageResource(0);
\r
83 holderReference.get().mPeakTwo.setImageResource(0);
\r