From e7e494c6d168ea2942e1c6fa1c9c7808f4c12184 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期一, 18 九月 2023 13:40:17 +0800
Subject: [PATCH] 完善全局处理模块
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java | 129 ++++++++++++++++++++++---------------------
1 files changed, 66 insertions(+), 63 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..c15ba93 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,8 +19,6 @@
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.
*/
@@ -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,51 @@
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(), null);
+ } catch (Exception e) {
+ LogUtils.i("LinkMessageDecoder.java:deleteNetwork----->e= " + e.getMessage());
+ }
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0