package com.music;

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;

import android.app.ListActivity;
import android.content.Context;
import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;


public class main extends ListActivity implements View.OnClickListener {
   
 private Button btn_ok;
 private Button btn_cancel;
 private ListView listview; 
 
 private static final String MEDIA_PATH = new String("/sdcard/");
 private ArrayList<Music> songs = new ArrayList<Music>();
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        btn_ok = (Button)findViewById(R.id.main_btn_ok);
        btn_cancel = (Button)findViewById(R.id.main_btn_cancel);
        listview = getListView();
       
        btn_ok.setOnClickListener(this);
        btn_cancel.setOnClickListener(this);

        // SD카드로 부터 파일 목록 불러오기
        updateSongList();
    }
   
    public void onClick(View v){
     if( v == btn_ok ){
      
     }else if( v == btn_cancel ){
      finish();
     }
    }
   
     public void updateSongList(){
     
     Music[] music = new Music[10];
     int cnt = 0;
     
     Resources r = getResources();
     BitmapDrawable mDefaultAlbumIcon = (BitmapDrawable)r.getDrawable(R.drawable.git);
     
     String[] mCursorCols = new String[]{
      MediaStore.Audio.Media._ID,
      MediaStore.Audio.Media.ARTIST,
      MediaStore.Audio.Media.TITLE,
      MediaStore.Audio.Media.ALBUM
     };
     
     Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, mCursorCols, null, null, null);
     
     if( cur.moveToFirst() ){      
      
      String title, artist, album;
      Drawable d;
      
      int titleColumn = cur.getColumnIndex(MediaStore.Audio.Media.TITLE);  
      int artistColumn = cur.getColumnIndex(MediaStore.Audio.Media.ARTIST); 
      int albumColumn = cur.getColumnIndex(MediaStore.Audio.Media.ALBUM);    
      
      do{
       title = cur.getString(titleColumn);
       artist = cur.getString(artistColumn);
       album = cur.getString(albumColumn);
       
       d = MusicUtils.getCachedArtwork(this, cnt+1, mDefaultAlbumIcon);
 
       music[cnt] = new Music(artist, title, album, d);
       songs.add(music[cnt]);
       cnt++;
      }while(cur.moveToNext());      
     }
    
     MusicInformation songList = new MusicInformation(this, R.layout.row, songs);
      
  setListAdapter(songList);
  listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);     
    }
   
    @Override
    // 리스트에서 곡을 클릭했을때 재생
    protected void onListItemClick(ListView l,View v, int position, long id){ 
     File home = new File(MEDIA_PATH);
     String[] list = new String[10];
     list = home.list(new MP3Filter());
    }
     
    private class MusicInformation extends ArrayAdapter<Music>{
     private ArrayList<Music> items;
     
     public MusicInformation(Context context, int textViewResourceId, ArrayList<Music> items){
      super(context, textViewResourceId, items);
   this.items = items;
     }
          
     @Override
     public View getView(int position, View view, ViewGroup parent){
      View v = view;
      if( v == null ){
       LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       v = vi.inflate(R.layout.row, null);
      }
      Music m = items.get(position);
      if( m != null ){
       ImageView imageview = (ImageView)v.findViewById(R.id.row_album_art);
       TextView tt = (TextView)v.findViewById(R.id.row_artist);
       TextView bt = (TextView)v.findViewById(R.id.row_title);
       
       if( tt != null ){
        tt.setText(m.getGasu() + " - " + m.getJemok()); 
       }
       if( bt != null ){
        bt.setText(m.getAlbumName());
       }
       if( imageview != null ){
        imageview.setImageDrawable(m.getImage());
       }
      }
      
      return v;
     }
    }
   
    class Music{
     private String gasu;
     private String jemok;
     private String albumName;
     private Drawable drawimage;
     
     public Music(String _gasu, String _jemok, String _albumName, Drawable _image){
      this.gasu = _gasu;
      this.jemok = _jemok;
      this.albumName = _albumName;
      this.drawimage = _image;
     }
     
     public String getGasu(){
      return gasu; 
     }
     
     public String getJemok(){
      return jemok; 
     }
     
     public String getAlbumName(){
      return albumName; 
     }
     
     public Drawable getImage(){
      return drawimage; 
     }
    }
   
    class MP3Filter implements FilenameFilter{
     public boolean accept(File dir, String name){
      return name.endsWith(".mp3"); 
     }
    }
}


이게 재생이 안되는데
여기에서 on click 에 어떤걸 넣어줘야... 재생이 될까요,,