package com.sinata.xqmuse.ui.discovery
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.activity.BaseActivity
|
import cn.sinata.xldutils.utils.SPUtils
|
import cn.sinata.xldutils.utils.myToast
|
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.Comment
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.ReplyComment
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
|
import com.sinata.xqmuse.ui.discovery.adapter.ReplyAdapter
|
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 kotlinx.android.synthetic.main.activity_reply.*
|
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.Subscribe
|
import org.jetbrains.anko.dip
|
|
class ReplyActivity:TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_reply
|
|
private val data by lazy { intent.getParcelableExtra<Comment>("data")!! }
|
private val findId by lazy { intent.getStringExtra("findId") }
|
private val reply = arrayListOf<ReplyComment>()
|
private val adapter = ReplyAdapter(reply)
|
private var page = 1
|
|
override fun initClick() {
|
tv_like.clickDelay {
|
if (data.isLike!="1")
|
HttpManager.doLike(findId?:"",2,data.id).request(this){ _, _->
|
data.isLike = if (data.isLike == "1") "0" else "1"
|
data.likeCount = if (data.isLike == "1") data.likeCount+1 else data.likeCount-1
|
tv_like.text = data.likeCount.toString()
|
tv_like.setCompoundDrawablesRelativeWithIntrinsicBounds(if (data.isLike == "1") R.mipmap.dianzaned else R.mipmap.dianzan,0,0,0)
|
}
|
}
|
holder_top.setOnClickListener {
|
val conversationLongClickPop = CommentClickPop(this)
|
conversationLongClickPop.setCallback(object : StringCallback {
|
override fun onResult(rst: String) {
|
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(
|
supportFragmentManager, object : StringCallback {
|
override fun onResult(rst: String) {
|
HttpManager.report(2,data.id,rst).request(this@ReplyActivity){ _, _->
|
myToast("举报成功")
|
}
|
}
|
})
|
}else{
|
ReplyDialog.show(supportFragmentManager,"回复${data.userName}",object :
|
StringCallback {
|
override fun onResult(rst: String) {
|
HttpManager.addComment(findId?:"",data.id,rst,null,data.userId).request(this@ReplyActivity){ _, _->
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_REPLY))
|
myToast("评论成功")
|
}
|
}
|
})
|
}
|
}
|
})
|
conversationLongClickPop.showAsDropDown(iv_avatar,dip(230),-dip(20))
|
}
|
}
|
|
override fun initView() {
|
rv_reply.layoutManager = LinearLayoutManager(this)
|
adapter.isReplyList = true
|
rv_reply.adapter = adapter
|
adapter.findId = findId?:""
|
adapter.commentId = data.id
|
refreshLayout.setOnLoadMoreListener {
|
page++
|
getData()
|
}
|
refreshLayout.setOnRefreshListener {
|
page = 1
|
getData()
|
}
|
data.apply {
|
iv_avatar.setImageURI(headImg)
|
tv_name.text = userName
|
tv_content.text = content
|
tv_time.text = insertTime
|
tv_like.text = likeCount.toString()
|
tv_like.setCompoundDrawablesRelativeWithIntrinsicBounds(if (data.isLike == "1") R.mipmap.dianzaned else R.mipmap.dianzan,0,0,0)
|
}
|
getData()
|
EventBus.getDefault().register(this)
|
}
|
|
private fun getData(){
|
HttpManager.findCommentListOne(page,data.id,10).request(this,success = { _, data->
|
if (page == 1)
|
reply.clear()
|
reply.addAll(data?: arrayListOf())
|
adapter.notifyDataSetChanged()
|
if (reply.isEmpty())
|
refreshLayout.finishRefreshWithNoMoreData()
|
else if (data.isNullOrEmpty())
|
refreshLayout.finishLoadMoreWithNoMoreData()
|
else if (page == 1)
|
refreshLayout.finishRefresh()
|
else
|
refreshLayout.finishLoadMore()
|
}){_,_->
|
if (page == 1)
|
refreshLayout.finishRefresh(false)
|
else
|
refreshLayout.finishLoadMore(false)
|
}
|
}
|
|
@Subscribe
|
fun onRefresh(e:EmptyEvent){
|
if (e.code == Const.EventCode.REFRESH_REPLY){
|
refreshLayout.resetNoMoreData()
|
page = 1
|
getData()
|
}
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
EventBus.getDefault().unregister(this)
|
}
|
}
|