package net.oschina.gitapp.adapter;
import java.util.List;
import net.oschina.gitapp.R;
import net.oschina.gitapp.bean.Issue;
import net.oschina.gitapp.bean.URLs;
import net.oschina.gitapp.bean.User;
import net.oschina.gitapp.common.BitmapManager;
import net.oschina.gitapp.common.HtmlRegexpUtils;
import net.oschina.gitapp.common.StringUtils;
import net.oschina.gitapp.common.UIHelper;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.text.Html;
import android.text.Spanned;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;
/**
* 项目Issues列表适配器
* @created 2014-05-28 上午11:19
* @author 火蚁(http://my.oschina.net/LittleDY)
*
* 最后更新:
* 更新者:
*/
public class ProjectIssuesListAdapter extends MyBaseAdapter<Issue> {
private BitmapManager bmpManager;
static class ListItemView {
public ImageView face;//用户头像
public TextView title;
public TextView description;
public TextView username;
public TextView date;
public TextView comment_count;// 评论数量
}
public ProjectIssuesListAdapter(Context context, List<Issue> data, int resource) {
super(context, data, resource);
this.bmpManager = new BitmapManager(BitmapFactory.decodeResource(
context.getResources(), R.drawable.widget_dface_loading));
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ListItemView listItemView = null;
if (convertView == null) {
//获取list_item布局文件的视图
convertView = listContainer.inflate(this.itemViewResource, null);
listItemView = new ListItemView();
//获取控件对象
listItemView.face = (ImageView) convertView.findViewById(R.id.projectissues_listitem_userface);
listItemView.title = (TextView) convertView.findViewById(R.id.projectissues_listitem_title);
listItemView.description = (TextView) convertView.findViewById(R.id.projectissues_listitem_description);
listItemView.username = (TextView) convertView.findViewById(R.id.projectissues_listitem_author);
listItemView.date = (TextView) convertView.findViewById(R.id.projectissues_listitem_date);
listItemView.comment_count = (TextView) convertView.findViewById(R.id.projectissues_listitem_count);
//设置控件集到convertView
convertView.setTag(listItemView);
}else {
listItemView = (ListItemView)convertView.getTag();
}
final Issue issue = listData.get(position);
// 1.加载头像
String portraitURL = issue.getAuthor() == null ? "" : issue.getAuthor().getNew_portrait();
if (portraitURL.endsWith("portrait.gif") || StringUtils.isEmpty(portraitURL)) {
listItemView.face.setImageResource(R.drawable.mini_avatar);
} else {
bmpManager.loadBitmap(portraitURL, listItemView.face);
}
listItemView.face.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
User user = issue.getAuthor();
if (user == null) {
return;
}
UIHelper.showUserInfoDetail(context, user, null);
}
});
// 2.显示相关信息
listItemView.title.setText(issue.getTitle());
if (StringUtils.isEmpty(issue.getDescription())) {
listItemView.description.setText("暂无描述");
} else {
listItemView.description.setText(HtmlRegexpUtils.filterHtml(issue.getDescription()));
}
listItemView.username.setText(issue.getAuthor() == null ? "" : issue.getAuthor().getName());
listItemView.date.setText(StringUtils.friendly_time(issue.getCreatedAt()));
return convertView;
}
}