From c1e8d3a7709295a52814378e73a68e1e1fd20da6 Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期三, 18 十月 2023 16:47:40 +0800
Subject: [PATCH] 上报oid列表新增parentoid

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java |  142 ++++++++++++++++++++++++++---------------------
 1 files changed, 78 insertions(+), 64 deletions(-)

diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java
index 99db1bb..1908d0a 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java
@@ -19,12 +19,10 @@
 import com.hdl.sdk.connect.socket.HDLSocket;
 import com.hdl.sdk.connect.utils.AesUtil;
 
-import java.time.chrono.IsoChronology;
-
 /**
  * Created by hxb on 2023/9/14.
  */
-public  class AllTopicManagerUtils {
+public class AllTopicManagerUtils {
 
     /**
      * 鍏ㄥ眬涓婚澶勭悊鏂规硶锛屽彲浠ュ鐞嗘墍鏈夋帴鏀跺埌鐨勬暟鎹�
@@ -33,7 +31,7 @@
      */
     public static void manager(LinkResponse linkResponse) {
         try {
-            if(linkResponse==null){
+            if (linkResponse == null) {
                 return;
             }
             String topic = linkResponse.getTopic();
@@ -48,65 +46,20 @@
 
             String mac_Oid_GatewayId = topics[2];
 
-            if(!isLocalDevice(mac_Oid_GatewayId)){
-                LogUtils.i("涓嶆槸褰撳墠璁惧鐨勭綉鍏矷d锛孖d鏄�"+mac_Oid_GatewayId);
+            if (!isLocalDevice(mac_Oid_GatewayId)) {
+                LogUtils.i("涓嶆槸褰撳墠璁惧鐨勭綉鍏矷d锛孖d鏄�" + mac_Oid_GatewayId);
                 //闈炲綋鍓嶈澶囩殑鏁版嵁
                 return;
             }
 
-            if(isSameTopic(TopicConstant.GATEWAY_EDIT_REMOTE,topic)){
+            if (isSameTopic(TopicConstant.GATEWAY_EDIT_REMOTE, topic)) {
                 gatewayRemoteEditRequest(mac_Oid_GatewayId, linkResponse.getData());
-            }
-            else if(isSameTopic(TopicConstant.GATEWAY_SEARCH,topic)){
+            } else if (isSameTopic(TopicConstant.GATEWAY_SEARCH, topic)) {
                 HDLAuthSocket.getInstance().UploadGatewayInfo(null);
-            }
-            else if(isSameTopic(TopicConstant.LINK_BROADCAST,topic)){
-                try {
-                    DeviceInfoResponse deviceInfoResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<DeviceInfoResponse>() {
-                    }.getType());
-
-                    if(deviceInfoResponse==null||deviceInfoResponse.getObjects()==null){
-                        return;
-                    }
-                    if (!TextUtils.isEmpty(deviceInfoResponse.getObjects().getLocalSecret())) {
-                        byte[] baseBytes = Base64.decode(deviceInfoResponse.getObjects().getLocalSecret(), Base64.NO_WRAP);
-                        String mackey = "";
-                        if (!TextUtils.isEmpty(SPUtils.getString("auth_mackey_key", ""))) {
-                            mackey = SPUtils.getString("auth_mackey_key", "");
-                            byte[] bodyBytes = AesUtil.aesDecrypt(baseBytes, mackey.substring(mackey.length() - 16));
-                            String localSecret = new String(bodyBytes, "utf-8");
-                            Log.d("panlili", "鏇存柊瀵嗛挜----->localSecret= " + localSecret);
-                            HDLLinkConfig.getInstance().setLocalSecret(localSecret);
-                        }
-                    }
-                } catch (Exception e) {
-                    LogUtils.i("LinkMessageDecoder.java:getLocalSecret----->e= " + e.getMessage());
-                }
-            }
-            else if(isSameTopic(TopicConstant.DELETE_NOTIFY,topic)){
-                try {
-                    DeviceDeleteResponse deviceDeleteResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<DeviceDeleteResponse>() {
-                    }.getType());
-                    HDLSocket.getInstance().deleteNetwork(deviceDeleteResponse.getObjects().get(0).getOID(), new HDLLinkCallBack() {
-                        @Override
-                        public void onSuccess(String msg) {
-                            LogUtils.i("deleteNetwork onSucceed");
-                            if (HDLLink.getInstance().listener != null) {
-                                HDLLink.getInstance().listener.onSuccess(msg);
-                            }
-                        }
-
-                        @Override
-                        public void onError(HDLLinkException e) {
-                            LogUtils.i("deleteNetwork onError");
-                            if (HDLLink.getInstance().listener != null) {
-                                HDLLink.getInstance().listener.onFailure();
-                            }
-                        }
-                    });
-                } catch (Exception e) {
-                    LogUtils.i("LinkMessageDecoder.java:deleteNetwork----->e= " + e.getMessage());
-                }
+            } else if (isSameTopic(TopicConstant.LINK_BROADCAST, topic)) {
+                managerLinkBroadcast(linkResponse.getData());
+            } else if (isSameTopic(TopicConstant.DELETE_NOTIFY, topic)) {
+                managerDeleteNofity(linkResponse.getData());
             }
 
         } catch (Exception e) {
@@ -116,6 +69,7 @@
 
     /**
      * 鏄惁褰撳墠鐨勮澶�
+     *
      * @param mac_Oid_GatewayId
      * @return
      */
@@ -126,18 +80,19 @@
         String mac = HDLLinkConfig.getInstance().getDeviceInfoBean().getDeviceMAC();
         String oid = HDLLinkConfig.getInstance().getDeviceInfoBean().getOID();
         String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
-        String all="all";
+        String all = "all";
 
-        return mac_Oid_GatewayId.equals(mac) || mac_Oid_GatewayId.equals(oid) || mac_Oid_GatewayId.equals(gatewayId)||mac_Oid_GatewayId.toLowerCase().equals(all);
+        return mac_Oid_GatewayId.equals(mac) || mac_Oid_GatewayId.equals(oid) || mac_Oid_GatewayId.equals(gatewayId) || mac_Oid_GatewayId.toLowerCase().equals(all);
     }
 
     /**
      * 鏄惁鐩稿悓涓婚
+     *
      * @param targetTopic 鐩爣鐨勪富棰�
      * @param sourceTopic 鎺ユ敹鐨勪富棰�
      * @return
      */
-    private static boolean isSameTopic(String targetTopic,String sourceTopic) {
+    private static boolean isSameTopic(String targetTopic, String sourceTopic) {
         if (TextUtils.isEmpty(targetTopic) || TextUtils.isEmpty(sourceTopic)) {
             return false;
         }
@@ -148,11 +103,11 @@
             return false;
         }
         for (int i = 0; i < targetTopics.length; i++) {
-            if(i==2){
+            if (i == 2) {
                 //杩欎釜浣嶇疆涓嶅尮閰嶏紝鏄綉鍏砳d
                 continue;
             }
-            if (!targetTopics[i] .equals( sourceTopics[i])) {
+            if (!targetTopics[i].equals(sourceTopics[i])) {
                 return false;
             }
         }
@@ -161,9 +116,10 @@
 
     /**
      * 缃戝叧淇℃伅閰嶇疆
+     *
      * @param body
      */
-    private static void gatewayRemoteEditRequest(String mac_Oid_GatewayId,String body) {
+    private static void gatewayRemoteEditRequest(String mac_Oid_GatewayId, String body) {
         if (TextUtils.isEmpty(body)) {
             return;
         }
@@ -179,4 +135,62 @@
 
         HDLSocket.getInstance().gatewayRemoteEditReply(mac_Oid_GatewayId, gatewayRemoteEditRequest.getId(), null);
     }
-}
+
+    /**
+     * 鏇存柊瀵嗛挜
+     *
+     * @param body
+     */
+    private static void managerLinkBroadcast(String body) {
+        try {
+            DeviceInfoResponse deviceInfoResponse = GsonConvert.getGson().fromJson(body, new TypeToken<DeviceInfoResponse>() {
+            }.getType());
+
+            if (deviceInfoResponse == null || deviceInfoResponse.getObjects() == null) {
+                return;
+            }
+            if (!TextUtils.isEmpty(deviceInfoResponse.getObjects().getLocalSecret())) {
+                byte[] baseBytes = Base64.decode(deviceInfoResponse.getObjects().getLocalSecret(), Base64.NO_WRAP);
+                String mackey = "";
+                if (!TextUtils.isEmpty(SPUtils.getString("auth_mackey_key", ""))) {
+                    mackey = SPUtils.getString("auth_mackey_key", "");
+                    byte[] bodyBytes = AesUtil.aesDecrypt(baseBytes, mackey.substring(mackey.length() - 16));
+                    String localSecret = new String(bodyBytes, "utf-8");
+                    Log.d("panlili", "鏇存柊瀵嗛挜----->localSecret= " + localSecret);
+                    HDLLinkConfig.getInstance().setLocalSecret(localSecret);
+                }
+            }
+        } catch (Exception e) {
+            LogUtils.i("LinkMessageDecoder.java:getLocalSecret----->e= " + e.getMessage());
+        }
+    }
+
+    /**
+     * 閫�缃�
+     *
+     * @param body
+     */
+    private static void managerDeleteNofity(String body) {
+        try {
+            DeviceDeleteResponse deviceDeleteResponse = GsonConvert.getGson().fromJson(body, new TypeToken<DeviceDeleteResponse>() {
+            }.getType());
+
+            if (deviceDeleteResponse == null || deviceDeleteResponse.getObjects() == null) {
+                return;
+            }
+            HDLSocket.getInstance().deleteNetwork(deviceDeleteResponse.getObjects().get(0).getOID(), new HDLLinkCallBack() {
+                @Override
+                public void onSuccess(String msg) {
+
+                }
+
+                @Override
+                public void onError(HDLLinkException e) {
+
+                }
+            });
+        } catch (Exception e) {
+            LogUtils.i("LinkMessageDecoder.java:deleteNetwork----->e= " + e.getMessage());
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0