package com.lan.nicehair.adapter;
import java.util.LinkedList;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import butterknife.ButterKnife;
import butterknife.InjectView;
import com.lan.nicehair.R;
import com.lan.nicehair.activity.MainActivity;
import com.lan.nicehair.activity.PhotoPagerActivity;
import com.lan.nicehair.common.CircleImageView;
import com.lan.nicehair.common.SquareImageView;
import com.lan.nicehair.common.model.Comment;
import com.lan.nicehair.common.model.ZoneAllItem;
import com.lan.nicehair.common.refresh_list.RefreshListView;
import com.lan.nicehair.utils.ImageFetcher;
import com.lan.nicehair.utils.Utils;
public class ZoneAllAdapter extends BaseAdapter {
private Context mContext;
public LinkedList<ZoneAllItem> mListInfo;
private ImageFetcher mImageFetcher;
private ImageFetcher mImagePic;
private RefreshListView mListView;
private int color;
public ZoneAllAdapter(Context context,LinkedList<ZoneAllItem> listInfo,ImageFetcher imageFetcher,RefreshListView mListView) {
this.mContext=context;
this.mListInfo=listInfo;
this.mImageFetcher = imageFetcher;
mImagePic=new ImageFetcher(context, 400);
mImagePic.setLoadingImage(R.drawable.hairscan_loading);
color=context.getResources().getColor(R.color.zone_list_username);
this.mListView=mListView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mListInfo==null?1:mListInfo.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public void addItemLast(List<ZoneAllItem> datas) {
mListInfo.addAll(datas);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final ViewHolder holder;
if(convertView==null) {
convertView=LayoutInflater.from(mContext).inflate(R.layout.item_topic, null);
holder=new ViewHolder(convertView);
convertView.setTag(holder);
}else {
holder=(ViewHolder) convertView.getTag();
}
final ZoneAllItem info=mListInfo.get(position);
if(position==0) {
holder.mTvTop.setVisibility(View.VISIBLE);
}else {
holder.mTvTop.setVisibility(View.GONE);
}
mImageFetcher.loadImage(info.getHeadUrl(), holder.mIvHead);
holder.mTvName.setText(info.getName());
holder.mTvLevel.setText("LV"+info.getLevel());
holder.mTvTime.setText(info.getTime());
holder.mTvTitle.setText(info.getTitle());
holder.mTvContent.setText(info.getContent());
Utils.addLinks(color,"",holder.mTvContent);
if(info.getPicArray()!=null&&info.getPicArray().length>0) {
holder.mLayoutImg.setVisibility(View.VISIBLE);
mImagePic.loadImage(info.getPicArray()[0], holder.mIvPic1);
mImagePic.loadImage(info.getPicArray()[1], holder.mIvPic2);
mImagePic.loadImage(info.getPicArray()[2], holder.mIvPic3);
}else {
holder.mLayoutImg.setVisibility(View.GONE);
}
holder.mTvLikeNum.setText(String.valueOf(info.getPariseNum()));
holder.mTvCommentNum.setText(String.valueOf(info.getChatNum()));
if(info.getListComment()!=null&&info.getListComment().size()>0) {
holder.mLayoutCommentDetail.setVisibility(View.VISIBLE);
for(int i=0;i<info.getListComment().size();i++) {
Comment com=info.getListComment().get(i);
String content=com.getName()+":"+com.getContent();
if(i==0) {
mImageFetcher.loadImage(com.getHeadUrl(), holder.mIvHead1);
holder.mTvComment1.setText(content);
Utils.addLinks(color,com.getName(),holder.mTvComment1);
}else if(i==1) {
mImageFetcher.loadImage(com.getHeadUrl(), holder.mIvHead2);
holder.mTvComment2.setText(content);
Utils.addLinks(color,com.getName(),holder.mTvComment2);
}else if(i==2) {
mImageFetcher.loadImage(com.getHeadUrl(), holder.mIvHead3);
holder.mTvComment3.setText(content);
Utils.addLinks(color,com.getName(),holder.mTvComment3);
}
}
}else {
holder.mLayoutCommentDetail.setVisibility(View.GONE);
}
holder.mLayoutShare.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String text=info.getContent();
Intent intent=new Intent(Intent.ACTION_SEND);
if(info.getHeadUrl()!=null) {
String path=mImagePic.getImageCache().getPathFromDiskCache(info.getHeadUrl());
Uri imageFileUri = Uri.parse(path);
intent.putExtra(Intent.EXTRA_STREAM, imageFileUri);
}
// intent.setType("text/plain");
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_TEXT, text);
intent.putExtra(Intent.EXTRA_TITLE, info.getTitle());
mContext.startActivity(Intent.createChooser(intent, info.getTitle()));
}
});
holder.mLayoutImg.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(mContext,PhotoPagerActivity.class);
intent.putExtra("array", info.getPicArray());
mContext.startActivity(intent);
}
});
holder.mLayoutComment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.CLICK_RECEIVED_ACTION);
intent.putExtra("uid", info.getUid());
mContext.sendBroadcast(intent);
}
});
holder.mLayoutCollect.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
info.setCollect(true);
mListInfo.get(position).setCollect(true);
holder.mCollectTag.setBackgroundResource(R.drawable.collection_press);
}
});
holder.mLayoutLike.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(!info.isLike()) {
int currentNum=info.getPariseNum()+1;
info.setLike(true);
mListInfo.get(position).setLike(true);
mListInfo.get(position).setPariseNum(currentNum);
holder.mTvLikeNum.setText(String.valueOf(currentNum));
holder.mLikeTag.setBackgroundResource(R.drawable.like_press);
}
}
});
if(info.isCollect()) {
holder.mCollectTag.setBackgroundResource(R.drawable.collection_press);
}else {
holder.mCollectTag.setBackgroundResource(R.drawable.collection_icon);
}
if(info.isLike()) {
holder.mLikeTag.setBackgroundResource(R.drawable.like_press);
}else {
holder.mLikeTag.setBackgroundResource(R.drawable.like_icon);
}
return convertView;
}
//更新指定item的数据
private void updateView(int index)
{
int visiblePos = mListView.getFirstVisiblePosition();
int offset = index - visiblePos;
// 只有在可见区域才更新
if(offset < 0) return;
View view = mListView.getChildAt(offset);
ViewHolder holder = (ViewHolder)view.getTag();
}
public class ViewHolder{
@InjectView(R.id.iv_zone_item_profile) CircleImageView mIvHead;
@InjectView(R.id.tv_zone_item_username) TextView mTvName;
@InjectView(R.id.tv_zone_item_level) TextView mTvLevel;
@InjectView(R.id.tv_zone_item_time) TextView mTvTime;
@InjectView(R.id.tv_zone_item_top) TextView mTvTop;
@InjectView(R.id.tv_zone_item_tab) TextView mTvTitle;
@InjectView(R.id.tv_zone_item_content) TextView mTvContent;
@InjectView(R.id.iv_zone_item_authority_icon) ImageView mIconTag;
@InjectView(R.id.iv_zone_item_img1) SquareImageView mIvPic1;
@InjectView(R.id.iv_zone_item_img2) SquareImageView mIvPic2;
@InjectView(R.id.iv_zone_item_img3) SquareImageView mIvPic3;
@InjectView(R.id.layout_zone_item_img) LinearLayout mLayoutImg;
@InjectView(R.id.tv_zone_item_like) TextView mTvLikeNum;
@InjectView(R.id.tv_zone_item_comment) TextView mTvCommentNum;
@InjectView(R.id.layout_zone_item_comm) LinearLayout mLayoutCommentDetail;
@InjectView(R.id.iv_topic_item_profile1) CircleImageView mIvHead1;
@InjectView(R.id.iv_topic_item_profile2) CircleImageView mIvHead2;
@InjectView(R.id.iv_topic_item_profile3) CircleImageView mIvHead3;
@InjectView(R.id.tv_topic_item_comment1) TextView mTvComment1;
@InjectView(R.id.tv_topic_item_comment2) TextView mTvComment2;
@InjectView(R.id.tv_topic_item_comment3) TextView mTvComment3;
@InjectView(R.id.layout_zone_item_share) LinearLayout mLayoutShare;
@InjectView(R.id.layout_zone_item_collection) LinearLayout mLayoutCollect;
@InjectView(R.id.iv_zone_item_collection) ImageView mCollectTag;
@InjectView(R.id.iv_zone_item_like) ImageView mLikeTag;
@InjectView(R.id.layout_zone_item_like) LinearLayout mLayoutLike;
@InjectView(R.id.layout_zone_item_comment) LinearLayout mLayoutComment;
public ViewHolder(View view) {
ButterKnife.inject(this,view);
}
}
}