diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0c3e54b..cd07b48 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -457,6 +457,12 @@ + + diff --git a/app/src/main/java/com/rehome/zhdcoa/Contans.java b/app/src/main/java/com/rehome/zhdcoa/Contans.java index 9288fe2..9d5e5f1 100644 --- a/app/src/main/java/com/rehome/zhdcoa/Contans.java +++ b/app/src/main/java/com/rehome/zhdcoa/Contans.java @@ -551,6 +551,8 @@ public class Contans { public final static String DeviceOnlineStatusListUrl = "dserver/device/list"; //获取设备区域 public final static String DeviceOnlineStatusAreaBeanUrl = "dserver/map/area/list"; + //设备管理 + public final static String DeviceManagerListUrl = "dserver/device/list/vibration"; //人员组织结构模块 用户验证接口token public final static String AUTHENTICATIONLOGINTOKEN = "AUTHENTICATIONLOGINTOKEN"; diff --git a/app/src/main/java/com/rehome/zhdcoa/adapter/DeviceManagerListAdapter.kt b/app/src/main/java/com/rehome/zhdcoa/adapter/DeviceManagerListAdapter.kt new file mode 100644 index 0000000..d660602 --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/adapter/DeviceManagerListAdapter.kt @@ -0,0 +1,188 @@ +package com.rehome.zhdcoa.adapter + + +import android.annotation.SuppressLint +import android.content.Context +import android.graphics.Bitmap +import android.graphics.BitmapFactory +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.AdapterDeviceManagerListBinding +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 DeviceManagerListAdapter( + var context: Context, + var data: MutableList, + var onItemClickListener: OnItemClickListener, + var onItemClickListenerDetail: OnItemClickListener +) : BaseViewBindingAdapter(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?) = + AdapterDeviceManagerListBinding.inflate(inflater, parent, false) + + @SuppressLint("SetTextI18n", "DefaultLocale") + override fun handleData(position: Int, binding: AdapterDeviceManagerListBinding) { + val itemBean: DeviceManagerListResultBean.DeviceManagerItem = data[position] + if (!TextUtils.isEmpty(itemBean.fileName)) { + //binding.ivDevicePhoto.setImageBitmap() + // Glide.with(viewHolder.itemView.getContext()) +// .load(Uri.parse(mediaUrl)) +// .centerCrop() +// .placeholder(R.color.app_color_f6) +// .diskCacheStrategy(DiskCacheStrategy.ALL) +// .into(viewHolder.mImg); + +// Glide.with(viewHolder.itemView.getContext()) +// .load(mediaUrl) +// .dontAnimate() +// .skipMemoryCache(true) +// .diskCacheStrategy(DiskCacheStrategy.NONE) +// .placeholder(R.drawable.head_photo) +// .into(viewHolder.mImg); + +// showLog(mediaUrl); +// Request request = NoHttp.createImageRequest(mediaUrl); + +// NohttpUtils.getInstance().addNoProgress(context,0, request, new HttpListener() { +// +// @Override +// public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { +// +// Bitmap picFile = response.get(); +// showLog(String.valueOf(picFile==null)); +// viewHolder.mImg.setImageBitmap(picFile); +// } +// +// @Override +// public void onFailed(int what, com.yolanda.nohttp.rest.Response response) { +// showLog("设备图片加载失败"); +// } +// }); + + 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(6, request, object : OnResponseListener { + override fun onStart(what: Int) { + } + + override fun onFailed(what: Int, response: Response?) { + 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?) { + 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) + } + +// if (!TextUtils.isEmpty(itemBean.position)) { +// val deviceOnlineStatusAreaBeanStr: String? = +// SPUtils.get(context, Contans.DeviceOnlineStatusAreaBean, "") as String? +// if (deviceOnlineStatusAreaBeanStr != null) { +// val bean = GsonUtils.GsonToBean( +// deviceOnlineStatusAreaBeanStr, +// DeviceOnlineStatusAreaBean::class.java +// ) +// if (bean != null && bean.code == 20000 && bean.isSuccess && bean.data != null && bean.data.size > 0) { +// val areaList: MutableList = +// mutableListOf()//在线设备区域列表 +// 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.nodeKey)) { +// if (itemNodeList.nodeKey == itemBean.position) { +// if (!TextUtils.isEmpty(itemNodeList.cname)) { +// itemBean.nodeListCname = itemNodeList.cname +// } +// } +// } +// } +// } +// } +// } +// } +// } + + 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 = "在线" + }else{ + binding.tvZxzt.text = "离线" + } + binding.tvZtsysc.text = itemBean.continuedTime + binding.tvAzsj.text = itemBean.installTime + binding.tvYczsc.text = itemBean.runningTime + binding.tvSjgxsj.text = itemBean.warningTime + binding.tvPhotoManage.setOnClickListener { + onItemClickListener.onItemClick(position, binding.tvPhotoManage) + } + binding.tvDetail.setOnClickListener { + onItemClickListenerDetail.onItemClick(position, binding.tvDetail) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/bean/DeviceManagerListResultBean.java b/app/src/main/java/com/rehome/zhdcoa/bean/DeviceManagerListResultBean.java new file mode 100644 index 0000000..055d547 --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/bean/DeviceManagerListResultBean.java @@ -0,0 +1,179 @@ +package com.rehome.zhdcoa.bean; + +import java.util.List; + +public class DeviceManagerListResultBean extends DeviceAlarmBaseBean{ + private List data; + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + /** + * { + * "code": "002c000e", + * "name": "1A低旁液压油泵电机", + * "areaId": "EAA45D00CD4F4F70B6BED584A1939AC1", + * "online": false, + * "temperatureWarn": null, + * "displacementWarn": null, + * "displacementFault": null, + * "fileName": "002c000e_604c379fe0b649439e1ffc86c0c2a343.png", + * "description": "振动异常", + * "warningTime": "2025-05-27 18:52:27", + * "continuedTime": "3天5小时46分钟", + * "installTime": null, + * "runningTime": "0分钟", + * "state": "normal" + * } + */ + public static class DeviceManagerItem { + private String code;//设备编码 + private String name;//设备名称 + private String areaId;//区域id + private Boolean online;//设备是否在线 + private String temperatureWarn;// + private String displacementWarn;// + private String displacementFault;//机组 + private String fileName;//设备图片名称 + private String description;//报警描述 + private String warningTime;//数据更新时间 + private String continuedTime;//状态持续时间 + private String installTime;//安装时间 + private String runningTime;//运行总时长 + private String state;//设备状态 + private String areaFullPath; + private String areaFullName; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public Boolean getOnline() { + return online; + } + + public void setOnline(Boolean online) { + this.online = online; + } + + public String getTemperatureWarn() { + return temperatureWarn; + } + + public void setTemperatureWarn(String temperatureWarn) { + this.temperatureWarn = temperatureWarn; + } + + public String getDisplacementWarn() { + return displacementWarn; + } + + public void setDisplacementWarn(String displacementWarn) { + this.displacementWarn = displacementWarn; + } + + public String getDisplacementFault() { + return displacementFault; + } + + public void setDisplacementFault(String displacementFault) { + this.displacementFault = displacementFault; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getWarningTime() { + return warningTime; + } + + public void setWarningTime(String warningTime) { + this.warningTime = warningTime; + } + + public String getContinuedTime() { + return continuedTime; + } + + public void setContinuedTime(String continuedTime) { + this.continuedTime = continuedTime; + } + + public String getInstallTime() { + return installTime; + } + + public void setInstallTime(String installTime) { + this.installTime = installTime; + } + + public String getRunningTime() { + return runningTime; + } + + public void setRunningTime(String runningTime) { + this.runningTime = runningTime; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getAreaFullPath() { + return areaFullPath; + } + + public void setAreaFullPath(String areaFullPath) { + this.areaFullPath = areaFullPath; + } + + public String getAreaFullName() { + return areaFullName; + } + + public void setAreaFullName(String areaFullName) { + this.areaFullName = areaFullName; + } + } +} diff --git a/app/src/main/java/com/rehome/zhdcoa/bean/DeviceOnlineStatusAreaBean.java b/app/src/main/java/com/rehome/zhdcoa/bean/DeviceOnlineStatusAreaBean.java index d401370..6b4c4b3 100644 --- a/app/src/main/java/com/rehome/zhdcoa/bean/DeviceOnlineStatusAreaBean.java +++ b/app/src/main/java/com/rehome/zhdcoa/bean/DeviceOnlineStatusAreaBean.java @@ -79,6 +79,8 @@ public class DeviceOnlineStatusAreaBean extends DeviceAlarmBaseBean{ private Long showSort;// private String xy;// private Long cameraNum; + private String areaFullPath; + private String areaFullName; public Long getId() { return id; @@ -191,5 +193,21 @@ public class DeviceOnlineStatusAreaBean extends DeviceAlarmBaseBean{ public void setCameraNum(Long cameraNum) { this.cameraNum = cameraNum; } + + public String getAreaFullPath() { + return areaFullPath; + } + + public void setAreaFullPath(String areaFullPath) { + this.areaFullPath = areaFullPath; + } + + public String getAreaFullName() { + return areaFullName; + } + + public void setAreaFullName(String areaFullName) { + this.areaFullName = areaFullName; + } } } \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceEntryActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceEntryActivity.java index bca76e9..2fdf422 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceEntryActivity.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceEntryActivity.java @@ -31,14 +31,14 @@ import java.util.List; public class DeviceEntryActivity extends BaseActivity2 { private GridView gv; -// private final String[] str = {"设备报表查询", "设备预警信息", "设备在线情况", "设备总览", "设备管理"}; -// private final int[] imageId = {R.drawable.icon_baobiao, R.drawable.icon_yujing, -// R.drawable.icon_device_online_status, R.drawable.icon_device_all_show, -// R.drawable.icon_device_manager}; - - private final String[] str = {"设备报表查询", "设备预警信息", "设备在线情况"}; + private final String[] str = {"设备报表查询", "设备预警信息", "设备在线情况", "设备总览", "设备管理"}; private final int[] imageId = {R.drawable.icon_baobiao, R.drawable.icon_yujing, - R.drawable.icon_device_online_status}; + R.drawable.icon_device_online_status, R.drawable.icon_device_all_show, + R.drawable.icon_device_manager}; + +// private final String[] str = {"设备报表查询", "设备预警信息", "设备在线情况"}; +// private final int[] imageId = {R.drawable.icon_baobiao, R.drawable.icon_yujing, +// R.drawable.icon_device_online_status}; private boolean flag = true; @@ -58,7 +58,7 @@ public class DeviceEntryActivity extends BaseActivity2 { //yxToolbar.setBackgroundColor(Color.parseColor("#00000000")); this.setStatusBar(); - setTitle("设备在线情况"); + setTitle("设备"); setBack(); List item = new ArrayList<>(); @@ -94,14 +94,14 @@ public class DeviceEntryActivity extends BaseActivity2 { startActivity(intent); break; case 3: -// intent = new Intent(DeviceEntryActivity.this, MaterialIssue.class); -// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); -// startActivity(intent); + intent = new Intent(DeviceEntryActivity.this, DeviceOverviewListActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); + startActivity(intent); break; case 4: -// intent = new Intent(DeviceEntryActivity.this, TlrkActivity.class); -// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); -// startActivity(intent); + intent = new Intent(DeviceEntryActivity.this, DeviceManagerListActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); + startActivity(intent); break; case 5: intent = new Intent(DeviceEntryActivity.this, JstkActivity.class); diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceManagerListActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceManagerListActivity.kt new file mode 100644 index 0000000..9ba2390 --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceManagerListActivity.kt @@ -0,0 +1,245 @@ +package com.rehome.zhdcoa.ui.activity + +import android.content.Intent +import android.os.Bundle +import android.text.TextUtils +import android.view.View +import android.widget.ArrayAdapter +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.google.gson.GsonBuilder +import com.google.gson.reflect.TypeToken +import com.rehome.zhdcoa.Contans +import com.rehome.zhdcoa.Listener.OnItemClickListener +import com.rehome.zhdcoa.R +import com.rehome.zhdcoa.adapter.DeviceManagerListAdapter +import com.rehome.zhdcoa.adapter.DeviceOnlineStatusListAdapter +import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding +import com.rehome.zhdcoa.bean.DeviceManagerListResultBean +import com.rehome.zhdcoa.bean.DeviceOnlineStatusAreaBean +import com.rehome.zhdcoa.bean.DeviceOnlineStatusListResultBean +import com.rehome.zhdcoa.databinding.ActivityDeviceManagerListBinding +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.yolanda.nohttp.NoHttp +import com.yolanda.nohttp.RequestMethod +import com.yolanda.nohttp.rest.Response + +class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding() { + //val typeList = mutableListOf("VIBRATION", "OIL", "FUEL", "THERMAL_IMAGER", "VIBRATION_ZB") + //options:[{ value:'online',label:'在线”}{value:'offline',label:'离线”}1, + private var deviceManagerList: MutableList = mutableListOf()//设备管理列表 + private var areaList: MutableList = mutableListOf()//在线设备区域列表 + private var areaNodeList: MutableList = mutableListOf()//在线设备区域列表 + + private lateinit var deviceManagerListAdapter: DeviceManagerListAdapter + + //DeviceManagerListAdapter + //adapter_device_manager_list +// DeviceManagerListResultBean + + private var pageNo = 1 + private var pageSize = 20 + + override fun getViewBinding() = ActivityDeviceManagerListBinding.inflate(layoutInflater) + + override fun getToolbar() = binding.toolbarView.toolbar + + override fun initView() { + initToolbar("设备管理", "",{ + + }) + + binding.btnQuery.setOnClickListener { + pageNo=1 + authenticationLoginDeviceAlarmInfoRsa() + } + + binding.lv.emptyView = binding.tvNodata + + val gson = GsonBuilder() + .setPrettyPrinting() + .serializeNulls() + .create() + + deviceManagerListAdapter = DeviceManagerListAdapter(context, deviceManagerList,object: + OnItemClickListener{ + override fun onItemClick(position: Int, v: View?) { + + } + + },object:OnItemClickListener{ + override fun onItemClick(position: Int, v: View?) { + + } + + }) + + binding.lv.adapter = deviceManagerListAdapter + + binding.tvNodata.visibility= View.VISIBLE + binding.lv.visibility= View.GONE + binding.lv.setInterface(LoadListView.ILoadListener { + binding.lv.loadComplete() + }) + } + + override fun initData() { + authenticationLoginDeviceAlarmInfoRsa() + } + + 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 + ) + + +// if(binding.rb1.isChecked){ +// request.add("online",true) +// } +// if(binding.rb2.isChecked){ +// request.add("online",false) +// } + +// val keyword = binding.etKey.text.toString().trim() +// if(!TextUtils.isEmpty(keyword)){ +// request.add("keyword",keyword) +// } + + NohttpUtils.getInstance().add(this, 0, request, object : HttpListener { + + override fun onSucceed(what: Int, response: Response?) { + 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() + 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)) + } + } + + deviceManagerListAdapter.notifyDataSetChanged() + binding.tvNodata.visibility = View.GONE + binding.lv.visibility=View.VISIBLE + pageNo++ + + }else{ + deviceManagerList.clear() + deviceManagerListAdapter.notifyDataSetChanged() + binding.tvNodata.visibility = View.VISIBLE + binding.lv.visibility=View.GONE + } + } + + override fun onFailed(what: Int, response: Response?) { + + } + }) + } + + private fun getDeviceAreaList() { + + //DeviceOnlineStatusAreaBean + val request = NoHttp.createStringRequest( + Contans.IP + Contans.DeviceOnlineStatusAreaBeanUrl, + RequestMethod.GET + ) + NohttpUtils.getInstance().add(this, 0, request, object : HttpListener { + + override fun onSucceed(what: Int, response: Response?) { + 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?) { + + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceOverviewListActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceOverviewListActivity.kt new file mode 100644 index 0000000..d06932c --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceOverviewListActivity.kt @@ -0,0 +1,25 @@ +package com.rehome.zhdcoa.ui.activity + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.rehome.zhdcoa.R +import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding +import com.rehome.zhdcoa.databinding.ActivityDeviceOverviewListBinding +import com.rehome.zhdcoa.weiget.OAToolbar + +class DeviceOverviewListActivity : BaseActivityOaToolbarViewBinding() { + override fun getViewBinding() = ActivityDeviceOverviewListBinding.inflate(layoutInflater) + + override fun getToolbar() = binding.toolbarView.toolbar + + override fun initView() { + + } + + override fun initData() { + + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/icon_device_place.jpg b/app/src/main/res/drawable-xhdpi/icon_device_place.jpg new file mode 100644 index 0000000..9fd00e5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/icon_device_place.jpg differ diff --git a/app/src/main/res/layout/activity_device_manager_list.xml b/app/src/main/res/layout/activity_device_manager_list.xml new file mode 100644 index 0000000..baf1d83 --- /dev/null +++ b/app/src/main/res/layout/activity_device_manager_list.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +