From 718f31c92e2029d05260810435a2c70cef6e6ce5 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期四, 24 四月 2025 10:45:55 +0800 Subject: [PATCH] save --- app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/CommentAdapter.kt | 110 +++++++++++------------------------------------------- 1 files changed, 23 insertions(+), 87 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/CommentAdapter.kt b/app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/CommentAdapter.kt index 55716f1..f4e2a48 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/CommentAdapter.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/CommentAdapter.kt @@ -1,116 +1,52 @@ package com.sinata.xqmuse.ui.discovery.adapter -import android.view.View import android.widget.TextView -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView import cn.sinata.xldutils.activity.BaseActivity import cn.sinata.xldutils.adapter.HFRecyclerAdapter import cn.sinata.xldutils.adapter.util.ViewHolder import cn.sinata.xldutils.gone -import cn.sinata.xldutils.utils.SPUtils -import cn.sinata.xldutils.utils.myToast +import cn.sinata.xldutils.utils.SpanBuilder +import cn.sinata.xldutils.utils.showAllowingStateLoss import cn.sinata.xldutils.visible import com.facebook.drawee.view.SimpleDraweeView import com.sinata.xqmuse.R -import com.sinata.xqmuse.dialog.CommentClickPop -import com.sinata.xqmuse.dialog.ReplyDialog +import com.sinata.xqmuse.dialog.CommentLongClickDialog import com.sinata.xqmuse.dialog.ReportDialog -import com.sinata.xqmuse.network.Comment +import com.sinata.xqmuse.dialog.SuccessDialog import com.sinata.xqmuse.network.HttpManager -import com.sinata.xqmuse.network.ReplyComment +import com.sinata.xqmuse.network.entity.Comment import com.sinata.xqmuse.network.request -import com.sinata.xqmuse.ui.discovery.DynamicActivity -import com.sinata.xqmuse.ui.discovery.ReplyActivity -import com.sinata.xqmuse.utils.Const -import com.sinata.xqmuse.utils.event.EmptyEvent import com.sinata.xqmuse.utils.extention.clickDelay import com.sinata.xqmuse.utils.interfaces.StringCallback -import org.greenrobot.eventbus.EventBus -import org.jetbrains.anko.dip -import org.jetbrains.anko.startActivity import java.util.ArrayList -class CommentAdapter(comment: ArrayList<Comment>):HFRecyclerAdapter<Comment>(comment, R.layout.item_comment) { - val findId by lazy { - (context as DynamicActivity).id - } - var layoutManager: LinearLayoutManager? = null - +class CommentAdapter(comment: ArrayList<Comment>,val act:BaseActivity):HFRecyclerAdapter<Comment>(comment, R.layout.item_comment) { + var callback:StringCallback? = null override fun onBind(holder: ViewHolder, position: Int, data: Comment) { - holder.bind<SimpleDraweeView>(R.id.iv_avatar).setImageURI(data.headImg) - holder.setText(R.id.tv_name,data.userName) + holder.bind<SimpleDraweeView>(R.id.iv_avatar).setImageURI(data.avatar) + holder.setText(R.id.tv_name,data.nickname) holder.setText(R.id.tv_content,data.content) - holder.setText(R.id.tv_time,data.insertTime) - val tv_reply_count = holder.bind<TextView>(R.id.tv_reply_count) - if (data.commentList.size>2&&!data.showAll){ - tv_reply_count.text = "查看${data.commentList.size}条回复" - tv_reply_count.visible() - tv_reply_count.setOnClickListener { - context.startActivity<ReplyActivity>("data" to data,"findId" to findId) - } - }else - tv_reply_count.gone() + holder.setText(R.id.tv_time,data.publishTime) + val tv_reply = holder.bind<TextView>(R.id.tv_reply) + if (data.replyContent.isNullOrEmpty()) + tv_reply.gone() + else{ + tv_reply.visible() + tv_reply.text = SpanBuilder("平台回复:${data.replyContent}").bold(0,5).build() + } val tv_like = holder.bind<TextView>(R.id.tv_like) - tv_like.text = data.likeCount.toString() - tv_like.setCompoundDrawablesRelativeWithIntrinsicBounds(if (data.isLike == "1") R.mipmap.dianzaned else R.mipmap.dianzan,0,0,0) //todo是否点赞 + tv_like.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,if (data.like == 1) R.mipmap.dianzaned else R.mipmap.dianzan,0) //todo是否点赞 tv_like.clickDelay { - if (data.isLike!="1") - HttpManager.doLike(findId,2,data.id).request(context as BaseActivity){_,_-> - data.isLike = if (data.isLike == "1") "0" else "1" - data.likeCount = if (data.isLike == "1") data.likeCount+1 else data.likeCount-1 + HttpManager.doLike(data.id).request(act){_,_-> + data.like = if (data.like == 1) 2 else 1 notifyItemChanged(position) } } - holder.itemView.setOnClickListener { - val conversationLongClickPop = CommentClickPop(context) - conversationLongClickPop.setCallback(object : StringCallback { - override fun onResult(rst: String) { - val activity = context as BaseActivity - val type = if(rst == "report") ReportDialog.TYPE_REPORT else if (data.replyUserId == SPUtils.instance().getString( - Const.User.USER_ID,"-1")) ReportDialog.TYPE_REPLY else ReportDialog.TYPE_COMMENT - if(type == ReportDialog.TYPE_REPORT) - ReportDialog.show( - activity.supportFragmentManager, - object : StringCallback { - override fun onResult(rst: String) { - HttpManager.report(2,data.id,rst).request(activity){ _, _-> - activity.myToast("举报成功") - } - } - }) - else - ReplyDialog.show(activity.supportFragmentManager,"回复${data.userName}",object :StringCallback{ - override fun onResult(rst: String) { - HttpManager.addComment(findId,data.id,rst,data.id,data.userId).request(activity){ _, _-> - EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_REPLY)) - activity.myToast("评论成功") - } - } - }) - } - }) - conversationLongClickPop.showAsDropDown(holder.bind(R.id.tv_name),context.dip(200),0) + holder.itemView.setOnLongClickListener { + callback?.onResult(position.toString()) + return@setOnLongClickListener false } - - val rv_reply = holder.bind<RecyclerView>(R.id.rv_reply) - rv_reply.layoutManager = LinearLayoutManager(context) - val reply = arrayListOf<ReplyComment>() - val adapter = ReplyAdapter(reply) - adapter.findId = findId - adapter.commentId = data.id - if (data.showAll){ - reply.addAll(data.commentList) - }else{ - reply.addAll(data.commentList.take(2)) - } - rv_reply.adapter = adapter - } - - override fun onAttachedToRecyclerView(recyclerView: RecyclerView) { - super.onAttachedToRecyclerView(recyclerView) - layoutManager = recyclerView.layoutManager as LinearLayoutManager } } -- Gitblit v1.7.1