package com.sinata.xqmuse.ui.discovery
|
|
import android.text.Editable
|
import android.text.TextWatcher
|
import android.util.Log
|
import android.view.KeyEvent
|
import android.view.View
|
import android.view.inputmethod.EditorInfo
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.SPUtils
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.visible
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.network.Comment
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.entity.Dynamic
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
|
import com.sinata.xqmuse.ui.discovery.adapter.CommentAdapter
|
import com.sinata.xqmuse.ui.discovery.adapter.DynamicAdapter
|
import com.sinata.xqmuse.utils.AndroidBug5497Workaround
|
import com.sinata.xqmuse.utils.Const
|
import com.sinata.xqmuse.utils.event.EmptyEvent
|
import com.sinata.xqmuse.utils.extention.clickDelay
|
import kotlinx.android.synthetic.main.activity_dynamic.*
|
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.Subscribe
|
|
class DynamicActivity:TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_dynamic
|
|
private val dyns = arrayListOf<Dynamic>()
|
private val adapter = DynamicAdapter(dyns,true)
|
private val comment = arrayListOf<Comment>()
|
val id by lazy { intent.getStringExtra("id")?:"" }
|
private var page = 1
|
|
override fun initClick() {
|
|
|
et_content.setOnEditorActionListener { v, actionId, event ->
|
val content = et_content.text.toString()
|
if ((actionId == EditorInfo.IME_ACTION_SEND||actionId == EditorInfo.IME_ACTION_UNSPECIFIED)&&event?.action?:-1 == KeyEvent.ACTION_DOWN){
|
if (content.isEmpty())
|
myToast("请输入评论内容")
|
else
|
HttpManager.addComment(id,"0",content,null,null).request(this){_,_->
|
et_content.setText("")
|
myToast("评论成功")
|
refreshLayout.resetNoMoreData()
|
getMomentDetail()
|
page = 1
|
getComment()
|
}
|
}
|
return@setOnEditorActionListener false
|
}
|
}
|
|
override fun initView() {
|
AndroidBug5497Workaround.assistActivity(this)
|
EventBus.getDefault().register(this)
|
et_content.addTextChangedListener(object :TextWatcher{
|
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
|
|
}
|
|
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
|
}
|
|
override fun afterTextChanged(s: Editable?) {
|
if (s.isNullOrEmpty())
|
tv_hint.visible()
|
else
|
tv_hint.gone()
|
}
|
})
|
|
rv_moment.layoutManager = LinearLayoutManager(this)
|
rv_moment.adapter = adapter
|
rv_comment.layoutManager = LinearLayoutManager(this)
|
|
refreshLayout.setOnRefreshListener {
|
getMomentDetail()
|
page = 1
|
getComment()
|
}
|
|
refreshLayout.setOnLoadMoreListener {
|
page++
|
getComment()
|
}
|
getMomentDetail()
|
page = 1
|
getComment()
|
}
|
|
private fun getMomentDetail(){
|
HttpManager.findDetail(id).request(this){ _, data->
|
val myId = SPUtils.instance().getString(Const.User.USER_ID)
|
dyns.clear()
|
data?.apply {
|
tv_like.setCompoundDrawablesRelativeWithIntrinsicBounds(0,if (isLike == "1") R.mipmap.dianzaned else R.mipmap.dianzan,0,0)
|
isMine = this.userId == myId
|
cl_bottom.visibility = if (isMine) View.GONE else View.VISIBLE
|
dyns.add(this)
|
adapter.notifyDataSetChanged()
|
refreshLayout.finishRefresh()
|
tv_comment_total.text = "共${comment}条评论"
|
}
|
}
|
}
|
|
private fun getComment(){
|
HttpManager.findCommentList(page,id,10).request(this,success = {_,data->
|
if (page == 1)
|
comment.clear()
|
comment.addAll(data?: arrayListOf())
|
if (comment.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 refreshComment(e:EmptyEvent){
|
if (e.code == Const.EventCode.REFRESH_REPLY){
|
getMomentDetail()
|
refreshLayout.resetNoMoreData()
|
page = 1
|
getComment()
|
}
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
EventBus.getDefault().unregister(this)
|
}
|
}
|