From a8c3ca4f1d9433e914325222ae5f26da2f9e2489 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 14 九月 2023 18:05:37 +0800
Subject: [PATCH] 增加了住宅id功能

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java |   44 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
index e5eebc8..71438aa 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
@@ -15,8 +15,10 @@
 import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.SPUtils;
 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.AuthenticateRequest;
+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;
@@ -26,8 +28,9 @@
 import com.hdl.sdk.socket.codec.ByteToMessageDecoder;
 
 import java.util.ArrayList;
-import java.util.Base64;
 import java.util.List;
+
+import android.util.Base64;
 
 import kotlin.ParameterName;
 
@@ -180,7 +183,7 @@
                             //涔嬪墠鐨勭増鏈繖鍧楁槸鏄庢枃鐨�
                             if (!topic.contains("heartbeat_reply")) {
                                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
-                                    LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + Base64.getEncoder().encodeToString(body));
+                                    LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + Base64.encodeToString(body, Base64.NO_WRAP));
                                 else {
                                     LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + new String(body, "utf-8"));
                                 }
@@ -194,7 +197,11 @@
                 response.setData(bodyString);
                 LogUtils.i("鎺ユ敹鍒版暟鎹�:" + response.getTopic() + "\r\n" + response.getData());
 
-                String receivetopic = String.format(TopicConstant.LINK_BROADCAST, HDLLinkConfig.getInstance().getGatewayId());
+                String updateLocalSecret = String.format(TopicConstant.LINK_BROADCAST, HDLLinkConfig.getInstance().getGatewayId());
+                String deleteNetwork = "";
+                if (HDLLinkConfig.getInstance().getDeviceInfoBean() != null) {
+                    deleteNetwork = String.format(TopicConstant.DELETE_NOTIFY, HDLLinkConfig.getInstance().getDeviceInfoBean().getOID());
+                }
 
                 if (response.getTopic().equals("/user/all/custom/gateway/search")) {
                     HDLAuthSocket.getInstance().UploadGatewayInfo(new HDLLinkCallBack() {
@@ -208,25 +215,50 @@
                             LogUtils.i("UploadGatewayInfo onError");
                         }
                     });
-                } else if (response.getTopic().equals(receivetopic)) {
+                }
+                else if (response.getTopic().equals(updateLocalSecret) || response.getTopic().equals(TopicConstant.LINK_BROADCAST)) {
                     try {
                         DeviceInfoResponse deviceInfoResponse = GsonConvert.getGson().fromJson(response.getData(), new TypeToken<DeviceInfoResponse>() {
                         }.getType());
 
                         if (!TextUtils.isEmpty(deviceInfoResponse.getObjects().getLocalSecret())) {
-                            byte[] baseBytes = Base64.getDecoder().decode(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", "LinkMessageDecoder.java:----->localSecret= " + localSecret);
+                                Log.d("panlili", "鏇存柊瀵嗛挜----->localSecret= " + localSecret);
                                 HDLLinkConfig.getInstance().setLocalSecret(localSecret);
                             }
                         }
                     } catch (Exception e) {
                         LogUtils.i("LinkMessageDecoder.java:getLocalSecret----->e= " + e.getMessage());
                     }
+                } else if (response.getTopic().equals(deleteNetwork)) {
+                    try {
+                        DeviceDeleteResponse deviceDeleteResponse = GsonConvert.getGson().fromJson(response.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());
+                    }
                 }
 
                 //闈炴甯告暟鎹紝杩斿洖

--
Gitblit v1.8.0