package com.compdigitec.libvlcandroidsample; import java.io.File; import java.util.ArrayList; import org.videolan.libvlc.LibVLC; import org.videolan.libvlc.Media; import android.database.DataSetObserver; import android.os.Environment; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; /** * List adapter used to drive the ListView in the activity. */ public class DirectoryAdapter extends BaseAdapter { public final static String TAG = "LibVLCAndroidSample/DirectoryAdapter"; private ArrayList<String> mFiles = new ArrayList<String>(); private boolean mAudio; public DirectoryAdapter() { mAudio = true; refresh(); } public boolean isAudioMode() { return mAudio; } public void setAudioMode(boolean b) { mAudio = b; } public void refresh() { Log.d(TAG, "Refreshing adapter in " + (mAudio ? "audio mode" : "video mode")); File[] files = Environment.getExternalStorageDirectory().listFiles(); mFiles.clear(); for(File f : files) { // Filter using libVLC's 'supported audio formats' filter. if(f.getName().contains(".")) { int i = f.getName().lastIndexOf("."); if (i > 0) { if ((mAudio && Media.AUDIO_EXTENSIONS.contains(f.getName() .substring(i))) || (!mAudio && Media.VIDEO_EXTENSIONS.contains(f .getName().substring(i)))) { mFiles.add(f.getName()); } } } } this.notifyDataSetChanged(); } @Override public int getCount() { return mFiles.size(); } @Override public Object getItem(int position) { return LibVLC.PathToURI(Environment.getExternalStorageDirectory() .getAbsolutePath() + '/' + mFiles.get(position)); } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public int getItemViewType(int arg0) { return 0; } @Override public View getView(int position, View v, ViewGroup parent) { if(v == null) { v = new TextView(parent.getContext()); } ((TextView)v).setText(mFiles.get(position)); return v; } @Override public int getViewTypeCount() { return 1; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return false; } @Override public boolean isEmpty() { return mFiles.isEmpty(); } @Override public void registerDataSetObserver(DataSetObserver arg0) { super.registerDataSetObserver(arg0); } @Override public void unregisterDataSetObserver(DataSetObserver arg0) { super.unregisterDataSetObserver(arg0); } @Override public boolean areAllItemsEnabled() { // TODO Auto-generated method stub return false; } @Override public boolean isEnabled(int arg0) { return true; } }