package com.edufound.reader.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.bumptech.glide.Glide; import com.edufound.reader.R; import com.edufound.reader.bean.CommentListReplyBean; import com.edufound.reader.util.GlideUtils; import com.edufound.reader.util.TimeUtil; import com.jakewharton.rxbinding4.view.RxView; import com.orhanobut.logger.Logger; import java.util.List; import java.util.concurrent.TimeUnit; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.functions.Consumer; import kotlin.Unit; public class CommentItemAdapter extends RecyclerView.Adapter { private LayoutInflater mLayoutInflater; private Context mContext; private List mListData; private onItemClickListener mItemClickListener; public CommentItemAdapter(Context context, List listData) { mContext = context; mLayoutInflater = LayoutInflater.from(context); mListData = listData; } @NonNull @Override public CommentItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new CommentItemHolder(mLayoutInflater.inflate(R.layout.adapter_item_comment, parent, false)); } public void onItemClickThumb(onItemClickListener listener) { mItemClickListener = listener; } @Override public void onBindViewHolder(@NonNull CommentItemHolder holder, int position) { if (mListData.get(position).getUser() == null) { return; } if (mListData.get(position).getUser().getAvatar() == null || mListData.get(position).getUser().getAvatar().equals("")) { if (mListData.get(position).getUser().getGender().equals("1")) { Glide.with(mContext).load(R.drawable.activity_userinfo_setting_boy).into(holder.mUserHead); } else { Glide.with(mContext).load(R.drawable.activity_userinfo_setting_girl).into(holder.mUserHead); } } else { GlideUtils.loadCircleImage(mContext, mListData.get(position).getUser().getAvatar(), holder.mUserHead); } holder.mNickName.setText("昵称:" + mListData.get(position).getUser().getNickName()); holder.mCommentText.setText(mListData.get(position).getDetailDesc()); if (mListData.get(position).getGmtCreated() != null) { holder.mItemTime.setText("" + TimeUtil.timeStamp2Date(Long.valueOf(mListData.get(position).getGmtCreated()), "MM-dd")); } if (mListData.get(position).getIsLike()) { holder.mThumbStatus.setImageResource(R.drawable.adapter_item_comment_item_thumb_true); } else { holder.mThumbStatus.setImageResource(R.drawable.adapter_item_comment_item_thumb_false); } holder.mThumbNum.setText(mListData.get(position).getLikeCount() != null ? mListData.get(position).getLikeCount() : "0"); if (mItemClickListener != null) { RxView.clicks(holder.mReCommentLayout).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> { mItemClickListener.clickItemReComment(holder.mReCommentLayout, mListData.get(position).getId(), position); }); } if (mItemClickListener != null) { RxView.clicks(holder.mThumbLayout).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> { mItemClickListener.clickItemThumb(holder.mThumbLayout, mListData.get(position).getId(), position); }); } if (mListData.get(position).getReplyVOList() != null && mListData.get(position).getReplyVOList().size() > 0) { holder.mReLayout.removeAllViews(); for (CommentListReplyBean.ReplyVOList item : mListData.get(position).getReplyVOList()) { //有回复 View view = mLayoutInflater.inflate(R.layout.adapter_item_comment_relayout_item, null); TextView name = view.findViewById(R.id.adapter_item_comment_item_relayout_name); TextView comment = view.findViewById(R.id.adapter_item_comment_item_relayout_comment); name.setText(item.getUser().getNickName() + ":"); comment.setText(item.getContent()); holder.mReLayout.addView(view); holder.mReLayout.setVisibility(View.VISIBLE); } } else { holder.mReLayout.setVisibility(View.GONE); } } @Override public int getItemCount() { return mListData.size(); } @Override public int getItemViewType(int position) { return position; } public interface onItemClickListener { void clickItemThumb(View view, String id, int position); void clickItemReComment(View view, String id, int position); } } class CommentItemHolder extends RecyclerView.ViewHolder { TextView mNickName; TextView mCommentText; LinearLayout mReLayout; ImageView mUserHead; LinearLayout mThumbLayout; LinearLayout mReCommentLayout; TextView mThumbNum; ImageView mThumbStatus; TextView mItemTime; public CommentItemHolder(@NonNull View itemView) { super(itemView); mNickName = itemView.findViewById(R.id.adapter_item_comment_item_nickname); mCommentText = itemView.findViewById(R.id.adapter_item_comment_item_comment); mReLayout = itemView.findViewById(R.id.adapter_item_comment_item_relayout); mUserHead = itemView.findViewById(R.id.adapter_item_comment_item_userhead); mThumbLayout = itemView.findViewById(R.id.adapter_item_comment_item_comment_thumb_layout); mThumbNum = itemView.findViewById(R.id.adapter_item_comment_item_comment_thumb_layout_thumbnum); mThumbStatus = itemView.findViewById(R.id.adapter_item_comment_item_comment_thumb_layout_img_status); mReCommentLayout = itemView.findViewById(R.id.adapter_item_comment_item_comment_recomment_layout); mItemTime = itemView.findViewById(R.id.adapter_item_comment_item_time); } }