package com.kitty.poclient.adapter; import java.util.List; import org.fourthline.cling.support.model.DIDLObject; import org.fourthline.cling.support.model.container.Container; import org.fourthline.cling.support.model.item.Item; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.kitty.poclient.R; import com.kitty.poclient.fragment.usb.ExternalDeviceFragment; import com.kitty.poclient.util.UsbFileUtil; public class UsbFileListAdapter extends BaseAdapter{ private static String TAG = "UsbFileListAdapter"; private LayoutInflater mInflater; private final List<DIDLObject> didlObjectList; public UsbFileListAdapter(Context context, final List<DIDLObject> files){ /* 参数初始化 */ mInflater = LayoutInflater.from(context); this.didlObjectList = files; } @Override public int getCount() { return didlObjectList.size(); } @Override public Object getItem(int position) { return didlObjectList.get(position); } @Override public long getItemId(int position) { return position; } private void updatePlayStutasImage(String playingUri, Holder holder, DIDLObject didlObject){ if (playingUri.equals(didlObject.getId()) // 在文件列表点击即显示“小喇叭” cue文件 || playingUri.equals("xxbox://usb?source=" + didlObject.getId()) //音乐文件 || playingUri.equals(didlObject.getId().split("&start")[0]) ) { holder.ivChosen.setVisibility(View.VISIBLE); holder.ivPlaying.setVisibility(View.VISIBLE); holder.ivPlaying.setText(""); holder.ivPlaying.setBackgroundResource(R.drawable.playing_icon); }else{ holder.ivChosen.setVisibility(View.INVISIBLE); holder.ivPlaying.setVisibility(View.INVISIBLE); } } @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder = null; if(convertView == null) { /* 使用自定义的wailianitems作为Layout */ convertView = mInflater.inflate(R.layout.file_item, null); holder = new Holder(convertView); holder.fileicon = (ImageView) convertView.findViewById(R.id.fileicon); holder.filepath = (TextView) convertView.findViewById(R.id.filepath); holder.filename = (TextView) convertView.findViewById(R.id.filename); convertView.setTag(holder); }else{ holder = (Holder) convertView.getTag(); } if(didlObjectList != null && didlObjectList.size()>0){ DIDLObject didlObject = didlObjectList.get(position); try { // 判断是否为cue的子文件 if (UsbFileUtil.isCue(didlObject.getParentID())) { // cue child holder.fileicon.setImageResource(R.drawable.usb_music); holder.filepath.setText(didlObject.getParentID() + "/" + didlObject.getTitle()); holder.filename.setText(didlObject.getTitle()); } else { holder.filepath.setText(didlObject.getId()); String filename = UsbFileUtil.getFileNameFromAbsolutePath(didlObject.getId()); holder.filename.setText(filename); String lowerfilename = filename.toLowerCase(); if (didlObject instanceof Container) { if (UsbFileUtil.isUsbRootDir(didlObject.getParentID())) { holder.fileicon.setImageResource(R.drawable.usb_disk);// USB根目录 } else { holder.fileicon.setImageResource(R.drawable.usb_folder);// USB子目录 } } else if (didlObject instanceof Item) { if (UsbFileUtil.isMusic(lowerfilename)) { holder.fileicon.setImageResource(R.drawable.usb_music); } else if (UsbFileUtil.isVideo(lowerfilename)) { holder.fileicon.setImageResource(R.drawable.usb_video); } else { // TODO 其他未支持类型 } } } //小啦叭 //主动显示 控制端 if(ExternalDeviceFragment.currentUri!=null){ updatePlayStutasImage(ExternalDeviceFragment.currentUri, holder, didlObject); } } catch (Exception e) { holder.fileicon.setImageResource(R.drawable.usb_folder); e.printStackTrace(); Log.e(TAG, e.getMessage()); } } return convertView; } class Holder{ public ImageView fileicon; public TextView filename; public TextView filepath; // private TextView tvName; private TextView tvArtist; private TextView tvNum; private ImageView ivSavingState; private ImageView ivChosen; private TextView ivPlaying; public Holder(View convertView) { // tvName = (TextView) convertView.findViewById(R.id.tv_music_name); // tvNum = (TextView) convertView.findViewById(R.id.tv_num); tvArtist = (TextView) convertView.findViewById(R.id.tv_music_artist); ivSavingState = (ImageView) convertView.findViewById(R.id.iv_saving_state); ivChosen = (ImageView) convertView.findViewById(R.id.iv_chosen); ivPlaying = (TextView) convertView.findViewById(R.id.iv_playing); // tvArtist.setVisibility(View.GONE); // tvArtist.setVisibility(View.GONE); // tvArtist.setVisibility(View.GONE); // tvArtist.setVisibility(View.GONE); } } }