package com.mogujie.tt.adapter;
import java.text.ParseException;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.mogujie.tt.R;
import com.mogujie.tt.biz.SearchHelper;
import com.mogujie.tt.config.SysConstant;
import com.mogujie.tt.entity.SearchResultItem;
import com.mogujie.tt.log.Logger;
import com.mogujie.widget.imageview.MGWebImageView;
public class SearchAdapter extends BaseAdapter {
private LayoutInflater inflater = null;
private static Logger logger = Logger.getLogger(SearchAdapter.class);
public SearchAdapter(Context context) throws ParseException {
this.inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
int count = SearchHelper.getResultList().size();
return count;
}
@Override
public Object getItem(int position) {
if (position >= getCount() || position < 0) {
return null;
}
return SearchHelper.getResultList().get(position);
}
@Override
public long getItemId(int position) {
if (position >= getCount() && getCount() > 0) {
return getCount() - 1;
} else if (position < 0) {
return 0;
}
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
try {
SearchViewHolder holder = null;
if (null == convertView && null != inflater) {
convertView = inflater.inflate(R.layout.tt_item_searchresult, null);
if (null != convertView) {
holder = initHolder(convertView);
convertView.setTag(holder);
}
} else {
holder = (SearchViewHolder) convertView.getTag();
}
setHolder(holder, SearchHelper.getResultList().get(position));
return convertView;
} catch (Exception e) {
logger.e(e.getMessage());
return null;
}
}
private void setHolder(SearchViewHolder holder, SearchResultItem item) {
if (null == item || null == holder)
return;
if (item.getType() == SysConstant.CHAT_SEARCH_RESULT_TYPE_CATEGORY) {
holder.categoryTitle.setText(item.getTitle());
holder.categoryTitle.setVisibility(View.VISIBLE);
holder.itemContainer.setVisibility(View.GONE);
} else {
holder.categoryTitle.setVisibility(View.GONE);
if (null == item.getAvatar() || !item.getAvatar().contains("http")) {
holder.avatar.setImageResource(R.drawable.tt_default_user_portrait_corner);
} else {
holder.avatar.setImageUrlNeedFit(item.getAvatar());
}
holder.itemContainer.setVisibility(View.VISIBLE);
holder.title.setText(item.getTitle());
holder.content.setText(item.getContent());
}
}
private SearchViewHolder initHolder(View convertView) {
SearchViewHolder holder = new SearchViewHolder();
holder.avatar = (MGWebImageView) convertView.findViewById(R.id.contact_portrait);
holder.title = (TextView) convertView.findViewById(R.id.shop_name);
holder.content = (TextView) convertView.findViewById(R.id.message_body);
holder.categoryTitle = (TextView) convertView.findViewById(R.id.contact_category_title);
holder.itemContainer = (RelativeLayout) convertView.findViewById(R.id.item_container);
return holder;
}
public static final class SearchViewHolder {
public MGWebImageView avatar;
public TextView title;
public TextView content;
public TextView categoryTitle;
public RelativeLayout itemContainer;
}
}