Newer
Older
CasicSmartTube / app / src / main / java / com / casic / smarttube / fragment / OverviewFragment.kt
package com.casic.smarttube.fragment

import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.smarttube.R
import com.casic.smarttube.adapter.GroupListAdapter
import com.casic.smarttube.extensions.showEmptyPage
import com.casic.smarttube.view.AlarmManagementActivity
import com.casic.smarttube.view.GroupDeviceActivity
import com.casic.smarttube.vm.ProjectGroupViewModel
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
import kotlinx.android.synthetic.main.fragment_overview.*
import kotlinx.android.synthetic.main.include_empty_view.*

class OverviewFragment : KotlinBaseFragment() {

    private lateinit var groupViewModel: ProjectGroupViewModel
    private lateinit var groupListAdapter: GroupListAdapter

    override fun initLayoutView(): Int = R.layout.fragment_overview

    override fun setupTopBarLayout() {
        rightOptionView.setOnClickListener {
            requireContext().navigatePageTo<AlarmManagementActivity>()
        }
    }

    override fun initData() {
        groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java)
    }

    override fun onResume() {
        groupViewModel.obtainProGroupList()
        super.onResume()
    }

    override fun initEvent() {
        groupViewModel.groupModel.observe(this, {
            if (it.code == 200) {
                if (it.data.size == 0) {
                    emptyView!!.showEmptyPage("这里什么都没有") {
                        groupViewModel.obtainProGroupList()
                    }
                } else {
                    emptyView!!.hide()
                    groupListAdapter = GroupListAdapter(requireContext(), it.data)
                    groupRecyclerView!!.layoutManager = LinearLayoutManager(requireContext())
                    groupRecyclerView!!.adapter = groupListAdapter
                    groupListAdapter.setOnItemClickListener(object :
                        GroupListAdapter.OnItemClickListener {
                        override fun onClicked(position: Int) {
                            // 根据groupId查询组下设备
                            requireContext().navigatePageTo<GroupDeviceActivity>(it.data[position].groupId)
                        }
                    })
                }
            }
        })
    }
}