From 881519bc1efeb83701e0ca44d026385db3d8509a Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期一, 18 九月 2023 13:27:44 +0800
Subject: [PATCH] 增加全局处理方法
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java | 67 ++++++++++++++++++++++++++++++++-
1 files changed, 64 insertions(+), 3 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 398429a..99db1bb 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
@@ -1,15 +1,23 @@
package com.hdl.sdk.common.utils;
import android.text.TextUtils;
+import android.util.Base64;
+import android.util.Log;
import com.google.gson.reflect.TypeToken;
import com.hdl.sdk.common.config.TopicConstant;
+import com.hdl.sdk.common.exception.HDLLinkException;
import com.hdl.sdk.common.utils.gson.GsonConvert;
+import com.hdl.sdk.connect.HDLLink;
import com.hdl.sdk.connect.bean.LinkResponse;
import com.hdl.sdk.connect.bean.request.GatewayRemoteEditRequest;
+import com.hdl.sdk.connect.bean.response.DeviceDeleteResponse;
import com.hdl.sdk.connect.bean.response.DeviceInfoResponse;
+import com.hdl.sdk.connect.callback.HDLLinkCallBack;
import com.hdl.sdk.connect.config.HDLLinkConfig;
+import com.hdl.sdk.connect.socket.HDLAuthSocket;
import com.hdl.sdk.connect.socket.HDLSocket;
+import com.hdl.sdk.connect.utils.AesUtil;
import java.time.chrono.IsoChronology;
@@ -25,6 +33,9 @@
*/
public static void manager(LinkResponse linkResponse) {
try {
+ if(linkResponse==null){
+ return;
+ }
String topic = linkResponse.getTopic();
if (TextUtils.isEmpty(topic)) {
return;
@@ -46,8 +57,57 @@
if(isSameTopic(TopicConstant.GATEWAY_EDIT_REMOTE,topic)){
gatewayRemoteEditRequest(mac_Oid_GatewayId, linkResponse.getData());
}
+ 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());
- //TODO 閫氳繃澧炲姞if else 澧炲姞鍏跺畠涓婚绫讳技杩欐牱浣跨敤
+ 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());
+ }
+ }
} catch (Exception e) {
LogUtils.e("鍏ㄥ眬澶勭悊妯″潡寮傚父锛�" + e.getMessage());
@@ -64,10 +124,11 @@
return false;
}
String mac = HDLLinkConfig.getInstance().getDeviceInfoBean().getDeviceMAC();
- String oid = "123";//HDLLinkConfig.getInstance().getDeviceInfoBean().getOID();
+ String oid = HDLLinkConfig.getInstance().getDeviceInfoBean().getOID();
String gatewayId = HDLLinkConfig.getInstance().getGatewayId();
+ String all="all";
- return mac_Oid_GatewayId.equals(mac) || mac_Oid_GatewayId.equals(oid) || mac_Oid_GatewayId.equals(gatewayId);
+ return mac_Oid_GatewayId.equals(mac) || mac_Oid_GatewayId.equals(oid) || mac_Oid_GatewayId.equals(gatewayId)||mac_Oid_GatewayId.toLowerCase().equals(all);
}
/**
--
Gitblit v1.8.0