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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_device_overview_list.xml b/app/src/main/res/layout/activity_device_overview_list.xml
new file mode 100644
index 0000000..7714f0f
--- /dev/null
+++ b/app/src/main/res/layout/activity_device_overview_list.xml
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/adapter_device_manager_list.xml b/app/src/main/res/layout/adapter_device_manager_list.xml
new file mode 100644
index 0000000..f954275
--- /dev/null
+++ b/app/src/main/res/layout/adapter_device_manager_list.xml
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5c7be68..68985ae 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -94,6 +94,7 @@
内网资源
外网资源
代理域名
+ iv_device_photo
- #00FFF7
- #FFDD00
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index ac3878e..732fee2 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -192,4 +192,13 @@
- 10dp
- 8dp
+
+
+