lmw
2024-10-23 2f204867ad034d3a95ba9acc112d6507f296447b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package com.sinata.xqmuse.ui.discovery.adapter
 
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.utils.SPUtils
import cn.sinata.xldutils.utils.SpanBuilder
import cn.sinata.xldutils.utils.myToast
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.ReportDialog
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.ReplyComment
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.utils.Const
import com.sinata.xqmuse.utils.event.EmptyEvent
import com.sinata.xqmuse.utils.interfaces.StringCallback
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.dip
import java.util.ArrayList
 
class ReplyAdapter(commentList: ArrayList<ReplyComment>) :HFRecyclerAdapter<ReplyComment>(commentList, R.layout.item_reply){
    var layoutManager: LinearLayoutManager? = null
    var findId = ""  //动态id
    var commentId = ""
 
    var isReplyList = false
 
    override fun onBind(holder: ViewHolder, position: Int, data: ReplyComment) {
        val ivAvatar = holder.bind<SimpleDraweeView>(R.id.iv_avatar)
        ivAvatar.setImageURI(data.headImg)
        holder.setText(R.id.tv_name,data.userName)
        if (data.replyUserName.isNullOrEmpty())
            holder.setText(R.id.tv_content,data.content)
        else{
            val s = "回复“${data.replyUserName}”:${data.content}"
            holder.setText(R.id.tv_content,SpanBuilder(s).color(context,2,data.replyUserName.length+4,R.color.colorPrimary).build())
        }
        holder.setText(R.id.tv_time,data.insertTime)
 
        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(data.id,rst).request(activity){ _, _->
                                        activity.myToast("举报成功")
                                    }
                                }
                            })
                    }else{
                        ReplyDialog.show(activity.supportFragmentManager,"回复${data.userName}",object : StringCallback {
                            override fun onResult(rst: String) {
                                HttpManager.addComment(findId,commentId,rst,data.id,data.userId).request(activity){ _, _->
                                    EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_REPLY))
                                    activity.myToast("评论成功")
                                }
                            }
                        })
                    }
                }
            })
            conversationLongClickPop.showAsDropDown(ivAvatar,context.dip(230),-context.dip(20))
        }
    }
 
    override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
        super.onAttachedToRecyclerView(recyclerView)
        layoutManager = recyclerView.layoutManager as LinearLayoutManager
    }
}