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
|
}
|
}
|