diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8b7c719..2932de8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,7 @@ + + () + requireContext().navigatePageTo() } return homeView } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8b7c719..2932de8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,7 @@ + () + requireContext().navigatePageTo() } return homeView } diff --git a/app/src/main/java/com/casic/app/smartwell/sanxi/view/AlarmManageActivity.kt b/app/src/main/java/com/casic/app/smartwell/sanxi/view/AlarmManageActivity.kt new file mode 100644 index 0000000..15c4e81 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/sanxi/view/AlarmManageActivity.kt @@ -0,0 +1,313 @@ +package com.casic.app.smartwell.sanxi.view + +import android.annotation.SuppressLint +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.os.Handler +import android.os.Looper +import android.os.Message +import android.view.View +import android.widget.Button +import android.widget.EditText +import android.widget.TextView +import androidx.core.view.GravityCompat +import androidx.drawerlayout.widget.DrawerLayout +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager +import com.casic.app.smartwell.sanxi.R +import com.casic.app.smartwell.sanxi.adapter.AlarmListAdapter +import com.casic.app.smartwell.sanxi.base.BaseActivity +import com.casic.app.smartwell.sanxi.extensions.* +import com.casic.app.smartwell.sanxi.model.AlarmListModel +import com.casic.app.smartwell.sanxi.utils.BroadcastReceiverManager +import com.casic.app.smartwell.sanxi.utils.Constant +import com.casic.app.smartwell.sanxi.utils.DialogHelper +import com.casic.app.smartwell.sanxi.utils.LoadState +import com.casic.app.smartwell.sanxi.vm.AlarmViewModel +import com.casic.app.smartwell.sanxi.widgets.CancelAlarmDialog +import com.jzxiang.pickerview.TimePickerDialog +import com.jzxiang.pickerview.data.Type +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet +import kotlinx.android.synthetic.main.activity_alarm_manage.* +import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.include_select_title.* +import java.lang.ref.WeakReference + +class AlarmManageActivity : BaseActivity(), DrawerLayout.DrawerListener { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var alarmViewModel: AlarmViewModel + private lateinit var alarmListAdapter: AlarmListAdapter + private var dataBeans: MutableList = ArrayList() + private var keywords = "" + private var alarmContent = "" + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false + + override fun initLayoutView(): Int = R.layout.activity_alarm_manage + + override fun setupTopBarLayout() { + leftBackView.setOnClickListener { finish() } + titleView.text = "告警管理" + rightOptionView.setOnClickListener { + if (rightDrawerLayout.isDrawerOpen(GravityCompat.END)) { + rightDrawerLayout.closeDrawer(GravityCompat.END) + } else { + rightDrawerLayout.openDrawer(GravityCompat.END) + } + } + rightDrawerLayout.addDrawerListener(this) + } + + override fun initData() { + weakReferenceHandler = WeakReferenceHandler(this) + //告警类型 + alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + //默认加载所有数据 + obtainAlarmListByPage() + BroadcastReceiverManager.instance.addAction( + Constant.CANCEL_ALARM_ACTION, object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + //收到广播相当于做了一次列表刷新 + isRefresh = true + pageIndex = 1 + obtainAlarmListByPage() + } + }) + } + + override fun initEvent() { + resultRefreshLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + obtainAlarmListByPage() + } + resultRefreshLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + obtainAlarmListByPage() + } + + alarmViewModel.listModel.observe(this, { + if (it.code == 200) { + val dataRows = it.data?.rows + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows!! + resultRefreshLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows?.size == 0) { + "到底了,别拉了".show() + } + dataBeans.addAll(dataRows!!) + resultRefreshLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows!! + } + } + weakReferenceHandler.sendEmptyMessage(2022060802) + } + }) + + alarmViewModel.contentModel.observe(this, { + if (it.code == 200) { + val sheetBuilder = QMUIBottomSheet.BottomListSheetBuilder(this) + sheetBuilder.setTitle("告警内容") + it.data?.list?.forEach { dataBean -> + sheetBuilder.addItem(dataBean.name) + } + sheetBuilder.setGravityCenter(true) + .setOnSheetItemClickListener { dialog, _, position, tag -> + alarmContentView.text = tag + alarmContent = it.data!!.list!![position].value.toString() + + dialog.dismiss() + }.build().show() + } + }) + + alarmViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "处理中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + //刷新列表 + BroadcastReceiverManager.instance.sendBroadcast( + Constant.CANCEL_ALARM_ACTION, "" + ) + } + else -> { + DialogHelper.dismissLoadingDialog() + } + } + }) + } + + override fun onDrawerSlide(drawerView: View, slideOffset: Float) { + + } + + override fun onDrawerOpened(drawerView: View) { + val wellCodeView = drawerView.findViewById(R.id.wellCodeView) + val alarmContentView = drawerView.findViewById(R.id.alarmContentView) + val searchButton = drawerView.findViewById