From fdcf461fbfa3bcd650685743e891ad3357898f0c Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期四, 31 八月 2023 17:36:50 +0800
Subject: [PATCH] 更新sdk

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java |  222 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 182 insertions(+), 40 deletions(-)

diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
index e5e993b..9ee990e 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
@@ -1,10 +1,22 @@
 package com.hdl.sdk.connect;
 
+import android.content.Context;
+
+import com.hdl.hdlhttp.HxHttpConfig;
+import com.hdl.sdk.common.event.DeleteNetworkListener;
 import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.ThreadToolUtils;
+import com.hdl.sdk.connect.bean.request.DeviceAuthRequest;
 import com.hdl.sdk.connect.bean.request.DeviceControlRequest;
+import com.hdl.sdk.connect.bean.request.ListUploadRequest;
 import com.hdl.sdk.connect.callback.HDLLinkCallBack;
 import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
+import com.hdl.sdk.connect.cloud.CallBackListener;
+import com.hdl.sdk.connect.cloud.CheckAppVersionListener;
+import com.hdl.sdk.connect.cloud.HdlCloudApi;
+import com.hdl.sdk.connect.cloud.HdlCloudController;
+import com.hdl.sdk.connect.cloud.interceptor.EncryptInterceptor;
+import com.hdl.sdk.connect.cloud.interceptor.SmartHeaderInterceptor;
 import com.hdl.sdk.connect.config.HDLLinkConfig;
 import com.hdl.sdk.common.event.EventDispatcher;
 import com.hdl.sdk.common.event.EventListener;
@@ -15,6 +27,9 @@
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
+import io.reactivex.rxjava3.disposables.Disposable;
+import okhttp3.logging.HttpLoggingInterceptor;
+
 /**
  * Created by jlchen on 11/15/21.
  *
@@ -24,13 +39,17 @@
     /**
      * instance
      */
-    private  static final HDLLink instance=new HDLLink();
+    private static final HDLLink instance = new HDLLink();
+
+    private String appKey, appSecret;
+    public DeleteNetworkListener listener;
+
     /**
      * getInstance
      *
      * @return HDLLink
      */
-    public static  HDLLink getInstance() {
+    public static HDLLink getInstance() {
 //        if (instance == null) {
 //            synchronized (HDLLink.class) {
 //                if (instance == null) {
@@ -41,30 +60,63 @@
         return instance;
     }
 
+    public String getAppKey() {
+        return appKey;
+    }
+
+    public void setAppKey(String appKey) {
+        this.appKey = appKey;
+    }
+
+    public String getAppSecret() {
+        return appSecret;
+    }
+
+    public void setAppSecret(String appSecret) {
+        this.appSecret = appSecret;
+    }
+
     /**
      * 娉ㄥ唽鎵�鏈変富棰樻秷鎭殑鐩戝惉
+     *
      * @param listener
      */
-    public synchronized void registerAllTopicsListener(EventListener listener){
+    public synchronized void registerAllTopicsListener(EventListener listener) {
         EventDispatcher.getInstance().registerAllTopicsListener(listener);
     }
+
     /**
      * 鍙栨秷鎵�鏈変富棰樻秷鎭殑鐩戝惉
+     *
      * @param listener
      */
     public synchronized void removeAllTopicsListener(EventListener listener) {
-        if(listener == null) return;
+        if (listener == null) return;
         EventDispatcher.getInstance().removeAllTopicsListener(listener);
+    }
+
+    /**
+     * 娉ㄥ唽閫�缃戜富棰樼殑鐩戝惉
+     *
+     * @param listener
+     */
+    public synchronized void setDeleteNetworkListener(DeleteNetworkListener listener) {
+        this.listener = listener;
     }
 
     /***********************涓夋柟璁惧鍜岀綉鍏抽�氫俊涔嬪墠鐨勮璇佹祦绋�****************************/
     /**
      * 妫�娴嬫槸鍚﹀凡缁忚璇佽繃
      * 璁よ瘉閫氳繃鎵嶈兘杩涜璁惧鎺у埗
+     *
      * @return
      */
-    public boolean checkIfCertified(){
+    public boolean checkIfCertified() {
         return HDLLinkConfig.getInstance().checkIfCertified();
+    }
+
+    public void selectNetwork(String networkName) {
+        HDLLinkConfig.getInstance().setNetworkName(networkName);
     }
 
     /**
@@ -75,7 +127,7 @@
      */
     public void startAuthenticateRequest(AuthenticateRequest request, HDLLinkCallBack callBack) {
         LogUtils.i("鍙戦�佽璇佽姹�");
-        HDLAuthSocket.getInstance().startAuthenticateRequest(request,callBack);
+        HDLAuthSocket.getInstance().startAuthenticateRequest(request, callBack);
     }
 
     /**
@@ -89,26 +141,90 @@
         HDLAuthSocket.getInstance().sendAuthenticateRequest(ip, request, callBack);
     }
 
-    //    /**
-//     * 寮�濮嬫悳绱㈡墍鏈夌綉鍏筹紝鏈夌綉鍏冲洖澶嶅氨鍥炶皟锛屼笂灞傝嚜宸卞仛鍘婚噸鍒ゆ柇
-//     *
-//     * @param callBack 鍥炶皟
-//     */
-//    public void startSearchAllGateway(HDLAuthSocket.SearchGatewayCallBack callBack) {
-//
-//    }
-//
-//    /**
-//     * 鏆傚仠鎼滅储缃戝叧
-//     */
-//    public void endSearchAllGateway() {
-//
-//    }
+    /**
+     * 鍏ョ綉璁よ瘉缁撴灉鍙嶉
+     *
+     * @param mac       mac
+     * @param result    缁撴灉0/-1
+     * @param message   璁よ瘉淇℃伅
+     * @param auth_code 浜戠璁よ瘉code
+     * @param callBack  缁撴灉鍥炶皟
+     */
+    public void UploadDeviceAuth(String mac, String result, String message, String auth_code, HDLLinkCallBack callBack) {
+        HDLSocket.getInstance().UploadDeviceAuth(mac, result, message, auth_code, callBack);
+    }
+
+    /**
+     * 鐢宠璁惧瀵嗛挜(鏍规嵁璁惧MAC)
+     *
+     * @param supplier 鍘傚晢
+     * @param mac      璁惧mac
+     * @param spk      璁惧spk
+     * @param callBack 缁撴灉鍥炶皟
+     */
+    public void applyDeviceSecret(Context context, String appKey, String appSecret, String supplier, String mac, String spk, CallBackListener callBack) {
+        LogUtils.i("鐢宠璁惧瀵嗛挜");
+        HxHttpConfig.getInstance().init(context, HdlCloudApi.BASE_CHINA_URL)
+                .addInterceptor(
+                        new EncryptInterceptor(),
+                        new SmartHeaderInterceptor());
+        this.appKey = appKey;
+        this.appSecret = appSecret;
+
+        HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
+        httpLoggingInterceptor.level(HttpLoggingInterceptor.Level.BODY);
+
+        HxHttpConfig.getInstance()
+                //.addInterceptor(new HttpCacheInterceptor())
+                .addInterceptor(httpLoggingInterceptor).ignoreSSL();
+
+        HdlCloudController.applyDeviceSecret(supplier, mac, spk, callBack);
+    }
+
+    /**
+     * 妫�娴嬫洿鏂�
+     *
+     * @param appKey      appKey
+     * @param appSecret   appSecret
+     * @param versionCode 褰撳墠鐗堟湰
+     * @param appCode     appCode
+     * @param listener    缁撴灉鍥炶皟
+     */
+    public void checkAppVersion(Context context, String appKey, String appSecret, String versionCode, String appCode, CheckAppVersionListener listener) {
+        LogUtils.i("妫�娴嬫洿鏂�");
+        HxHttpConfig.getInstance().init(context, HdlCloudApi.BASE_CHINA_URL)
+                .addInterceptor(
+                        new EncryptInterceptor(),
+                        new SmartHeaderInterceptor());
+        this.appKey = appKey;
+        this.appSecret = appSecret;
+
+        HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
+        httpLoggingInterceptor.level(HttpLoggingInterceptor.Level.BODY);
+
+        HxHttpConfig.getInstance()
+                //.addInterceptor(new HttpCacheInterceptor())
+                .addInterceptor(httpLoggingInterceptor).ignoreSSL();
+
+        HdlCloudController.checkAppVersion(versionCode, appCode, listener);
+    }
+
+    /**
+     * 閫氱煡鍒犻櫎骞堕��缃戝瓙璁惧
+     *
+     * @param oid      浠庣綉鍏筹紙璁惧锛塷id
+     * @param isForce  鏄惁寮哄埗閫�缃�
+     * @param callBack 缁撴灉鍥炶皟
+     */
+    public void deleteNetwork(String oid, boolean isForce, HDLLinkCallBack callBack) {
+        HDLSocket.getInstance().deleteNetwork(oid, isForce, callBack);
+    }
 
     /***********************涓夋柟璁惧璇峰厛璁よ瘉鎴愬姛 鍐嶈皟鐢ㄤ笅闈㈢殑鎺ュ彛鍜岀綉鍏抽�氫俊****************************/
     /**
      * 缁勬挱鎼滅储鎸囧畾缃戝叧鏄惁鍦ㄧ嚎锛屾悳绱㈠埌鍒欒繑鍥炴寚瀹氱殑缃戝叧瀵硅薄
-     * @param callBack  鍥炶皟
+     *
+     * @param callBack 鍥炶皟
      */
     public void searchGatewayMulticast(HDLAuthSocket.SearchGatewayCallBack callBack) {
         HDLAuthSocket.getInstance().searchGatewayMulticast(callBack);
@@ -116,7 +232,8 @@
 
     /**
      * 缁勬挱鎼滅储鎸囧畾缃戝叧鏄惁鍦ㄧ嚎锛屾悳绱㈠埌鍒欒繑鍥炴寚瀹氱殑缃戝叧瀵硅薄
-     * @param callBack  鍥炶皟
+     *
+     * @param callBack 鍥炶皟
      */
     public void searchGatewayBroadcast(HDLAuthSocket.SearchGatewayCallBack callBack) {
         HDLAuthSocket.getInstance().searchGatewayBroadcast(callBack);
@@ -148,7 +265,8 @@
 
     /**
      * 璁惧鎺у埗
-     * @param request 鎺у埗鐘舵�佸弬鏁�
+     *
+     * @param request  鎺у埗鐘舵�佸弬鏁�
      * @param callBack 缁撴灉鍥炶皟
      */
     public void propertyDown(List<DeviceControlRequest> request, HDLLinkCallBack callBack) {
@@ -157,7 +275,8 @@
 
     /**
      * 璇诲彇鐘舵��
-     * @param sids 璇锋眰鍙傛暟 鎸囧畾璇诲彇鐨勮澶噑id鍒楄〃
+     *
+     * @param sids     璇锋眰鍙傛暟 鎸囧畾璇诲彇鐨勮澶噑id鍒楄〃
      * @param callBack 鍥炶皟
      */
     public void propertyRead(List<String> sids, HDLLinkCallBack callBack) {
@@ -172,8 +291,19 @@
     }
 
     /**
+     * 鍦烘櫙璇︽儏
+     *
+     * @param sids     鍦烘櫙sid鍒楄〃
+     * @param callBack 鍥炶皟
+     */
+    public void getScene(List<String> sids, HDLLinkCallBack callBack) {
+        HDLSocket.getInstance().getScene(sids, callBack);
+    }
+
+    /**
      * 鍦烘櫙鎺у埗
-     * @param sids 鍦烘櫙sid鍒楄〃
+     *
+     * @param sids     鍦烘櫙sid鍒楄〃
      * @param callBack 鍥炶皟
      */
     public void controlScene(List<String> sids, HDLLinkCallBack callBack) {
@@ -181,25 +311,37 @@
     }
 
     /**
+     * 涓婃姤oid鍒楄〃
+     *
+     * @param request  璁惧淇℃伅
+     * @param callBack 鍥炶皟
+     */
+    public void UploadOidList(ListUploadRequest request, HDLLinkCallBack callBack) {
+        HDLSocket.getInstance().UploadOidList(request, callBack);
+    }
+
+    /**
      * 閫氱敤UDP鍙戦�佹寚浠�
      * 1绉掓病鍝嶅簲灏辫浠栭噸鏂板彂閫�,閲嶈瘯3娆�
-     * @param topic 鍙戦�佹暟鎹�
-     * @param bodyStr body鍐呭
+     *
+     * @param topic    鍙戦�佹暟鎹�
+     * @param bodyStr  body鍐呭
      * @param callBack 鍥炶皟
      */
     public void udpSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) {
-        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,false, callBack);
+        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, false, callBack);
     }
 
     /**
      * 閫氱敤骞挎挱UDP鍙戦�佹寚浠�
      * 1绉掓病鍝嶅簲灏辫浠栭噸鏂板彂閫�,閲嶈瘯3娆�
-     * @param topic 鍙戦�佹暟鎹�
-     * @param bodyStr body鍐呭
+     *
+     * @param topic    鍙戦�佹暟鎹�
+     * @param bodyStr  body鍐呭
      * @param callBack 鍥炶皟
      */
     public void udpBroadcastSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) {
-        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,true, callBack);
+        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, true, callBack);
     }
 
     /**
@@ -218,28 +360,28 @@
     /**
      * 閫氱敤鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
      *
-     * @param topic    鍙戦�佹暟鎹�
-     * @param bodyStr  鍥炲鐨勪富棰�
+     * @param topic   鍙戦�佹暟鎹�
+     * @param bodyStr 鍥炲鐨勪富棰�
      */
     public void udpSendMsg(String topic, String bodyStr) {
-        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,false);
+        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, false);
     }
 
     /**
      * 閫氱敤骞挎挱鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
      *
-     * @param topic    鍙戦�佹暟鎹�
-     * @param bodyStr  鍥炲鐨勪富棰�
+     * @param topic   鍙戦�佹暟鎹�
+     * @param bodyStr 鍥炲鐨勪富棰�
      */
     public void udpBroadcastSendMsg(String topic, String bodyStr) {
-        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,true);
+        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, true);
     }
 
     /**
      * 閫氱敤TCP鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
      *
-     * @param topic    鍙戦�佹暟鎹�
-     * @param bodyStr  鍥炲鐨勪富棰�
+     * @param topic   鍙戦�佹暟鎹�
+     * @param bodyStr 鍥炲鐨勪富棰�
      */
     public void tcpSendMsg(String topic, String bodyStr) {
         HDLAuthSocket.getInstance();//閫氳繃杩欎釜鍙互鍏堝垵濮嬪寲UDP鐩戝惉浜嬩欢

--
Gitblit v1.8.0