From a03799e08e7cc9b984b89cd125fd01e31f78486d Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 02 十二月 2021 09:44:20 +0800
Subject: [PATCH] 2021-12-02 1.增加网关认证错误

---
 HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java  |    1 +
 HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java                               |    2 +-
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java |   22 +++++++++++++++++-----
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java |   11 ++++++++---
 HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java                      |    7 ++++---
 5 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java
index f7e8f3c..2935d87 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java
@@ -21,7 +21,7 @@
         //鍒濆鍖朣DK
         HDLSdk.getInstance().init(this);
         //鎺у埗SDK鏃ュ織鎵撳嵃
-        HDLSdk.getInstance().setLogEnabled(false);
+        HDLSdk.getInstance().setLogEnabled(true);
 
     }
 
diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
index da3237b..33838bc 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -69,6 +69,7 @@
         rv.setLayoutManager(new LinearLayoutManager(this));
 
         checkIfCertified();
+
         registerAllTopicsListener();
 
         ActivityResultLauncher<String[]> launcher = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() {
@@ -281,7 +282,7 @@
     void getFunctionList(){
         tv.setText("鑾峰彇鍔熻兘鍒楄〃涓�...");
         responseTv.setText("");
-        HDLSocket.getInstance().getFunctionList(new HDLLinkCallBack() {
+        HDLLink.getInstance().getFunctionList(new HDLLinkCallBack() {
             @Override
             public void onError(HDLLinkException error) {
                 tv.setText(error.getMsg());
@@ -303,7 +304,7 @@
         tv.setText("鍔熻兘灞炴�ц鍙�");
         List<String> sids = new ArrayList<>();
         sids.add(testLightSid);
-        HDLSocket.getInstance().getFunctionAttribute(sids, new HDLLinkCallBack() {
+        HDLLink.getInstance().getFunctionAttribute(sids, new HDLLinkCallBack() {
             @Override
             public void onSuccess(String msg) {
                 responseTv.setText(msg);
@@ -324,7 +325,7 @@
         tv.setText("璇诲彇鐘舵�佷腑...");
         List<String> list = new ArrayList<>();
         list.add(testLightSid);//瑕佽鍙栬澶囩殑sid
-        HDLSocket.getInstance().propertyRead(list, new HDLLinkCallBack() {
+        HDLLink.getInstance().propertyRead(list, new HDLLinkCallBack() {
             @Override
             public void onSuccess(String data) {
                 tv.setText("璇诲彇鎴愬姛");
diff --git a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java
index 908f391..7847526 100644
--- a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java
+++ b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java
@@ -13,6 +13,7 @@
     HDL_SEND_ERROR(-2003,"鍙戦�佸け璐�"),
     HDL_TIMEOUT_ERROR(-2004,"瓒呮椂"),
     HDL_UNAUTHORIZED_ERROR(-2005,"鏈璇侊紝璇峰厛璁よ瘉"),
+    HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED(-2006,"璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔�"),
     HDL_GET_DEVICE_LIST_ERROR(-2100,"鑾峰彇璁惧鍒楄〃澶辫触"),
     HDL_GET_FUNCTION_LIST_ERROR(-2101,"鑾峰彇鍔熻兘鍒楄〃澶辫触"),
     HDL_GET_FUNCTION_PROPERTIES_ERROR(-2102,"鑾峰彇鍔熻兘灞炴�уけ璐�"),
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
index a212728..5fb4298 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
@@ -28,6 +28,7 @@
      * instance
      */
     private volatile static HDLLinkConfig instance;
+
     /**
      * getInstance
      *
@@ -62,15 +63,16 @@
     /**
      * 鍔犺浇缂撳瓨
      */
-    void loadConfig(){
+    void loadConfig() {
         localSecret = SPUtils.getString(AUTHENTICATE_LS_KEY, "");
         gatewayId = SPUtils.getString(AUTHENTICATE_GATEWAYID_KEY, "");
         ipAddress = SPUtils.getString(AUTHENTICATE_IPADDRESS_KEY, "");
-        isLocalEncrypt = SPUtils.getBoolean(AUTHENTICATE_IS_LS_KEY,false);
+        isLocalEncrypt = SPUtils.getBoolean(AUTHENTICATE_IS_LS_KEY, false);
     }
 
     /**
      * 淇濆瓨閰嶇疆
+     *
      * @param localSecret
      * @param gatewayId
      * @param ipAddress
@@ -86,9 +88,10 @@
 
     /**
      * 妫�娴嬫槸鍚﹀凡缁忚璇佽繃
+     *
      * @return
      */
-    public boolean checkIfCertified(){
+    public boolean checkIfCertified() {
         //localSecret涓嶄负绌哄苟涓旈暱搴︾瓑浜�16 缃戝叧id涓嶈兘涓虹┖
         return !TextUtils.isEmpty(localSecret)
                 && localSecret.length() == 16
@@ -127,14 +130,22 @@
 
     public void setCurrentGateway(GatewaySearchBean currentGateway) {
         this.currentGateway = currentGateway;
+        if (this.currentGateway != null && !TextUtils.isEmpty(this.currentGateway.getIp_address())) {
+            if (!this.ipAddress.equals(this.currentGateway.getIp_address())) {
+                //濡傛灉IP鍦板潃鏈夊彉鍖栧垯鏇存柊
+                this.ipAddress = this.currentGateway.getIp_address();
+                SPUtils.put(AUTHENTICATE_IPADDRESS_KEY, ipAddress);
+            }
+        }
     }
 
     /**
      * 鍒ゆ柇褰撳墠涓婚鏁版嵁鏄惁闇�瑕佸姞瀵�
+     *
      * @param topicStr 褰撳墠涓婚
      * @return
      */
-    public boolean ifNeedEncrypt(String topicStr){
+    public boolean ifNeedEncrypt(String topicStr) {
         //杩囨护鐩稿叧闇�瑕佸姞瀵嗙殑涓婚
         return (!topicStr.contains(TopicConstant.GATEWAY_AUTH_BROADCAST) //缃戝叧骞挎挱鍏ョ綉鎸囦护
                 && !topicStr.contains(TopicConstant.DEIVCE_AUTH_REQUEST) //鍏ョ綉璁よ瘉
@@ -145,10 +156,11 @@
 
     /**
      * 鎷兼帴缃戝叧ID鑾峰彇瀹屾暣鐨勪富棰�
+     *
      * @param topicStr
      * @return
      */
-    public String getFullTopic(String topicStr){
+    public String getFullTopic(String topicStr) {
         return String.format(topicStr, gatewayId);
     }
 
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
index b6e525a..0fb853c 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
@@ -164,12 +164,17 @@
                     String localSecret = bean.getAuth().getLocalSecret();
                     String gatewayId = bean.getObjects().getGatewayID();
                     String ipAddress = bean.getObjects().getIPAddress();
-                    HDLLinkConfig.getInstance().saveConfig(localSecret,gatewayId,ipAddress);
-                    callBack.onSuccess("璁よ瘉鎴愬姛");
+                    //鍒ゆ柇缃戝叧鏄惁宸茬粡娉ㄥ唽鍒颁簯绔�
+                    if(TextUtils.isEmpty(localSecret) ||TextUtils.isEmpty(gatewayId)){
+                        //璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔�
+                        callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED));
+                    }else{
+                        HDLLinkConfig.getInstance().saveConfig(localSecret,gatewayId,ipAddress);
+                        callBack.onSuccess("璁よ瘉鎴愬姛");
+                    }
                 }else{
                     callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_ERROR));
                 }
-
             }
 
             @Override

--
Gitblit v1.8.0