18034727885
2026-04-14 370014cbb9ec1ef64e7e42bb4f9a12671461d8e4
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
package com.xw.yunwei.ui.work.notice
 
import androidx.recyclerview.widget.LinearLayoutManager
import com.xw.common.base.BaseActivity
import com.xw.common.base.OnItemClickListener
import com.xw.common.base.fastObserve
import com.xw.common.utils.ToastUtilCommon
import com.xw.yunwei.BR
import com.xw.yunwei.databinding.ActivityNoticeBinding
import com.xw.yunwei.model.NoticeModel
import com.xw.yunwei.push.MessageHandler.handlePushEvent
import org.json.JSONObject
 
/**
 * 消息通知
 */
class NoticeActivity : BaseActivity<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 ?: "")
            }
        }
    }
 
}