设备总览-完成 部分
parent
b45f9b543a
commit
2b6a435a31
@ -0,0 +1,122 @@
|
|||||||
|
package com.rehome.zhdcoa.adapter
|
||||||
|
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Context
|
||||||
|
import android.graphics.Bitmap
|
||||||
|
import android.graphics.BitmapFactory
|
||||||
|
import android.graphics.Color
|
||||||
|
import android.graphics.drawable.BitmapDrawable
|
||||||
|
import android.graphics.drawable.Drawable
|
||||||
|
import android.text.TextUtils
|
||||||
|
import android.util.Log
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import com.rehome.zhdcoa.Contans
|
||||||
|
import com.rehome.zhdcoa.Listener.OnItemClickListener
|
||||||
|
import com.rehome.zhdcoa.R
|
||||||
|
import com.rehome.zhdcoa.base.BaseViewBindingAdapter
|
||||||
|
import com.rehome.zhdcoa.bean.DeviceManagerListResultBean
|
||||||
|
import com.rehome.zhdcoa.databinding.AdapterDeviceOverviewListBinding
|
||||||
|
import com.rehome.zhdcoa.utils.NohttpUtils
|
||||||
|
import com.yolanda.nohttp.NoHttp
|
||||||
|
import com.yolanda.nohttp.rest.CacheMode
|
||||||
|
import com.yolanda.nohttp.rest.OnResponseListener
|
||||||
|
import com.yolanda.nohttp.rest.RequestQueue
|
||||||
|
import com.yolanda.nohttp.rest.Response
|
||||||
|
import javax.net.ssl.HostnameVerifier
|
||||||
|
|
||||||
|
class DeviceOverviewListAdapter(
|
||||||
|
var context: Context,
|
||||||
|
var data: MutableList<DeviceManagerListResultBean.DeviceManagerItem>,
|
||||||
|
var onItemClickListenerDetail: OnItemClickListener
|
||||||
|
) : BaseViewBindingAdapter<AdapterDeviceOverviewListBinding>(context) {
|
||||||
|
override fun getCount(): Int {
|
||||||
|
return data.count()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getItem(position: Int): Any {
|
||||||
|
return data[position]
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getItemId(position: Int): Long {
|
||||||
|
return position.toLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override fun getBinding(inflater: LayoutInflater, parent: ViewGroup?) =
|
||||||
|
AdapterDeviceOverviewListBinding.inflate(inflater, parent, false)
|
||||||
|
|
||||||
|
@SuppressLint("SetTextI18n", "DefaultLocale")
|
||||||
|
override fun handleData(position: Int, binding: AdapterDeviceOverviewListBinding) {
|
||||||
|
val itemBean: DeviceManagerListResultBean.DeviceManagerItem = data[position]
|
||||||
|
if (!TextUtils.isEmpty(itemBean.fileName)) {
|
||||||
|
val mediaUrl = Contans.IP + Contans.getImgDeviceOnlineBaseUrl+itemBean.fileName
|
||||||
|
val request = NoHttp.createImageRequest(mediaUrl)
|
||||||
|
request.cacheMode = CacheMode.NONE_CACHE_REQUEST_NETWORK
|
||||||
|
|
||||||
|
if (!TextUtils.isEmpty(mediaUrl)) {
|
||||||
|
Log.i("app", "fullPath is:$mediaUrl")
|
||||||
|
if (!TextUtils.isEmpty(request.url())) {
|
||||||
|
val url = request.url()
|
||||||
|
if (url.startsWith("https://219.131.195.3:7100") || url.startsWith("https://219.131.195.3:7011") || url.startsWith(
|
||||||
|
"https://219.131.195.3:7081"
|
||||||
|
) || url.startsWith("https://219.131.195.3:7082")
|
||||||
|
) {
|
||||||
|
val socketFactory = NohttpUtils.getSSLSocketFactory(context)
|
||||||
|
if (socketFactory != null) {
|
||||||
|
request.sslSocketFactory = socketFactory
|
||||||
|
request.hostnameVerifier = HostnameVerifier { s, sslSession -> true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val queue: RequestQueue = NoHttp.newRequestQueue(1)
|
||||||
|
queue.add<Bitmap>(6, request, object : OnResponseListener<Bitmap?> {
|
||||||
|
override fun onStart(what: Int) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFailed(what: Int, response: Response<Bitmap?>?) {
|
||||||
|
val bitmap = BitmapFactory.decodeResource(context.resources, R.drawable.icon_device_place)
|
||||||
|
val drawable: Drawable = BitmapDrawable(context.resources, bitmap)
|
||||||
|
binding.ivDevicePhoto.setImageDrawable(drawable)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSucceed(what: Int, response: Response<Bitmap?>?) {
|
||||||
|
val bitmap = response?.get()
|
||||||
|
if(bitmap!=null){
|
||||||
|
val drawable: Drawable = BitmapDrawable(context.resources, bitmap)
|
||||||
|
binding.ivDevicePhoto.setImageDrawable(drawable)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFinish(what: Int) {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
val bitmap = BitmapFactory.decodeResource(context.resources, R.drawable.icon_device_place)
|
||||||
|
val drawable: Drawable = BitmapDrawable(context.resources, bitmap)
|
||||||
|
binding.ivDevicePhoto.setImageDrawable(drawable)
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.tvMc.text = itemBean.name
|
||||||
|
if(!TextUtils.isEmpty(itemBean.areaFullName)){
|
||||||
|
binding.tvArea.text = itemBean.areaFullName
|
||||||
|
}
|
||||||
|
binding.tvSbzt.text = itemBean.description
|
||||||
|
if(itemBean.online){
|
||||||
|
binding.tvZxzt.text = "在线"
|
||||||
|
binding.tvZxzt.setTextColor(Color.parseColor("#67C23A"))//0099ff
|
||||||
|
}else{
|
||||||
|
binding.tvZxzt.text = "离线"
|
||||||
|
binding.tvZxzt.setTextColor(Color.parseColor("#ff0000"))
|
||||||
|
}
|
||||||
|
binding.tvZtsysc.text = itemBean.continuedTime
|
||||||
|
binding.tvAzsj.text = itemBean.installTime
|
||||||
|
binding.tvYczsc.text = itemBean.runningTime
|
||||||
|
binding.tvSjgxsj.text = itemBean.warningTime
|
||||||
|
binding.llCwcz.setOnClickListener {
|
||||||
|
onItemClickListenerDetail.onItemClick(position, binding.llCwcz)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,25 +1,349 @@
|
|||||||
package com.rehome.zhdcoa.ui.activity
|
package com.rehome.zhdcoa.ui.activity
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.text.TextUtils
|
||||||
|
import android.view.View
|
||||||
|
import android.widget.RadioGroup
|
||||||
import androidx.activity.enableEdgeToEdge
|
import androidx.activity.enableEdgeToEdge
|
||||||
|
import androidx.activity.result.ActivityResultLauncher
|
||||||
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
|
import com.google.gson.GsonBuilder
|
||||||
|
import com.rehome.zhdcoa.Contans
|
||||||
|
import com.rehome.zhdcoa.Listener.OnItemClickListener
|
||||||
import com.rehome.zhdcoa.R
|
import com.rehome.zhdcoa.R
|
||||||
|
import com.rehome.zhdcoa.adapter.DeviceManagerListAdapter
|
||||||
|
import com.rehome.zhdcoa.adapter.DeviceOverviewListAdapter
|
||||||
import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding
|
import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding
|
||||||
|
import com.rehome.zhdcoa.bean.DeviceManagerListResultBean
|
||||||
|
import com.rehome.zhdcoa.bean.DeviceOnlineStatusAreaBean
|
||||||
import com.rehome.zhdcoa.databinding.ActivityDeviceOverviewListBinding
|
import com.rehome.zhdcoa.databinding.ActivityDeviceOverviewListBinding
|
||||||
|
import com.rehome.zhdcoa.utils.AuthenticationLoginAIUtils
|
||||||
|
import com.rehome.zhdcoa.utils.GsonUtils
|
||||||
|
import com.rehome.zhdcoa.utils.HttpListener
|
||||||
|
import com.rehome.zhdcoa.utils.NohttpUtils
|
||||||
|
import com.rehome.zhdcoa.utils.RSAAndroid
|
||||||
|
import com.rehome.zhdcoa.utils.SPUtils
|
||||||
|
import com.rehome.zhdcoa.weiget.LoadListView
|
||||||
import com.rehome.zhdcoa.weiget.OAToolbar
|
import com.rehome.zhdcoa.weiget.OAToolbar
|
||||||
|
import com.yolanda.nohttp.NoHttp
|
||||||
|
import com.yolanda.nohttp.RequestMethod
|
||||||
|
import com.yolanda.nohttp.rest.Response
|
||||||
|
|
||||||
|
class DeviceOverviewListActivity :
|
||||||
|
BaseActivityOaToolbarViewBinding<ActivityDeviceOverviewListBinding>() {
|
||||||
|
|
||||||
|
private var deviceManagerList: MutableList<DeviceManagerListResultBean.DeviceManagerItem> =
|
||||||
|
mutableListOf()//设备管理列表
|
||||||
|
private var deviceManagerListFilter: MutableList<DeviceManagerListResultBean.DeviceManagerItem> =
|
||||||
|
mutableListOf()//设备管理列表
|
||||||
|
private var areaList: MutableList<DeviceOnlineStatusAreaBean.DeviceArea> =
|
||||||
|
mutableListOf()//在线设备区域列表
|
||||||
|
private var areaNodeList: MutableList<DeviceOnlineStatusAreaBean.NodeList> =
|
||||||
|
mutableListOf()//在线设备区域列表
|
||||||
|
|
||||||
|
private lateinit var deviceOverviewListAdapter: DeviceOverviewListAdapter
|
||||||
|
|
||||||
|
private lateinit var launcherResult: ActivityResultLauncher<Intent>
|
||||||
|
|
||||||
|
private var nodeKey: String? = null
|
||||||
|
private var cname: String? = null
|
||||||
|
|
||||||
|
|
||||||
class DeviceOverviewListActivity : BaseActivityOaToolbarViewBinding<ActivityDeviceOverviewListBinding>() {
|
|
||||||
override fun getViewBinding() = ActivityDeviceOverviewListBinding.inflate(layoutInflater)
|
override fun getViewBinding() = ActivityDeviceOverviewListBinding.inflate(layoutInflater)
|
||||||
|
|
||||||
override fun getToolbar() = binding.toolbarView.toolbar
|
override fun getToolbar() = binding.toolbarView.toolbar
|
||||||
|
|
||||||
override fun initView() {
|
override fun initView() {
|
||||||
|
initToolbar("设备总览", "", {
|
||||||
|
|
||||||
|
})
|
||||||
|
launcherResult = createActivityResultLauncher()
|
||||||
|
|
||||||
|
binding.etArea.setOnClickListener {
|
||||||
|
if (areaList.size > 0) {
|
||||||
|
val intent = Intent(context, DeviceAreaTreeActivity::class.java)
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
||||||
|
launcherResult.launch(intent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.lv.emptyView = binding.tvNodata
|
||||||
|
|
||||||
|
val gson = GsonBuilder()
|
||||||
|
.setPrettyPrinting()
|
||||||
|
.serializeNulls()
|
||||||
|
.create()
|
||||||
|
|
||||||
|
deviceOverviewListAdapter =
|
||||||
|
DeviceOverviewListAdapter(context, deviceManagerListFilter, object : OnItemClickListener {
|
||||||
|
override fun onItemClick(position: Int, v: View?) {
|
||||||
|
val item: DeviceManagerListResultBean.DeviceManagerItem =
|
||||||
|
deviceManagerListFilter[position]
|
||||||
|
showLog(GsonUtils.GsonString(item))
|
||||||
|
val intent = Intent(context, DeviceMonitoringDetailActivity::class.java)
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
||||||
|
intent.putExtra("deviceName", item.name)
|
||||||
|
intent.putExtra("deviceId", item.code)
|
||||||
|
intent.putExtra("areaFullName", item.areaFullName)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
binding.lv.adapter = deviceOverviewListAdapter
|
||||||
|
|
||||||
|
binding.tvNodata.visibility = View.VISIBLE
|
||||||
|
binding.lv.visibility = View.GONE
|
||||||
|
binding.lv.setInterface(LoadListView.ILoadListener {
|
||||||
|
binding.lv.loadComplete()
|
||||||
|
})
|
||||||
|
binding.rg.setOnCheckedChangeListener(object : RadioGroup.OnCheckedChangeListener {
|
||||||
|
override fun onCheckedChanged(group: RadioGroup, checkedId: Int) {
|
||||||
|
filterChange()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun initData() {
|
override fun initData() {
|
||||||
|
authenticationLoginDeviceAlarmInfoRsa()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun filterChange() {
|
||||||
|
if (deviceManagerList.size > 0) {
|
||||||
|
deviceManagerListFilter.clear()
|
||||||
|
if (binding.rb1.isChecked) {
|
||||||
|
for (item in deviceManagerList) {
|
||||||
|
if (item.online != null && item.online) {
|
||||||
|
deviceManagerListFilter.add(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (binding.rb2.isChecked) {
|
||||||
|
for (item in deviceManagerList) {
|
||||||
|
if (item.online != null && !item.online) {
|
||||||
|
deviceManagerListFilter.add(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TextUtils.isEmpty(binding.etArea.text.toString().trim())) {
|
||||||
|
if (deviceManagerListFilter.size > 0) {
|
||||||
|
val deviceManagerListFilterKeyFilter: MutableList<DeviceManagerListResultBean.DeviceManagerItem> =
|
||||||
|
mutableListOf()
|
||||||
|
for (item in deviceManagerListFilter) {
|
||||||
|
if (!TextUtils.isEmpty(item.areaFullName) && item.areaFullName.contains(
|
||||||
|
binding.etArea.text.toString().trim()
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
deviceManagerListFilterKeyFilter.add(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deviceManagerListFilter.clear()
|
||||||
|
deviceManagerListFilter.addAll(deviceManagerListFilterKeyFilter)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
showLog("deviceManagerListFilter size:" + deviceManagerListFilter.size.toString())
|
||||||
|
showLog("deviceManagerList size:" + deviceManagerList.size.toString())
|
||||||
|
deviceOverviewListAdapter.notifyDataSetChanged()
|
||||||
|
binding.tvNodata.visibility = View.GONE
|
||||||
|
binding.lv.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
deviceManagerListFilter.clear()
|
||||||
|
deviceOverviewListAdapter.notifyDataSetChanged()
|
||||||
|
binding.tvNodata.visibility = View.VISIBLE
|
||||||
|
binding.lv.visibility = View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun authenticationLoginDeviceAlarmInfoRsa() {
|
||||||
|
try {
|
||||||
|
//AI三维登录接口
|
||||||
|
val userName = Contans.SP.DeviceAlermInfoAccount
|
||||||
|
val strPrivateEncode = RSAAndroid.encryptByPrivateKeyForSpiltStr(
|
||||||
|
Contans.SP.DeviceAlermInfoPwd,
|
||||||
|
RSAAndroid.privateRsaKeyLocal
|
||||||
|
)
|
||||||
|
val strPublicDecode = RSAAndroid.decryptByPublicKeyForSpiltStr(
|
||||||
|
Contans.SP.DeviceAlermInfoPwd,
|
||||||
|
RSAAndroid.publicRsaKeyLocal
|
||||||
|
)
|
||||||
|
AuthenticationLoginAIUtils.authenticationDeviceAlermInfoRsaShowProgress(
|
||||||
|
this, userName, strPublicDecode
|
||||||
|
) { _, token ->
|
||||||
|
if (token != null && token == "") {
|
||||||
|
showToast("设备状态智能监测及分析平台登录失败")
|
||||||
|
} else {
|
||||||
|
//登录成功
|
||||||
|
//获取区域
|
||||||
|
getDeviceAreaList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
e.printStackTrace()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getDeviceManagerListData() {
|
||||||
|
|
||||||
|
val request = NoHttp.createStringRequest(
|
||||||
|
Contans.IP + Contans.DeviceManagerListUrl,
|
||||||
|
RequestMethod.GET
|
||||||
|
)
|
||||||
|
|
||||||
|
NohttpUtils.getInstance().add(this, 0, request, object : HttpListener<String?> {
|
||||||
|
|
||||||
|
override fun onSucceed(what: Int, response: Response<String?>?) {
|
||||||
|
val result = response?.get()
|
||||||
|
showLog("----------------")
|
||||||
|
showLog(result)
|
||||||
|
|
||||||
|
val bean = GsonUtils.GsonToBean(
|
||||||
|
result,
|
||||||
|
DeviceManagerListResultBean::class.java
|
||||||
|
)
|
||||||
|
|
||||||
|
showLog(GsonUtils.GsonString(bean))
|
||||||
|
if (bean != null && bean.code == 20000 && bean.isSuccess && bean.data != null && bean.data.size > 0) {
|
||||||
|
deviceManagerList.clear()
|
||||||
|
deviceManagerListFilter.clear()
|
||||||
|
deviceManagerList.addAll(bean.data)
|
||||||
|
|
||||||
|
if (areaNodeList.size > 0) {
|
||||||
|
for (item in deviceManagerList) {
|
||||||
|
if (!TextUtils.isEmpty(item.areaId)) {
|
||||||
|
for (itemAreaNode in areaNodeList) {
|
||||||
|
if (item.areaId == itemAreaNode.nodeKey) {
|
||||||
|
item.areaFullName = itemAreaNode.areaFullName
|
||||||
|
item.areaFullPath = itemAreaNode.areaFullPath
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
showLog(GsonUtils.GsonString(item))
|
||||||
|
}
|
||||||
|
if (binding.rb1.isChecked) {
|
||||||
|
for (item in deviceManagerList) {
|
||||||
|
if (item.online != null && item.online) {
|
||||||
|
deviceManagerListFilter.add(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (binding.rb2.isChecked) {
|
||||||
|
for (item in deviceManagerList) {
|
||||||
|
if (item.online != null && !item.online) {
|
||||||
|
deviceManagerListFilter.add(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!TextUtils.isEmpty(binding.etArea.text.toString().trim())) {
|
||||||
|
if (deviceManagerListFilter.size > 0) {
|
||||||
|
val deviceManagerListFilterKeyFilter: MutableList<DeviceManagerListResultBean.DeviceManagerItem> =
|
||||||
|
mutableListOf()
|
||||||
|
for (item in deviceManagerListFilter) {
|
||||||
|
if (!TextUtils.isEmpty(item.areaFullName) && item.areaFullName.contains(
|
||||||
|
binding.etArea.text.toString().trim()
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
deviceManagerListFilterKeyFilter.add(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deviceManagerListFilter.clear()
|
||||||
|
deviceManagerListFilter.addAll(deviceManagerListFilterKeyFilter)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
deviceOverviewListAdapter.notifyDataSetChanged()
|
||||||
|
binding.tvNodata.visibility = View.GONE
|
||||||
|
binding.lv.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
deviceManagerList.clear()
|
||||||
|
deviceManagerListFilter.clear()
|
||||||
|
deviceOverviewListAdapter.notifyDataSetChanged()
|
||||||
|
binding.tvNodata.visibility = View.VISIBLE
|
||||||
|
binding.lv.visibility = View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFailed(what: Int, response: Response<String?>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private fun getDeviceAreaList() {
|
||||||
|
|
||||||
|
//DeviceOnlineStatusAreaBean
|
||||||
|
val request = NoHttp.createStringRequest(
|
||||||
|
Contans.IP + Contans.DeviceOnlineStatusAreaBeanUrl,
|
||||||
|
RequestMethod.GET
|
||||||
|
)
|
||||||
|
NohttpUtils.getInstance().add(this, 0, request, object : HttpListener<String?> {
|
||||||
|
|
||||||
|
override fun onSucceed(what: Int, response: Response<String?>?) {
|
||||||
|
val result = response?.get()
|
||||||
|
showLog("----------------")
|
||||||
|
showLog(result)
|
||||||
|
|
||||||
|
|
||||||
|
val bean = GsonUtils.GsonToBean(
|
||||||
|
result,
|
||||||
|
DeviceOnlineStatusAreaBean::class.java
|
||||||
|
)
|
||||||
|
|
||||||
|
showLog(GsonUtils.GsonString(bean))
|
||||||
|
if (bean != null && bean.code == 20000 && bean.isSuccess && bean.data != null && bean.data.size > 0) {
|
||||||
|
areaList.clear()
|
||||||
|
areaNodeList.clear()
|
||||||
|
areaList.addAll(bean.data)
|
||||||
|
//更新区域
|
||||||
|
for (itemArea in areaList) {
|
||||||
|
if (itemArea.nodeList != null && itemArea.nodeList.size > 0) {
|
||||||
|
for (itemNodeList in itemArea.nodeList) {
|
||||||
|
if (!TextUtils.isEmpty(itemNodeList.cname)) {
|
||||||
|
itemNodeList.areaFullPath =
|
||||||
|
itemArea.cname + "/" + itemNodeList.cname
|
||||||
|
itemNodeList.areaFullName =
|
||||||
|
itemArea.cname + ">" + itemNodeList.cname
|
||||||
|
areaNodeList.add(itemNodeList)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
showLog(GsonUtils.GsonString(areaList))
|
||||||
|
SPUtils.put(context, Contans.DeviceOnlineStatusAreaBean, result)
|
||||||
|
//获取设备管理列表
|
||||||
|
getDeviceManagerListData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFailed(what: Int, response: Response<String?>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//创建一个ActivityResultLauncher,选择区域
|
||||||
|
private fun createActivityResultLauncher(): ActivityResultLauncher<Intent> {
|
||||||
|
//kotlin写法
|
||||||
|
return registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
|
||||||
|
val data = it.data
|
||||||
|
val resultCode = it.resultCode
|
||||||
|
if (resultCode == RESULT_OK) {
|
||||||
|
if (data != null) {
|
||||||
|
nodeKey = data.getStringExtra("nodeKey")
|
||||||
|
cname = data.getStringExtra("cname")
|
||||||
|
if (cname != null && nodeKey != null) {
|
||||||
|
binding.etArea.setText(cname)
|
||||||
|
filterChange()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1,241 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/ll"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="#ffffff"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_cwcz"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="visible"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical"
|
||||||
|
tools:ignore="UselessParent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
tools:ignore="UselessParent">
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="0dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_device_photo"
|
||||||
|
android:layout_width="80dp"
|
||||||
|
android:layout_height="80dp"
|
||||||
|
android:contentDescription="@string/iv_device_photo"
|
||||||
|
android:src="@drawable/icon_device_place"/>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_marginTop="3dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="2"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginBottom="5dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="设备位置:" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_area"
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="#1锅炉区域 > 1号锅炉0米捞渣机,锅炉区域" />
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="设备名称:" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_mc"
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="#1-2循环浆液泵电机尾部" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="设备状态:" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_sbzt"
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1" />
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="在线状态:" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_zxzt"
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="状态持续时长:" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_ztsysc"
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="安装时间:" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_azsj"
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="运行总时长:" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_yczsc"
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
style="@style/dagerListMarginTopStyle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="数据更新时间:" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_sjgxsj"
|
||||||
|
style="@style/deviceManagerStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
Loading…
Reference in New Issue