diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 413d019..ada0eb7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,7 +49,6 @@ - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 413d019..ada0eb7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,7 +49,6 @@ - diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt deleted file mode 100644 index d440ea4..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt +++ /dev/null @@ -1,146 +0,0 @@ -package com.casic.qd.smartwell.view - -import android.annotation.SuppressLint -import android.os.Handler -import android.os.Looper -import android.os.Message -import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.LinearLayoutManager -import com.casic.qd.smartwell.R -import com.casic.qd.smartwell.adapter.DeviceListAdapter -import com.casic.qd.smartwell.base.BaseActivity -import com.casic.qd.smartwell.extensions.navigatePageTo -import com.casic.qd.smartwell.extensions.show -import com.casic.qd.smartwell.extensions.showEmptyPage -import com.casic.qd.smartwell.model.DeviceListModel -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState -import com.casic.qd.smartwell.vm.SearchResultViewModel -import kotlinx.android.synthetic.main.activity_device_search_result.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference - -class DeviceSearchResultActivity : BaseActivity() { - - private lateinit var args: ArrayList - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var searchDeviceViewModel: SearchResultViewModel - private lateinit var deviceListAdapter: DeviceListAdapter - private var dataBeans: MutableList = ArrayList() - private var pageIndex = 1 - private var isRefresh = false - private var isLoadMore = false - - override fun initLayoutView(): Int = R.layout.activity_device_search_result - - override fun setupTopBarLayout() { - leftBackView.setOnClickListener { finish() } - titleView.text = "查询结果" - } - - override fun initData() { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) - searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) - } - - override fun initEvent() { - obtainSearchResult(args, pageIndex) - searchDeviceViewModel.deviceResultModel.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(2022042001) - } - }) - - searchDeviceViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") - } - else -> { - DialogHelper.dismissLoadingDialog() - } - } - }) - - resultRefreshLayout.setOnRefreshListener { - isRefresh = true - //刷新之后页码重置 - pageIndex = 1 - obtainSearchResult(args, pageIndex) - } - resultRefreshLayout.setOnLoadMoreListener { - isLoadMore = true - pageIndex++ - obtainSearchResult(args, pageIndex) - } - } - - private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { - searchDeviceViewModel.obtainDeviceResult( - args[0], args[1], args[2], args[3], args[4], pageIndex - ) - } - - private class WeakReferenceHandler(activity: DeviceSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042001) { - if (activity.isRefresh || activity.isLoadMore) { - activity.deviceListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.deviceListAdapter - activity.deviceListAdapter.setOnItemClickListener(object : - DeviceListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) - } - } - } - } - } -} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 413d019..ada0eb7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,7 +49,6 @@ - diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt deleted file mode 100644 index d440ea4..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt +++ /dev/null @@ -1,146 +0,0 @@ -package com.casic.qd.smartwell.view - -import android.annotation.SuppressLint -import android.os.Handler -import android.os.Looper -import android.os.Message -import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.LinearLayoutManager -import com.casic.qd.smartwell.R -import com.casic.qd.smartwell.adapter.DeviceListAdapter -import com.casic.qd.smartwell.base.BaseActivity -import com.casic.qd.smartwell.extensions.navigatePageTo -import com.casic.qd.smartwell.extensions.show -import com.casic.qd.smartwell.extensions.showEmptyPage -import com.casic.qd.smartwell.model.DeviceListModel -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState -import com.casic.qd.smartwell.vm.SearchResultViewModel -import kotlinx.android.synthetic.main.activity_device_search_result.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference - -class DeviceSearchResultActivity : BaseActivity() { - - private lateinit var args: ArrayList - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var searchDeviceViewModel: SearchResultViewModel - private lateinit var deviceListAdapter: DeviceListAdapter - private var dataBeans: MutableList = ArrayList() - private var pageIndex = 1 - private var isRefresh = false - private var isLoadMore = false - - override fun initLayoutView(): Int = R.layout.activity_device_search_result - - override fun setupTopBarLayout() { - leftBackView.setOnClickListener { finish() } - titleView.text = "查询结果" - } - - override fun initData() { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) - searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) - } - - override fun initEvent() { - obtainSearchResult(args, pageIndex) - searchDeviceViewModel.deviceResultModel.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(2022042001) - } - }) - - searchDeviceViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") - } - else -> { - DialogHelper.dismissLoadingDialog() - } - } - }) - - resultRefreshLayout.setOnRefreshListener { - isRefresh = true - //刷新之后页码重置 - pageIndex = 1 - obtainSearchResult(args, pageIndex) - } - resultRefreshLayout.setOnLoadMoreListener { - isLoadMore = true - pageIndex++ - obtainSearchResult(args, pageIndex) - } - } - - private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { - searchDeviceViewModel.obtainDeviceResult( - args[0], args[1], args[2], args[3], args[4], pageIndex - ) - } - - private class WeakReferenceHandler(activity: DeviceSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042001) { - if (activity.isRefresh || activity.isLoadMore) { - activity.deviceListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.deviceListAdapter - activity.deviceListAdapter.setOnItemClickListener(object : - DeviceListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) - } - } - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt index 48c5cf2..2a23622 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt @@ -41,6 +41,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var areaViewModel: AreaViewModel private lateinit var dataListAdapter: DeviceDataListAdapter + private lateinit var areaView: TextView private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -161,7 +162,7 @@ override fun onDrawerOpened(drawerView: View) { val deviceCodeView = drawerView.findViewById(R.id.deviceCodeView) - val areaView = drawerView.findViewById(R.id.areaView) + areaView = drawerView.findViewById(R.id.areaView) val searchButton = drawerView.findViewById(R.id.searchButton) val clearButton = drawerView.findViewById(R.id.clearButton) @@ -172,6 +173,7 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { keywords = deviceCodeView.text.toString() + pageIndex = 1 obtainSearchResult(pageIndex) rightDrawerLayout.closeDrawer(GravityCompat.END) } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 413d019..ada0eb7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,7 +49,6 @@ - diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt deleted file mode 100644 index d440ea4..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt +++ /dev/null @@ -1,146 +0,0 @@ -package com.casic.qd.smartwell.view - -import android.annotation.SuppressLint -import android.os.Handler -import android.os.Looper -import android.os.Message -import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.LinearLayoutManager -import com.casic.qd.smartwell.R -import com.casic.qd.smartwell.adapter.DeviceListAdapter -import com.casic.qd.smartwell.base.BaseActivity -import com.casic.qd.smartwell.extensions.navigatePageTo -import com.casic.qd.smartwell.extensions.show -import com.casic.qd.smartwell.extensions.showEmptyPage -import com.casic.qd.smartwell.model.DeviceListModel -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState -import com.casic.qd.smartwell.vm.SearchResultViewModel -import kotlinx.android.synthetic.main.activity_device_search_result.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference - -class DeviceSearchResultActivity : BaseActivity() { - - private lateinit var args: ArrayList - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var searchDeviceViewModel: SearchResultViewModel - private lateinit var deviceListAdapter: DeviceListAdapter - private var dataBeans: MutableList = ArrayList() - private var pageIndex = 1 - private var isRefresh = false - private var isLoadMore = false - - override fun initLayoutView(): Int = R.layout.activity_device_search_result - - override fun setupTopBarLayout() { - leftBackView.setOnClickListener { finish() } - titleView.text = "查询结果" - } - - override fun initData() { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) - searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) - } - - override fun initEvent() { - obtainSearchResult(args, pageIndex) - searchDeviceViewModel.deviceResultModel.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(2022042001) - } - }) - - searchDeviceViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") - } - else -> { - DialogHelper.dismissLoadingDialog() - } - } - }) - - resultRefreshLayout.setOnRefreshListener { - isRefresh = true - //刷新之后页码重置 - pageIndex = 1 - obtainSearchResult(args, pageIndex) - } - resultRefreshLayout.setOnLoadMoreListener { - isLoadMore = true - pageIndex++ - obtainSearchResult(args, pageIndex) - } - } - - private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { - searchDeviceViewModel.obtainDeviceResult( - args[0], args[1], args[2], args[3], args[4], pageIndex - ) - } - - private class WeakReferenceHandler(activity: DeviceSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042001) { - if (activity.isRefresh || activity.isLoadMore) { - activity.deviceListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.deviceListAdapter - activity.deviceListAdapter.setOnItemClickListener(object : - DeviceListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) - } - } - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt index 48c5cf2..2a23622 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt @@ -41,6 +41,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var areaViewModel: AreaViewModel private lateinit var dataListAdapter: DeviceDataListAdapter + private lateinit var areaView: TextView private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -161,7 +162,7 @@ override fun onDrawerOpened(drawerView: View) { val deviceCodeView = drawerView.findViewById(R.id.deviceCodeView) - val areaView = drawerView.findViewById(R.id.areaView) + areaView = drawerView.findViewById(R.id.areaView) val searchButton = drawerView.findViewById(R.id.searchButton) val clearButton = drawerView.findViewById(R.id.clearButton) @@ -172,6 +173,7 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { keywords = deviceCodeView.text.toString() + pageIndex = 1 obtainSearchResult(pageIndex) rightDrawerLayout.closeDrawer(GravityCompat.END) } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt index df7c525..346c8cf 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt @@ -1,24 +1,42 @@ package com.casic.qd.smartwell.view +import android.annotation.SuppressLint +import android.os.Handler +import android.os.Looper +import android.os.Message +import android.view.View +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.qd.smartwell.R +import com.casic.qd.smartwell.adapter.DeviceListAdapter import com.casic.qd.smartwell.base.BaseActivity -import com.casic.qd.smartwell.extensions.addAll import com.casic.qd.smartwell.extensions.navigatePageTo +import com.casic.qd.smartwell.extensions.show +import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AreaModel +import com.casic.qd.smartwell.model.DeviceListModel import com.casic.qd.smartwell.model.DeviceTypeModel import com.casic.qd.smartwell.model.OwnerShipModel import com.casic.qd.smartwell.utils.Constant +import com.casic.qd.smartwell.utils.DialogHelper +import com.casic.qd.smartwell.utils.LoadState import com.casic.qd.smartwell.utils.SaveKeyValues import com.casic.qd.smartwell.vm.AreaViewModel import com.casic.qd.smartwell.vm.AuthenticateViewModel import com.casic.qd.smartwell.vm.DeviceViewModel +import com.casic.qd.smartwell.vm.SearchResultViewModel import com.casic.qd.smartwell.widgets.BottomAreaSheet import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton import kotlinx.android.synthetic.main.activity_device_search.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_empty_view.* +import java.lang.ref.WeakReference /** * @author a203 @@ -26,12 +44,24 @@ * @date 2022/2/17 14:33 * @email 290677893@qq.com */ -class SearchDeviceActivity : BaseActivity() { +class SearchDeviceActivity : BaseActivity(), DrawerLayout.DrawerListener { + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var searchDeviceViewModel: SearchResultViewModel private lateinit var deviceViewModel: DeviceViewModel private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var areaViewModel: AreaViewModel + private lateinit var deviceListAdapter: DeviceListAdapter + private lateinit var deviceTypeView: TextView + private lateinit var ownerShipView: TextView + private lateinit var deviceStateView: TextView + private lateinit var areaView: TextView + private var dataBeans: MutableList = ArrayList() + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false private var authenticatedType: MutableList = ArrayList() + private var keywords = "" private var deviceTypeValue = "" private var deptId = "" private var deviceState = "" @@ -40,7 +70,6 @@ override fun initLayoutView(): Int = R.layout.activity_device_search override fun setupTopBarLayout() { - leftBackView.setOnClickListener { finish() } titleView.text = "设备查询" } @@ -51,18 +80,155 @@ userDeviceJson, object : TypeToken>() {}.type ) } + weakReferenceHandler = WeakReferenceHandler(this) + searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) areaViewModel = ViewModelProvider(this).get(AreaViewModel::class.java) } override fun initEvent() { + obtainSearchResult(pageIndex) + searchDeviceViewModel.deviceResultModel.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(2022042001) + } + }) + + searchDeviceViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") + } + else -> { + DialogHelper.dismissLoadingDialog() + } + } + }) + + resultRefreshLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + obtainSearchResult(pageIndex) + } + resultRefreshLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + obtainSearchResult(pageIndex) + } + + rightOptionView.setOnClickListener { + if (rightDrawerLayout.isDrawerOpen(GravityCompat.END)) { + rightDrawerLayout.closeDrawer(GravityCompat.END) + } else { + rightDrawerLayout.openDrawer(GravityCompat.END) + } + } + rightDrawerLayout.addDrawerListener(this) + + //数据监听 + dataModelObserve() + } + + override fun onDrawerSlide(drawerView: View, slideOffset: Float) { + + } + + override fun onDrawerOpened(drawerView: View) { + val wellCodeView = drawerView.findViewById(R.id.wellCodeView) + deviceTypeView = drawerView.findViewById(R.id.deviceTypeView) + ownerShipView = drawerView.findViewById(R.id.ownerShipView) + deviceStateView = drawerView.findViewById(R.id.deviceStateView) + areaView = drawerView.findViewById(R.id.areaView) + val searchButton = drawerView.findViewById(R.id.searchButton) + val clearButton = drawerView.findViewById(R.id.clearButton) + deviceTypeView.setOnClickListener { /** * 获取全部设备类型 * */ deviceViewModel.obtainDeviceType() } + + ownerShipView.setOnClickListener { + authenticateViewModel.obtainOwnerShip("03") + } + + deviceStateView.setOnClickListener { + QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("在线情况") + .addItem("在线") + .addItem("离线") + .setGravityCenter(true) + .setOnSheetItemClickListener { dialog, _, _, tag -> + deviceStateView.text = tag + this.deviceState = if (tag == "在线") { + "1" + } else { + "0" + } + + dialog.dismiss() + }.build().show() + } + + areaView.setOnClickListener { + areaViewModel.obtainArea() + } + + searchButton.setChangeAlphaWhenPress(true) + searchButton.setOnClickListener { + pageIndex = 1 + obtainSearchResult(pageIndex) + rightDrawerLayout.closeDrawer(GravityCompat.END) + } + + clearButton.setChangeAlphaWhenPress(true) + clearButton.setOnClickListener { + keywords = "" + deviceTypeValue = "" + deptId = "" + deviceState = "" + areaId = "" + + wellCodeView.setText("") + deviceTypeView.text = "" + ownerShipView.text = "" + deviceStateView.text = "" + areaView.text = "" + } + } + + override fun onDrawerClosed(drawerView: View) { + + } + + override fun onDrawerStateChanged(newState: Int) { + + } + + private fun dataModelObserve() { deviceViewModel.typeModel.observe(this, { if (it.code == 200) { val authenticatedModel: MutableList = ArrayList() @@ -86,9 +252,6 @@ } }) - ownerShipView.setOnClickListener { - authenticateViewModel.obtainOwnerShip("03") - } authenticateViewModel.resultModel.observe(this, { if (it.code == 200) { val ownerShipModel: MutableList = ArrayList() @@ -110,27 +273,6 @@ } }) - deviceStateView.setOnClickListener { - QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("在线情况") - .addItem("在线") - .addItem("离线") - .setGravityCenter(true) - .setOnSheetItemClickListener { dialog, _, _, tag -> - deviceStateView.text = tag - this.deviceState = if (tag == "在线") { - "1" - } else { - "0" - } - - dialog.dismiss() - }.build().show() - } - - areaView.setOnClickListener { - areaViewModel.obtainArea() - } areaViewModel.areaModel.observe(this, { if (it.code == 200) { val firstLevelArea: MutableList = ArrayList() @@ -158,28 +300,51 @@ }).build().show() } }) + } - searchButton.setChangeAlphaWhenPress(true) - searchButton.setOnClickListener { - //页面跳转,将查询参数传过去 - navigatePageTo( - DeviceSearchResultActivity::class.java, addAll( - wellCodeView.text.toString().trim(), - deviceTypeValue, - deptId, - deviceState, - areaId - ) - ) - } + private fun obtainSearchResult(page: Int) { + searchDeviceViewModel.obtainDeviceResult( + keywords, deviceTypeValue, deptId, deviceState, areaId, page + ) + } - clearButton.setChangeAlphaWhenPress(true) - clearButton.setOnClickListener { - wellCodeView.setText("") - deviceTypeView.text = "" - ownerShipView.text = "" - deviceStateView.text = "" - areaView.text = "" + private class WeakReferenceHandler(activity: SearchDeviceActivity) : + Handler(Looper.getMainLooper()) { + private val reference: WeakReference = WeakReference(activity) + + @SuppressLint("NotifyDataSetChanged") + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + val activity = reference.get()!! + if (msg.what == 2022042001) { + if (activity.isRefresh || activity.isLoadMore) { + activity.deviceListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.deviceListAdapter + activity.deviceListAdapter.setOnItemClickListener(object : + DeviceListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val deviceCode = activity.dataBeans[position].devcode.toString() + if (deviceCode.isBlank()) { + "设备编号异常,无法查看历史数据".show() + return + } + activity.navigatePageTo( + DeviceDataDetailActivity::class.java, deviceCode + ) + } + }) + } + } + } } } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 413d019..ada0eb7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,7 +49,6 @@ - diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt deleted file mode 100644 index d440ea4..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt +++ /dev/null @@ -1,146 +0,0 @@ -package com.casic.qd.smartwell.view - -import android.annotation.SuppressLint -import android.os.Handler -import android.os.Looper -import android.os.Message -import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.LinearLayoutManager -import com.casic.qd.smartwell.R -import com.casic.qd.smartwell.adapter.DeviceListAdapter -import com.casic.qd.smartwell.base.BaseActivity -import com.casic.qd.smartwell.extensions.navigatePageTo -import com.casic.qd.smartwell.extensions.show -import com.casic.qd.smartwell.extensions.showEmptyPage -import com.casic.qd.smartwell.model.DeviceListModel -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState -import com.casic.qd.smartwell.vm.SearchResultViewModel -import kotlinx.android.synthetic.main.activity_device_search_result.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference - -class DeviceSearchResultActivity : BaseActivity() { - - private lateinit var args: ArrayList - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var searchDeviceViewModel: SearchResultViewModel - private lateinit var deviceListAdapter: DeviceListAdapter - private var dataBeans: MutableList = ArrayList() - private var pageIndex = 1 - private var isRefresh = false - private var isLoadMore = false - - override fun initLayoutView(): Int = R.layout.activity_device_search_result - - override fun setupTopBarLayout() { - leftBackView.setOnClickListener { finish() } - titleView.text = "查询结果" - } - - override fun initData() { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) - searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) - } - - override fun initEvent() { - obtainSearchResult(args, pageIndex) - searchDeviceViewModel.deviceResultModel.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(2022042001) - } - }) - - searchDeviceViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") - } - else -> { - DialogHelper.dismissLoadingDialog() - } - } - }) - - resultRefreshLayout.setOnRefreshListener { - isRefresh = true - //刷新之后页码重置 - pageIndex = 1 - obtainSearchResult(args, pageIndex) - } - resultRefreshLayout.setOnLoadMoreListener { - isLoadMore = true - pageIndex++ - obtainSearchResult(args, pageIndex) - } - } - - private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { - searchDeviceViewModel.obtainDeviceResult( - args[0], args[1], args[2], args[3], args[4], pageIndex - ) - } - - private class WeakReferenceHandler(activity: DeviceSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042001) { - if (activity.isRefresh || activity.isLoadMore) { - activity.deviceListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.deviceListAdapter - activity.deviceListAdapter.setOnItemClickListener(object : - DeviceListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) - } - } - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt index 48c5cf2..2a23622 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt @@ -41,6 +41,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var areaViewModel: AreaViewModel private lateinit var dataListAdapter: DeviceDataListAdapter + private lateinit var areaView: TextView private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -161,7 +162,7 @@ override fun onDrawerOpened(drawerView: View) { val deviceCodeView = drawerView.findViewById(R.id.deviceCodeView) - val areaView = drawerView.findViewById(R.id.areaView) + areaView = drawerView.findViewById(R.id.areaView) val searchButton = drawerView.findViewById(R.id.searchButton) val clearButton = drawerView.findViewById(R.id.clearButton) @@ -172,6 +173,7 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { keywords = deviceCodeView.text.toString() + pageIndex = 1 obtainSearchResult(pageIndex) rightDrawerLayout.closeDrawer(GravityCompat.END) } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt index df7c525..346c8cf 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt @@ -1,24 +1,42 @@ package com.casic.qd.smartwell.view +import android.annotation.SuppressLint +import android.os.Handler +import android.os.Looper +import android.os.Message +import android.view.View +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.qd.smartwell.R +import com.casic.qd.smartwell.adapter.DeviceListAdapter import com.casic.qd.smartwell.base.BaseActivity -import com.casic.qd.smartwell.extensions.addAll import com.casic.qd.smartwell.extensions.navigatePageTo +import com.casic.qd.smartwell.extensions.show +import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AreaModel +import com.casic.qd.smartwell.model.DeviceListModel import com.casic.qd.smartwell.model.DeviceTypeModel import com.casic.qd.smartwell.model.OwnerShipModel import com.casic.qd.smartwell.utils.Constant +import com.casic.qd.smartwell.utils.DialogHelper +import com.casic.qd.smartwell.utils.LoadState import com.casic.qd.smartwell.utils.SaveKeyValues import com.casic.qd.smartwell.vm.AreaViewModel import com.casic.qd.smartwell.vm.AuthenticateViewModel import com.casic.qd.smartwell.vm.DeviceViewModel +import com.casic.qd.smartwell.vm.SearchResultViewModel import com.casic.qd.smartwell.widgets.BottomAreaSheet import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton import kotlinx.android.synthetic.main.activity_device_search.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_empty_view.* +import java.lang.ref.WeakReference /** * @author a203 @@ -26,12 +44,24 @@ * @date 2022/2/17 14:33 * @email 290677893@qq.com */ -class SearchDeviceActivity : BaseActivity() { +class SearchDeviceActivity : BaseActivity(), DrawerLayout.DrawerListener { + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var searchDeviceViewModel: SearchResultViewModel private lateinit var deviceViewModel: DeviceViewModel private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var areaViewModel: AreaViewModel + private lateinit var deviceListAdapter: DeviceListAdapter + private lateinit var deviceTypeView: TextView + private lateinit var ownerShipView: TextView + private lateinit var deviceStateView: TextView + private lateinit var areaView: TextView + private var dataBeans: MutableList = ArrayList() + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false private var authenticatedType: MutableList = ArrayList() + private var keywords = "" private var deviceTypeValue = "" private var deptId = "" private var deviceState = "" @@ -40,7 +70,6 @@ override fun initLayoutView(): Int = R.layout.activity_device_search override fun setupTopBarLayout() { - leftBackView.setOnClickListener { finish() } titleView.text = "设备查询" } @@ -51,18 +80,155 @@ userDeviceJson, object : TypeToken>() {}.type ) } + weakReferenceHandler = WeakReferenceHandler(this) + searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) areaViewModel = ViewModelProvider(this).get(AreaViewModel::class.java) } override fun initEvent() { + obtainSearchResult(pageIndex) + searchDeviceViewModel.deviceResultModel.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(2022042001) + } + }) + + searchDeviceViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") + } + else -> { + DialogHelper.dismissLoadingDialog() + } + } + }) + + resultRefreshLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + obtainSearchResult(pageIndex) + } + resultRefreshLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + obtainSearchResult(pageIndex) + } + + rightOptionView.setOnClickListener { + if (rightDrawerLayout.isDrawerOpen(GravityCompat.END)) { + rightDrawerLayout.closeDrawer(GravityCompat.END) + } else { + rightDrawerLayout.openDrawer(GravityCompat.END) + } + } + rightDrawerLayout.addDrawerListener(this) + + //数据监听 + dataModelObserve() + } + + override fun onDrawerSlide(drawerView: View, slideOffset: Float) { + + } + + override fun onDrawerOpened(drawerView: View) { + val wellCodeView = drawerView.findViewById(R.id.wellCodeView) + deviceTypeView = drawerView.findViewById(R.id.deviceTypeView) + ownerShipView = drawerView.findViewById(R.id.ownerShipView) + deviceStateView = drawerView.findViewById(R.id.deviceStateView) + areaView = drawerView.findViewById(R.id.areaView) + val searchButton = drawerView.findViewById(R.id.searchButton) + val clearButton = drawerView.findViewById(R.id.clearButton) + deviceTypeView.setOnClickListener { /** * 获取全部设备类型 * */ deviceViewModel.obtainDeviceType() } + + ownerShipView.setOnClickListener { + authenticateViewModel.obtainOwnerShip("03") + } + + deviceStateView.setOnClickListener { + QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("在线情况") + .addItem("在线") + .addItem("离线") + .setGravityCenter(true) + .setOnSheetItemClickListener { dialog, _, _, tag -> + deviceStateView.text = tag + this.deviceState = if (tag == "在线") { + "1" + } else { + "0" + } + + dialog.dismiss() + }.build().show() + } + + areaView.setOnClickListener { + areaViewModel.obtainArea() + } + + searchButton.setChangeAlphaWhenPress(true) + searchButton.setOnClickListener { + pageIndex = 1 + obtainSearchResult(pageIndex) + rightDrawerLayout.closeDrawer(GravityCompat.END) + } + + clearButton.setChangeAlphaWhenPress(true) + clearButton.setOnClickListener { + keywords = "" + deviceTypeValue = "" + deptId = "" + deviceState = "" + areaId = "" + + wellCodeView.setText("") + deviceTypeView.text = "" + ownerShipView.text = "" + deviceStateView.text = "" + areaView.text = "" + } + } + + override fun onDrawerClosed(drawerView: View) { + + } + + override fun onDrawerStateChanged(newState: Int) { + + } + + private fun dataModelObserve() { deviceViewModel.typeModel.observe(this, { if (it.code == 200) { val authenticatedModel: MutableList = ArrayList() @@ -86,9 +252,6 @@ } }) - ownerShipView.setOnClickListener { - authenticateViewModel.obtainOwnerShip("03") - } authenticateViewModel.resultModel.observe(this, { if (it.code == 200) { val ownerShipModel: MutableList = ArrayList() @@ -110,27 +273,6 @@ } }) - deviceStateView.setOnClickListener { - QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("在线情况") - .addItem("在线") - .addItem("离线") - .setGravityCenter(true) - .setOnSheetItemClickListener { dialog, _, _, tag -> - deviceStateView.text = tag - this.deviceState = if (tag == "在线") { - "1" - } else { - "0" - } - - dialog.dismiss() - }.build().show() - } - - areaView.setOnClickListener { - areaViewModel.obtainArea() - } areaViewModel.areaModel.observe(this, { if (it.code == 200) { val firstLevelArea: MutableList = ArrayList() @@ -158,28 +300,51 @@ }).build().show() } }) + } - searchButton.setChangeAlphaWhenPress(true) - searchButton.setOnClickListener { - //页面跳转,将查询参数传过去 - navigatePageTo( - DeviceSearchResultActivity::class.java, addAll( - wellCodeView.text.toString().trim(), - deviceTypeValue, - deptId, - deviceState, - areaId - ) - ) - } + private fun obtainSearchResult(page: Int) { + searchDeviceViewModel.obtainDeviceResult( + keywords, deviceTypeValue, deptId, deviceState, areaId, page + ) + } - clearButton.setChangeAlphaWhenPress(true) - clearButton.setOnClickListener { - wellCodeView.setText("") - deviceTypeView.text = "" - ownerShipView.text = "" - deviceStateView.text = "" - areaView.text = "" + private class WeakReferenceHandler(activity: SearchDeviceActivity) : + Handler(Looper.getMainLooper()) { + private val reference: WeakReference = WeakReference(activity) + + @SuppressLint("NotifyDataSetChanged") + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + val activity = reference.get()!! + if (msg.what == 2022042001) { + if (activity.isRefresh || activity.isLoadMore) { + activity.deviceListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.deviceListAdapter + activity.deviceListAdapter.setOnItemClickListener(object : + DeviceListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val deviceCode = activity.dataBeans[position].devcode.toString() + if (deviceCode.isBlank()) { + "设备编号异常,无法查看历史数据".show() + return + } + activity.navigatePageTo( + DeviceDataDetailActivity::class.java, deviceCode + ) + } + }) + } + } + } } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_device_search.xml b/app/src/main/res/layout/activity_device_search.xml index 81fa8ee..f999a69 100644 --- a/app/src/main/res/layout/activity_device_search.xml +++ b/app/src/main/res/layout/activity_device_search.xml @@ -8,152 +8,223 @@ android:orientation="vertical" tools:context=".view.SearchDeviceActivity"> - - - + android:layout_height="@dimen/titleViewHeight" + android:background="@color/mainThemeColor"> + + + + + + + + + + + + + + + + + + + + + + + + + + + android:layout_height="0dp" + android:layout_weight="1" + android:orientation="vertical"> - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + app:qmui_backgroundColor="@color/white" + app:qmui_borderColor="@color/hintTextColor" /> - - - - - - - - + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 413d019..ada0eb7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,7 +49,6 @@ - diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt deleted file mode 100644 index d440ea4..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt +++ /dev/null @@ -1,146 +0,0 @@ -package com.casic.qd.smartwell.view - -import android.annotation.SuppressLint -import android.os.Handler -import android.os.Looper -import android.os.Message -import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.LinearLayoutManager -import com.casic.qd.smartwell.R -import com.casic.qd.smartwell.adapter.DeviceListAdapter -import com.casic.qd.smartwell.base.BaseActivity -import com.casic.qd.smartwell.extensions.navigatePageTo -import com.casic.qd.smartwell.extensions.show -import com.casic.qd.smartwell.extensions.showEmptyPage -import com.casic.qd.smartwell.model.DeviceListModel -import com.casic.qd.smartwell.utils.Constant -import com.casic.qd.smartwell.utils.DialogHelper -import com.casic.qd.smartwell.utils.LoadState -import com.casic.qd.smartwell.vm.SearchResultViewModel -import kotlinx.android.synthetic.main.activity_device_search_result.* -import kotlinx.android.synthetic.main.include_base_title.* -import kotlinx.android.synthetic.main.include_empty_view.* -import java.lang.ref.WeakReference - -class DeviceSearchResultActivity : BaseActivity() { - - private lateinit var args: ArrayList - private lateinit var weakReferenceHandler: WeakReferenceHandler - private lateinit var searchDeviceViewModel: SearchResultViewModel - private lateinit var deviceListAdapter: DeviceListAdapter - private var dataBeans: MutableList = ArrayList() - private var pageIndex = 1 - private var isRefresh = false - private var isLoadMore = false - - override fun initLayoutView(): Int = R.layout.activity_device_search_result - - override fun setupTopBarLayout() { - leftBackView.setOnClickListener { finish() } - titleView.text = "查询结果" - } - - override fun initData() { - args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - weakReferenceHandler = WeakReferenceHandler(this) - searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) - } - - override fun initEvent() { - obtainSearchResult(args, pageIndex) - searchDeviceViewModel.deviceResultModel.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(2022042001) - } - }) - - searchDeviceViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") - } - else -> { - DialogHelper.dismissLoadingDialog() - } - } - }) - - resultRefreshLayout.setOnRefreshListener { - isRefresh = true - //刷新之后页码重置 - pageIndex = 1 - obtainSearchResult(args, pageIndex) - } - resultRefreshLayout.setOnLoadMoreListener { - isLoadMore = true - pageIndex++ - obtainSearchResult(args, pageIndex) - } - } - - private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { - searchDeviceViewModel.obtainDeviceResult( - args[0], args[1], args[2], args[3], args[4], pageIndex - ) - } - - private class WeakReferenceHandler(activity: DeviceSearchResultActivity) : - Handler(Looper.getMainLooper()) { - private val reference: WeakReference = WeakReference(activity) - - @SuppressLint("NotifyDataSetChanged") - override fun handleMessage(msg: Message) { - super.handleMessage(msg) - val activity = reference.get()!! - if (msg.what == 2022042001) { - if (activity.isRefresh || activity.isLoadMore) { - activity.deviceListAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) - } - } else { - activity.emptyView!!.hide() - activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) - activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) - activity.resultRecyclerView!!.adapter = activity.deviceListAdapter - activity.deviceListAdapter.setOnItemClickListener(object : - DeviceListAdapter.OnItemClickListener { - override fun onClicked(position: Int) { - val deviceCode = activity.dataBeans[position].devcode.toString() - if (deviceCode.isBlank()) { - "设备编号异常,无法查看历史数据".show() - return - } - activity.navigatePageTo( - DeviceDataDetailActivity::class.java, deviceCode - ) - } - }) - } - } - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt index 48c5cf2..2a23622 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDataActivity.kt @@ -41,6 +41,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var areaViewModel: AreaViewModel private lateinit var dataListAdapter: DeviceDataListAdapter + private lateinit var areaView: TextView private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -161,7 +162,7 @@ override fun onDrawerOpened(drawerView: View) { val deviceCodeView = drawerView.findViewById(R.id.deviceCodeView) - val areaView = drawerView.findViewById(R.id.areaView) + areaView = drawerView.findViewById(R.id.areaView) val searchButton = drawerView.findViewById(R.id.searchButton) val clearButton = drawerView.findViewById(R.id.clearButton) @@ -172,6 +173,7 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { keywords = deviceCodeView.text.toString() + pageIndex = 1 obtainSearchResult(pageIndex) rightDrawerLayout.closeDrawer(GravityCompat.END) } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt index df7c525..346c8cf 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchDeviceActivity.kt @@ -1,24 +1,42 @@ package com.casic.qd.smartwell.view +import android.annotation.SuppressLint +import android.os.Handler +import android.os.Looper +import android.os.Message +import android.view.View +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.qd.smartwell.R +import com.casic.qd.smartwell.adapter.DeviceListAdapter import com.casic.qd.smartwell.base.BaseActivity -import com.casic.qd.smartwell.extensions.addAll import com.casic.qd.smartwell.extensions.navigatePageTo +import com.casic.qd.smartwell.extensions.show +import com.casic.qd.smartwell.extensions.showEmptyPage import com.casic.qd.smartwell.model.AreaModel +import com.casic.qd.smartwell.model.DeviceListModel import com.casic.qd.smartwell.model.DeviceTypeModel import com.casic.qd.smartwell.model.OwnerShipModel import com.casic.qd.smartwell.utils.Constant +import com.casic.qd.smartwell.utils.DialogHelper +import com.casic.qd.smartwell.utils.LoadState import com.casic.qd.smartwell.utils.SaveKeyValues import com.casic.qd.smartwell.vm.AreaViewModel import com.casic.qd.smartwell.vm.AuthenticateViewModel import com.casic.qd.smartwell.vm.DeviceViewModel +import com.casic.qd.smartwell.vm.SearchResultViewModel import com.casic.qd.smartwell.widgets.BottomAreaSheet import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton import kotlinx.android.synthetic.main.activity_device_search.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_empty_view.* +import java.lang.ref.WeakReference /** * @author a203 @@ -26,12 +44,24 @@ * @date 2022/2/17 14:33 * @email 290677893@qq.com */ -class SearchDeviceActivity : BaseActivity() { +class SearchDeviceActivity : BaseActivity(), DrawerLayout.DrawerListener { + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var searchDeviceViewModel: SearchResultViewModel private lateinit var deviceViewModel: DeviceViewModel private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var areaViewModel: AreaViewModel + private lateinit var deviceListAdapter: DeviceListAdapter + private lateinit var deviceTypeView: TextView + private lateinit var ownerShipView: TextView + private lateinit var deviceStateView: TextView + private lateinit var areaView: TextView + private var dataBeans: MutableList = ArrayList() + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false private var authenticatedType: MutableList = ArrayList() + private var keywords = "" private var deviceTypeValue = "" private var deptId = "" private var deviceState = "" @@ -40,7 +70,6 @@ override fun initLayoutView(): Int = R.layout.activity_device_search override fun setupTopBarLayout() { - leftBackView.setOnClickListener { finish() } titleView.text = "设备查询" } @@ -51,18 +80,155 @@ userDeviceJson, object : TypeToken>() {}.type ) } + weakReferenceHandler = WeakReferenceHandler(this) + searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) areaViewModel = ViewModelProvider(this).get(AreaViewModel::class.java) } override fun initEvent() { + obtainSearchResult(pageIndex) + searchDeviceViewModel.deviceResultModel.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(2022042001) + } + }) + + searchDeviceViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") + } + else -> { + DialogHelper.dismissLoadingDialog() + } + } + }) + + resultRefreshLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + obtainSearchResult(pageIndex) + } + resultRefreshLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + obtainSearchResult(pageIndex) + } + + rightOptionView.setOnClickListener { + if (rightDrawerLayout.isDrawerOpen(GravityCompat.END)) { + rightDrawerLayout.closeDrawer(GravityCompat.END) + } else { + rightDrawerLayout.openDrawer(GravityCompat.END) + } + } + rightDrawerLayout.addDrawerListener(this) + + //数据监听 + dataModelObserve() + } + + override fun onDrawerSlide(drawerView: View, slideOffset: Float) { + + } + + override fun onDrawerOpened(drawerView: View) { + val wellCodeView = drawerView.findViewById(R.id.wellCodeView) + deviceTypeView = drawerView.findViewById(R.id.deviceTypeView) + ownerShipView = drawerView.findViewById(R.id.ownerShipView) + deviceStateView = drawerView.findViewById(R.id.deviceStateView) + areaView = drawerView.findViewById(R.id.areaView) + val searchButton = drawerView.findViewById(R.id.searchButton) + val clearButton = drawerView.findViewById(R.id.clearButton) + deviceTypeView.setOnClickListener { /** * 获取全部设备类型 * */ deviceViewModel.obtainDeviceType() } + + ownerShipView.setOnClickListener { + authenticateViewModel.obtainOwnerShip("03") + } + + deviceStateView.setOnClickListener { + QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("在线情况") + .addItem("在线") + .addItem("离线") + .setGravityCenter(true) + .setOnSheetItemClickListener { dialog, _, _, tag -> + deviceStateView.text = tag + this.deviceState = if (tag == "在线") { + "1" + } else { + "0" + } + + dialog.dismiss() + }.build().show() + } + + areaView.setOnClickListener { + areaViewModel.obtainArea() + } + + searchButton.setChangeAlphaWhenPress(true) + searchButton.setOnClickListener { + pageIndex = 1 + obtainSearchResult(pageIndex) + rightDrawerLayout.closeDrawer(GravityCompat.END) + } + + clearButton.setChangeAlphaWhenPress(true) + clearButton.setOnClickListener { + keywords = "" + deviceTypeValue = "" + deptId = "" + deviceState = "" + areaId = "" + + wellCodeView.setText("") + deviceTypeView.text = "" + ownerShipView.text = "" + deviceStateView.text = "" + areaView.text = "" + } + } + + override fun onDrawerClosed(drawerView: View) { + + } + + override fun onDrawerStateChanged(newState: Int) { + + } + + private fun dataModelObserve() { deviceViewModel.typeModel.observe(this, { if (it.code == 200) { val authenticatedModel: MutableList = ArrayList() @@ -86,9 +252,6 @@ } }) - ownerShipView.setOnClickListener { - authenticateViewModel.obtainOwnerShip("03") - } authenticateViewModel.resultModel.observe(this, { if (it.code == 200) { val ownerShipModel: MutableList = ArrayList() @@ -110,27 +273,6 @@ } }) - deviceStateView.setOnClickListener { - QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("在线情况") - .addItem("在线") - .addItem("离线") - .setGravityCenter(true) - .setOnSheetItemClickListener { dialog, _, _, tag -> - deviceStateView.text = tag - this.deviceState = if (tag == "在线") { - "1" - } else { - "0" - } - - dialog.dismiss() - }.build().show() - } - - areaView.setOnClickListener { - areaViewModel.obtainArea() - } areaViewModel.areaModel.observe(this, { if (it.code == 200) { val firstLevelArea: MutableList = ArrayList() @@ -158,28 +300,51 @@ }).build().show() } }) + } - searchButton.setChangeAlphaWhenPress(true) - searchButton.setOnClickListener { - //页面跳转,将查询参数传过去 - navigatePageTo( - DeviceSearchResultActivity::class.java, addAll( - wellCodeView.text.toString().trim(), - deviceTypeValue, - deptId, - deviceState, - areaId - ) - ) - } + private fun obtainSearchResult(page: Int) { + searchDeviceViewModel.obtainDeviceResult( + keywords, deviceTypeValue, deptId, deviceState, areaId, page + ) + } - clearButton.setChangeAlphaWhenPress(true) - clearButton.setOnClickListener { - wellCodeView.setText("") - deviceTypeView.text = "" - ownerShipView.text = "" - deviceStateView.text = "" - areaView.text = "" + private class WeakReferenceHandler(activity: SearchDeviceActivity) : + Handler(Looper.getMainLooper()) { + private val reference: WeakReference = WeakReference(activity) + + @SuppressLint("NotifyDataSetChanged") + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + val activity = reference.get()!! + if (msg.what == 2022042001) { + if (activity.isRefresh || activity.isLoadMore) { + activity.deviceListAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.deviceListAdapter + activity.deviceListAdapter.setOnItemClickListener(object : + DeviceListAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val deviceCode = activity.dataBeans[position].devcode.toString() + if (deviceCode.isBlank()) { + "设备编号异常,无法查看历史数据".show() + return + } + activity.navigatePageTo( + DeviceDataDetailActivity::class.java, deviceCode + ) + } + }) + } + } + } } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_device_search.xml b/app/src/main/res/layout/activity_device_search.xml index 81fa8ee..f999a69 100644 --- a/app/src/main/res/layout/activity_device_search.xml +++ b/app/src/main/res/layout/activity_device_search.xml @@ -8,152 +8,223 @@ android:orientation="vertical" tools:context=".view.SearchDeviceActivity"> - - - + android:layout_height="@dimen/titleViewHeight" + android:background="@color/mainThemeColor"> + + + + + + + + + + + + + + + + + + + + + + + + + + + android:layout_height="0dp" + android:layout_weight="1" + android:orientation="vertical"> - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + app:qmui_backgroundColor="@color/white" + app:qmui_borderColor="@color/hintTextColor" /> - - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_device_search_result.xml b/app/src/main/res/layout/activity_device_search_result.xml deleted file mode 100644 index a71ad17..0000000 --- a/app/src/main/res/layout/activity_device_search_result.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file