CommentItemAdapter.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.edufound.reader.adapter;
  2. import android.content.Context;
  3. import android.view.LayoutInflater;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.ImageView;
  7. import android.widget.LinearLayout;
  8. import android.widget.TextView;
  9. import com.bumptech.glide.Glide;
  10. import com.edufound.reader.R;
  11. import com.edufound.reader.bean.CommentListReplyBean;
  12. import com.edufound.reader.util.GlideUtils;
  13. import com.edufound.reader.util.TimeUtil;
  14. import com.jakewharton.rxbinding4.view.RxView;
  15. import com.orhanobut.logger.Logger;
  16. import java.util.List;
  17. import java.util.concurrent.TimeUnit;
  18. import androidx.annotation.NonNull;
  19. import androidx.recyclerview.widget.RecyclerView;
  20. import io.reactivex.rxjava3.core.Observer;
  21. import io.reactivex.rxjava3.disposables.Disposable;
  22. import io.reactivex.rxjava3.functions.Consumer;
  23. import kotlin.Unit;
  24. public class CommentItemAdapter extends RecyclerView.Adapter<CommentItemHolder> {
  25. private LayoutInflater mLayoutInflater;
  26. private Context mContext;
  27. private List<CommentListReplyBean> mListData;
  28. private onItemClickListener mItemClickListener;
  29. public CommentItemAdapter(Context context, List<CommentListReplyBean> listData) {
  30. mContext = context;
  31. mLayoutInflater = LayoutInflater.from(context);
  32. mListData = listData;
  33. }
  34. @NonNull
  35. @Override
  36. public CommentItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  37. return new CommentItemHolder(mLayoutInflater.inflate(R.layout.adapter_item_comment, parent, false));
  38. }
  39. public void onItemClickThumb(onItemClickListener listener) {
  40. mItemClickListener = listener;
  41. }
  42. @Override
  43. public void onBindViewHolder(@NonNull CommentItemHolder holder, int position) {
  44. if (mListData.get(position).getUser() == null) {
  45. return;
  46. }
  47. if (mListData.get(position).getUser().getAvatar() == null || mListData.get(position).getUser().getAvatar().equals("")) {
  48. if (mListData.get(position).getUser().getGender().equals("1")) {
  49. Glide.with(mContext).load(R.drawable.activity_userinfo_setting_boy).into(holder.mUserHead);
  50. } else {
  51. Glide.with(mContext).load(R.drawable.activity_userinfo_setting_girl).into(holder.mUserHead);
  52. }
  53. } else {
  54. GlideUtils.loadCircleImage(mContext, mListData.get(position).getUser().getAvatar(), holder.mUserHead);
  55. }
  56. holder.mNickName.setText("昵称:" + mListData.get(position).getUser().getNickName());
  57. holder.mCommentText.setText(mListData.get(position).getDetailDesc());
  58. if (mListData.get(position).getGmtCreated() != null) {
  59. holder.mItemTime.setText("" + TimeUtil.timeStamp2Date(Long.valueOf(mListData.get(position).getGmtCreated()), "MM-dd"));
  60. }
  61. if (mListData.get(position).getIsLike()) {
  62. holder.mThumbStatus.setImageResource(R.drawable.adapter_item_comment_item_thumb_true);
  63. } else {
  64. holder.mThumbStatus.setImageResource(R.drawable.adapter_item_comment_item_thumb_false);
  65. }
  66. holder.mThumbNum.setText(mListData.get(position).getLikeCount() != null ? mListData.get(position).getLikeCount() : "0");
  67. if (mItemClickListener != null) {
  68. RxView.clicks(holder.mReCommentLayout).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
  69. mItemClickListener.clickItemReComment(holder.mReCommentLayout, mListData.get(position).getId(), position);
  70. });
  71. }
  72. if (mItemClickListener != null) {
  73. RxView.clicks(holder.mThumbLayout).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
  74. mItemClickListener.clickItemThumb(holder.mThumbLayout, mListData.get(position).getId(), position);
  75. });
  76. }
  77. if (mListData.get(position).getReplyVOList() != null && mListData.get(position).getReplyVOList().size() > 0) {
  78. holder.mReLayout.removeAllViews();
  79. for (CommentListReplyBean.ReplyVOList item : mListData.get(position).getReplyVOList()) {
  80. //有回复
  81. View view = mLayoutInflater.inflate(R.layout.adapter_item_comment_relayout_item, null);
  82. TextView name = view.findViewById(R.id.adapter_item_comment_item_relayout_name);
  83. TextView comment = view.findViewById(R.id.adapter_item_comment_item_relayout_comment);
  84. name.setText(item.getUser().getNickName() + ":");
  85. comment.setText(item.getContent());
  86. holder.mReLayout.addView(view);
  87. holder.mReLayout.setVisibility(View.VISIBLE);
  88. }
  89. } else {
  90. holder.mReLayout.setVisibility(View.GONE);
  91. }
  92. }
  93. @Override
  94. public int getItemCount() {
  95. return mListData.size();
  96. }
  97. @Override
  98. public int getItemViewType(int position) {
  99. return position;
  100. }
  101. public interface onItemClickListener {
  102. void clickItemThumb(View view, String id, int position);
  103. void clickItemReComment(View view, String id, int position);
  104. }
  105. }
  106. class CommentItemHolder extends RecyclerView.ViewHolder {
  107. TextView mNickName;
  108. TextView mCommentText;
  109. LinearLayout mReLayout;
  110. ImageView mUserHead;
  111. LinearLayout mThumbLayout;
  112. LinearLayout mReCommentLayout;
  113. TextView mThumbNum;
  114. ImageView mThumbStatus;
  115. TextView mItemTime;
  116. public CommentItemHolder(@NonNull View itemView) {
  117. super(itemView);
  118. mNickName = itemView.findViewById(R.id.adapter_item_comment_item_nickname);
  119. mCommentText = itemView.findViewById(R.id.adapter_item_comment_item_comment);
  120. mReLayout = itemView.findViewById(R.id.adapter_item_comment_item_relayout);
  121. mUserHead = itemView.findViewById(R.id.adapter_item_comment_item_userhead);
  122. mThumbLayout = itemView.findViewById(R.id.adapter_item_comment_item_comment_thumb_layout);
  123. mThumbNum = itemView.findViewById(R.id.adapter_item_comment_item_comment_thumb_layout_thumbnum);
  124. mThumbStatus = itemView.findViewById(R.id.adapter_item_comment_item_comment_thumb_layout_img_status);
  125. mReCommentLayout = itemView.findViewById(R.id.adapter_item_comment_item_comment_recomment_layout);
  126. mItemTime = itemView.findViewById(R.id.adapter_item_comment_item_time);
  127. }
  128. }