package net.coding.program.common.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import net.coding.program.R;
import net.coding.program.common.ImageLoadTool;
import net.coding.program.common.ViewHolder;
import net.coding.program.model.AttachmentFileObject;
import net.coding.program.search.HoloUtils;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.List;
/**
* Created by Vernon on 15/11/30.
*/
public class SearchFileAdapter extends BaseAdapter {
private List<AttachmentFileObject> mData;
private Context context;
private String key;
public SearchFileAdapter(List<AttachmentFileObject> mData, String key, Context context) {
this.mData = mData;
this.key = key;
this.context = context;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = View.inflate(context, R.layout.search_file_list, null);
}
TextView txtTitle = ViewHolder.get(convertView, R.id.txtTitle);
ImageView fileImg = ViewHolder.get(convertView, R.id.fileImg);
TextView txtFileSize = ViewHolder.get(convertView, R.id.txtFileSize);
TextView txtContent = ViewHolder.get(convertView, R.id.txtContent);
AttachmentFileObject bean = mData.get(position);
HoloUtils.setHoloText(txtTitle, key, bean.getName());
txtFileSize.setText(getDataSize(bean.getSize()));
SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
txtContent.setText(bean.owner.name + " 创建于 " + format.format(bean.created_at));
ImageLoader.getInstance().displayImage(bean.owner.avatar, fileImg, ImageLoadTool.optionsRounded2);
return convertView;
}
/**
* 返回byte的数据大小对应的文本
*
* @param size
* @return
*/
public static String getDataSize(long size) {
DecimalFormat formater = new DecimalFormat("####.00");
if (size < 1024) {
return size + "bytes";
} else if (size < 1024 * 1024) {
float kbsize = size / 1024f;
return formater.format(kbsize) + "KB";
} else if (size < 1024 * 1024 * 1024) {
float mbsize = size / 1024f / 1024f;
return formater.format(mbsize) + "MB";
} else if (size < 1024 * 1024 * 1024 * 1024) {
float gbsize = size / 1024f / 1024f / 1024f;
return formater.format(gbsize) + "GB";
} else {
return "size: error";
}
}
}