package com.arrownock.opensource.arrownockers.wall;
import java.util.List;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.arrownock.opensource.arrownockers.R;
import com.arrownock.opensource.arrownockers.utils.AnUtils;
import com.loopj.android.image.SmartImageView;
public class PostListAdapter extends BaseAdapter {
private List<PostEntity> coll;
private Context ctx;
private LayoutInflater mInflater;
public PostListAdapter(Context context, List<PostEntity> coll) {
ctx = context;
this.coll = coll;
mInflater = LayoutInflater.from(context);
}
public int getCount() {
return coll.size();
}
public Object getItem(int position) {
return coll.get(position);
}
public long getItemId(int position) {
return position;
}
public int getViewTypeCount() {
return 1;
}
public View getView(int position, View convertView, ViewGroup parent) {
PostEntity entity = coll.get(position);
ViewHolder viewHolder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row_post, null);
viewHolder = new ViewHolder();
viewHolder.ivAvatar = (SmartImageView) convertView
.findViewById(R.id.iv_avatar);
viewHolder.tvUsername = (TextView) convertView
.findViewById(R.id.tv_username);
viewHolder.tvDate = (TextView) convertView
.findViewById(R.id.tv_date);
viewHolder.tvContent = (TextView) convertView
.findViewById(R.id.tv_content);
viewHolder.ivContent = (SmartImageView) convertView
.findViewById(R.id.iv_content);
viewHolder.tv_commentCount = (TextView) convertView
.findViewById(R.id.tv_commentCount);
viewHolder.tv_likeCount = (TextView) convertView
.findViewById(R.id.tv_likeCount);
viewHolder.tv_dislikeCount = (TextView) convertView
.findViewById(R.id.tv_dislikeCount);
viewHolder.btn_action = (Button) convertView
.findViewById(R.id.btn_action);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
if (entity.dateString != null) {
String dateString = AnUtils.getTimeString(entity.dateString);
if (dateString != null) {
viewHolder.tvDate.setText(dateString);
}
}
if (entity.contentText != null) {
viewHolder.tvContent.setText(entity.contentText);
}
if (entity.username != null) {
viewHolder.tvUsername.setText(entity.username);
}
if (entity.avatarUri != null) {
viewHolder.ivAvatar.setImageURI(entity.avatarUri);
}
DisplayMetrics metrics = ctx.getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int result = width - 50 * 2;
LayoutParams lParams = viewHolder.ivContent.getLayoutParams();
if (entity.imageURLString != null) {
lParams.width = result;
lParams.height = result;
viewHolder.ivContent.setLayoutParams(lParams);
viewHolder.ivContent.setImageUrl(entity.imageURLString);
} else {
lParams.width = result;
lParams.height = 0;
viewHolder.ivContent.setLayoutParams(lParams);
viewHolder.ivContent.setImageBitmap(null);
}
if (entity.commentCount != null) {
viewHolder.tv_commentCount.setText(entity.commentCount);
} else {
viewHolder.tv_commentCount.setText("0");
}
if (entity.likeCount != null) {
viewHolder.tv_likeCount.setText(entity.likeCount);
} else {
viewHolder.tv_likeCount.setText("0");
}
if (entity.dislikeCount != null) {
viewHolder.tv_dislikeCount.setText(entity.dislikeCount);
} else {
viewHolder.tv_dislikeCount.setText("0");
}
viewHolder.btn_action.setTag(entity.postId);
if (!entity.canComment) {
viewHolder.btn_action.setVisibility(View.GONE);
}
RelativeLayout rl_container = (RelativeLayout) convertView
.findViewById(R.id.rl_container);
rl_container.setTag(entity);
return convertView;
}
static class ViewHolder {
public SmartImageView ivAvatar;
public TextView tvUsername;
public TextView tvDate;
public TextView tvContent;
public SmartImageView ivContent;
public TextView tv_commentCount;
public TextView tv_likeCount;
public TextView tv_dislikeCount;
public Button btn_action;
}
}