package com.xw.yunwei.ui.work.notice
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import com.xw.common.base.OnItemClickListener
|
import com.xw.common.base.fastObserve
|
import com.xw.yunwei.BR
|
import com.xw.yunwei.BaseBusinessActivity
|
import com.xw.yunwei.databinding.ActivityNoticeBinding
|
import com.xw.yunwei.model.NoticeModel
|
import com.xw.yunwei.push.MessageHandler.handlePushEvent
|
|
/**
|
* 消息通知
|
*/
|
class NoticeActivity : BaseBusinessActivity<ActivityNoticeBinding, NoticeVM>(), OnItemClickListener<NoticeModel> {
|
override fun getBindingVariable() = BR.viewModel
|
|
val adapter by lazy { NoticeAdapter(this).apply { setHasStableIds(true) } }
|
|
override fun init() {
|
super.init()
|
initAdapter()
|
}
|
|
override fun setObservable() {
|
super.setObservable()
|
viewModel.refreshLiveData.fastObserve(this, binding.refreshLayout)
|
viewModel.dataList.observe(this) {
|
adapter.setList(it)
|
}
|
}
|
|
override fun setListener() {
|
with(binding.refreshLayout) {
|
setOnRefreshListener {
|
viewModel.refreshData()
|
}
|
setOnLoadMoreListener {
|
viewModel.loadMoreData()
|
}
|
}
|
}
|
|
private fun initAdapter() {
|
adapter.setList(viewModel.dataList.value ?: ArrayList())
|
binding.rv.adapter = adapter
|
binding.rv.layoutManager = LinearLayoutManager(this)
|
}
|
|
override fun onResume() {
|
super.onResume()
|
viewModel.refreshData()
|
}
|
|
override fun onItemClick(item: NoticeModel) {
|
if (item.readStatus == 1) {
|
handlePushEvent(item.notificationExt ?: "")
|
} else {
|
viewModel.setRead(item.id ?: 0L) {
|
item.readStatus = 1
|
adapter.notifyItemChanged(viewModel.dataList.value!!.indexOf(item))
|
handlePushEvent(item.notificationExt ?: "")
|
}
|
}
|
}
|
|
}
|