From aba53745b27e7efe5f43f86ef4aa1e95611cd804 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 06 十二月 2021 17:33:59 +0800
Subject: [PATCH] 2021-12-06 1.修复有时解密失败问题。

---
 HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java |   65 ++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 9 deletions(-)

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 33838bc..ea90450 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -10,6 +10,7 @@
 
 import android.Manifest;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
@@ -17,14 +18,17 @@
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
+import com.google.gson.reflect.TypeToken;
 import com.hdl.sdk.common.event.EventListener;
 import com.hdl.sdk.common.exception.HDLLinkException;
 import com.hdl.sdk.common.utils.IdUtils;
 import com.hdl.sdk.common.utils.IpUtils;
+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.request.PropertyReadRequest;
+import com.hdl.sdk.connect.bean.response.BaseLocalResponse;
 import com.hdl.sdk.connect.bean.response.GatewaySearchBean;
 import com.hdl.sdk.connect.callback.HDLLinkCallBack;
 import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
@@ -43,15 +47,18 @@
 import java.util.List;
 import java.util.Map;
 
+import static com.hdl.sdk.common.config.TopicConstant.GATEWAY_SEARCH_REPLY;
+
 public class MainActivity extends AppCompatActivity {
 
+    private static final String TAG = "MainActivity";
     private DemoAdapter demoAdapter;
     private RecyclerView rv;
     private TextView tv;
     private TextView responseTv;
     boolean isOn;
     private EventListener allTopicsListener;
-    private String testLightSid = "000101B847C71B02020100010101";
+    private String testLightSid = "0001010D48C71B02020100010101";
 
     @Override
     protected void onDestroy() {
@@ -94,13 +101,11 @@
         rv.setAdapter(demoAdapter);
 
 
-        final SocketOptions options = new SocketOptions();
-
+//        final SocketOptions options = new SocketOptions();
+//
         MessagePipeLine pipeLine = new MessagePipeLine();
-        pipeLine.add(new LinkMessageDecoder());
-        pipeLine.add(new LinkMessageEncoder());
-        options.setHandleMessage(pipeLine);
-        options.setEnabledHeartbeat(false);
+//        options.setHandleMessage(pipeLine);
+//        options.setEnabledHeartbeat(false);
 
         demoAdapter.setOnItemClickListener(new OnItemClickListener() {
             @Override
@@ -164,10 +169,52 @@
             @Override
             public void onMessage(Object msg) {
                 LinkResponse response = (LinkResponse)msg;
-                Log.i("TAG", "AllTopicsListener onMessage: "+msg.toString());
+                if(response != null){
+                    Log.i(TAG, "AllTopicsListener"
+                            + "\nTopic: " + response.getTopic()
+                            +"\n Data: " + response.getData());
+                    handleLinkResponse(response);
+                }
+
             }
         };
         HDLLink.getInstance().registerAllTopicsListener(allTopicsListener);
+    }
+
+    /**
+     * 澶勭悊鏀跺埌鐨勪富棰�
+     * @param response
+     */
+    private void handleLinkResponse(LinkResponse response){
+        //缃戝叧鎼滅储鍥炲
+        if(response.getTopic().contains("/user/all/custom/gateway/search_reply")){
+            String data = response.getData();
+            if (!TextUtils.isEmpty(data)) {
+                Log.i("handleLinkResponse", "data:"+data);
+                final BaseLocalResponse<GatewaySearchBean> bean = GsonConvert.getGson().fromJson(data, new TypeToken<BaseLocalResponse<GatewaySearchBean>>() {
+                }.getType());
+                GatewaySearchBean searchBean = bean.getObjects();
+                Log.i("handleLinkResponse", "GatewaySearchBean: "+searchBean.getGatewayId());
+            }
+        }else{
+            //鍏跺畠涓婚
+
+        }
+    }
+
+    private GatewaySearchBean getGatewaySearchBean(Object msg) {
+        GatewaySearchBean searchBean = null;
+        if (msg instanceof LinkResponse) {
+            LinkResponse linkResponse = (LinkResponse) msg;
+            String data = linkResponse.getData();
+            if (!TextUtils.isEmpty(data)) {
+                final BaseLocalResponse<GatewaySearchBean> response = GsonConvert.getGson().fromJson(data, new TypeToken<BaseLocalResponse<GatewaySearchBean>>() {
+                }.getType());
+                searchBean = response.getObjects();
+            }
+
+        }
+        return searchBean;
     }
 
     /**
@@ -209,7 +256,7 @@
         infoBean.setDeviceName("绾㈠瀹�");//璁惧鍚嶅瓧
         infoBean.setDeviceModel("HDL");//
         infoBean.setAccessMode("WIFI");
-        infoBean.setIPGateway("192.168.10.1");
+        infoBean.setIPGateway("192.168.12.1");
         infoBean.setIPAddress(IpUtils.getIP(this));
 
         infoBean.setOID("010105000000FE08");

--
Gitblit v1.8.0