/* * 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); } } }