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