/*
* Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
* All Rights Reserved.
*/
package me.zhanghai.android.douya.broadcast.ui;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import me.zhanghai.android.douya.R;
import me.zhanghai.android.douya.network.api.info.apiv2.Comment;
import me.zhanghai.android.douya.profile.ui.ProfileActivity;
import me.zhanghai.android.douya.ui.ClickableSimpleAdapter;
import me.zhanghai.android.douya.ui.TimeTextView;
import me.zhanghai.android.douya.util.ImageUtils;
import me.zhanghai.android.douya.util.RecyclerViewUtils;
import me.zhanghai.android.douya.util.ViewUtils;
public class CommentAdapter extends ClickableSimpleAdapter<Comment, CommentAdapter.ViewHolder> {
public CommentAdapter(List<Comment> commentList,
OnItemClickListener<Comment, CommentAdapter.ViewHolder> onItemClickListener) {
super(commentList, onItemClickListener, null);
setHasStableIds(true);
}
@Override
public long getItemId(int position) {
return getItem(position).id;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
ViewHolder holder = new ViewHolder(ViewUtils.inflate(R.layout.broadcast_comment_item,
parent));
ViewUtils.setTextViewLinkClickable(holder.textText);
return holder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final Comment comment = getItem(position);
ImageUtils.loadAvatar(holder.avatarImage, comment.author.avatar);
final Context context = RecyclerViewUtils.getContext(holder);
holder.avatarImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
context.startActivity(ProfileActivity.makeIntent(comment.author, context));
}
});
holder.nameText.setText(comment.author.name);
holder.timeText.setDoubanTime(comment.createdAt);
holder.textText.setText(comment.getContentWithEntities(context));
}
@Override
public void onViewRecycled(ViewHolder holder) {
holder.avatarImage.setImageDrawable(null);
}
static class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.avatar)
public ImageView avatarImage;
@BindView(R.id.name)
public TextView nameText;
@BindView(R.id.time)
public TimeTextView timeText;
@BindView(R.id.text)
public TextView textText;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}