package com.jun.elephant.ui.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.jun.elephant.R;
import com.jun.elephant.entity.topic.TopicEntity;
import com.jun.elephant.ui.topic.details.TopicDetailsActivity;
import com.jun.elephant.ui.user.info.UserInfoActivity;
import com.jun.elephant.ui.widget.MySimpleDraweeView;
import org.ocpsoft.prettytime.PrettyTime;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Locale;
import cn.bingoogolapple.badgeview.BGABadgeRelativeLayout;
/**
* Created by Jun on 2016/9/23.
*/
public class TopicListAdapter extends RecyclerView.Adapter<TopicListAdapter.TopicViewHolder> {
private List<TopicEntity> mDatas;
private Context mContext;
private Locale mLocale;
private PrettyTime mPrettyTime;
private SimpleDateFormat mDateFormat;
@SuppressLint("SimpleDateFormat")
public TopicListAdapter(Context context, List<TopicEntity> datas) {
this.mContext = context;
this.mDatas = datas;
mLocale = mContext.getResources().getConfiguration().locale;
mPrettyTime = new PrettyTime(mLocale);
mDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
@Override
public TopicViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new TopicViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_topic_list, parent, false));
}
@Override
public void onBindViewHolder(TopicViewHolder holder, int position) {
final TopicEntity item = mDatas.get(position);
String mCommentCount = String.valueOf(item.getReplyCount());
StringBuilder temp = new StringBuilder();
if (item.getReplyCount() > 99) {
mCommentCount = "99+";
}
if (item.getCategory() != null) {
temp.append(item.getCategory().getData().getName());
}
if (item.getLastReplyUser() != null) {
temp.append(" • ").append("最后由").append(item.getLastReplyUser().getData().getName());
}
if (item.getUpdatedAt() != null) {
String dateStr = item.getUpdatedAt();
try {
String prettyTimeString = mPrettyTime.format(mDateFormat.parse(dateStr));
temp.append(" • ").append(prettyTimeString);
} catch (ParseException e) {
e.printStackTrace();
}
}
String avatarUrl = item.getUser().getData().getAvatar();
if (avatarUrl != null) {
holder.mUserImg.setImageUrl(avatarUrl);
}
holder.mTitleTv.setText(item.getTitle());
holder.mTimeTv.setText(temp.toString());
holder.mBgaRl.showTextBadge(mCommentCount);
holder.mBgaRl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mContext.startActivity(TopicDetailsActivity.newIntent(mContext, item.getId()));
}
});
holder.mUserImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mContext.startActivity(UserInfoActivity.newIntent(mContext, Integer.parseInt(item.getUser().getData().getId())));
}
});
}
@Override
public int getItemCount() {
return mDatas.size();
}
class TopicViewHolder extends RecyclerView.ViewHolder {
private BGABadgeRelativeLayout mBgaRl;
private MySimpleDraweeView mUserImg;
private TextView mTitleTv;
private TextView mTimeTv;
TopicViewHolder(View itemView) {
super(itemView);
mBgaRl = (BGABadgeRelativeLayout) itemView.findViewById(R.id.bgaRl);
mTimeTv = (TextView) itemView.findViewById(R.id.content_time_tv);
mTitleTv = (TextView) itemView.findViewById(R.id.content_title_tv);
mUserImg = (MySimpleDraweeView) itemView.findViewById(R.id.user_img_iv);
}
}
}