SongBrowserAdapter.java :  » Media » androiddrool » com » drool » mediaplayer » Adapters » Android Open Source

Android Open Source » Media » androiddrool 
androiddrool » com » drool » mediaplayer » Adapters » SongBrowserAdapter.java
package com.drool.mediaplayer.Adapters;

import com.drool.mediaplayer.R;

import android.content.Context;
import android.database.Cursor;

import android.net.Uri;
import android.provider.MediaStore;
import android.provider.MediaStore.Audio;
import android.provider.MediaStore.Video;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class SongBrowserAdapter extends CursorAdapter{

  private static String TAG ="SongBrowserAdapter";
  private Cursor songAlbumCursor = null;
  private String currentSong;
  
  public SongBrowserAdapter(Context context, Cursor c, Cursor albumCursor, String currentSong) {
    super(context, c);
    songAlbumCursor = albumCursor;
    this.currentSong = currentSong;
    // TODO Auto-generated constructor stub
  }
  
  public void setCurrentSong(String currentSong){
    this.currentSong = currentSong;
  }

  @Override
  public void bindView(View view, Context context, Cursor cursor) {
    // TODO Auto-generated method stub
    //Log.i("adapter", "Binding ID" + cursor.getString(0) );
    Long duration;
    
    TextView nameTxt = (TextView)view.findViewById(R.id.text1);
    TextView artistTxt = (TextView)view.findViewById(R.id.text3);
    TextView durationTxt = (TextView)view.findViewById(R.id.text2); 
    TextView descTxt = (TextView)view.findViewById(R.id.text4);
    ImageView albumArt = (ImageView) view.findViewById(R.id.albumImage);
    ImageView selectedImage = (ImageView) view.findViewById(R.id.selectedImage);
    
    nameTxt.setText(cursor.getString(cursor.getColumnIndex(Audio.Media.TITLE)));
    artistTxt.setText("Artist: " + cursor.getString(cursor.getColumnIndex(Audio.Media.ARTIST)));
    
    try{
      duration = Long.valueOf(cursor.getString(cursor.getColumnIndex(Audio.Media.DURATION)));
    }catch(Exception e){
      Log.e(TAG, "Duration error:",e);
      duration = 0L;
    }
    
    
    int minDuration = (int) ((duration / 1000) / 60);
    
    int secDuration = (int) ((duration / 1000) % 60);
    
    durationTxt.setText(Integer.toString(minDuration) + ":" + Integer.toString(secDuration));
    
    albumArt.setImageResource(R.drawable.musicdelta);
    if (cursor.getString(0).equals(currentSong)){
      selectedImage.setImageResource(R.drawable.musicdelta);
    }else
      selectedImage.setImageDrawable(null);
    
    if (songAlbumCursor.getCount()> 0){
      //Log.i(TAG, cursor.getString(cursor.getColumnIndex(Audio.Media.ALBUM_ID)));
      songAlbumCursor.moveToFirst();
      while(!songAlbumCursor.isAfterLast()){
        if (songAlbumCursor.getString(0).equals(cursor.getString(cursor.getColumnIndex(Audio.Media.ALBUM_ID)))){
          if (songAlbumCursor.getString(songAlbumCursor.getColumnIndex(Audio.Albums.ALBUM_ART)) != null)
            albumArt.setImageURI(Uri.parse(songAlbumCursor.getString(songAlbumCursor.getColumnIndex(Audio.Albums.ALBUM_ART))));
          break;
        }
        songAlbumCursor.moveToNext();
      }
    }
    
    if (cursor.getString(cursor.getColumnIndex(Audio.Media.ALBUM))!= null)
      descTxt.setText(cursor.getString(cursor.getColumnIndex(Audio.Media.ALBUM)));
    else
      descTxt.setText("Description: Unknown");
    
    //Log.i(TAG,cursor.getString(cursor.getColumnIndex(Video.Media.DURATION)) + "/" + Long.toString(duration));
    
    
    
  }

  @Override
  public View newView(Context context, Cursor cursor, ViewGroup parent) {
    // TODO Auto-generated method stub
    
    LayoutInflater inflater = LayoutInflater.from(context);
    View v = inflater.inflate(R.layout.layadapter, parent, false);
    bindView(v, context, cursor);
    return v;
  }
  
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.