From 6521c8e329665cc97f0714a9a094d2d823e23980 Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期二, 19 九月 2023 13:52:41 +0800
Subject: [PATCH] 修复退网清除缓存异常
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java | 133 +++++++++++++++++++++++++++++++++++---------
1 files changed, 106 insertions(+), 27 deletions(-)
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..1b882f7 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
@@ -3,7 +3,9 @@
import android.text.TextUtils;
import com.hdl.sdk.common.config.TopicConstant;
+import com.hdl.sdk.common.utils.LogUtils;
import com.hdl.sdk.common.utils.SPUtils;
+import com.hdl.sdk.connect.bean.request.AuthenticateRequest;
import com.hdl.sdk.connect.bean.response.GatewaySearchBean;
@@ -17,31 +19,44 @@
private static final String AUTHENTICATE_GATEWAYID_KEY = "auth_gatewayid_key";
private static final String AUTHENTICATE_IPADDRESS_KEY = "auth_ipaddress_key";
private static final String AUTHENTICATE_IS_LS_KEY = "auth_isls_key";
+ public static final String AUTHENTICATE_IS_DEVICEINFO_KEY = "auth_deviceinfo_key";
+
+ public static final String GATEWAY_REMOTEINFO_KEY="gateway_remoteinfo_key";
private String localSecret;//鏈湴鍔犲瘑瀵嗛挜
private String gatewayId;
private String ipAddress;
- private boolean isLocalEncrypt;//缃戝叧鏄惁闇�瑕佸姞瀵嗛�氳
private GatewaySearchBean currentGateway;//褰撳墠缃戝叧
+ private String networkName;
+ private String homeId;
+
+ private AuthenticateRequest.AuthenticateDeviceInfoBean deviceInfoBean;//褰撳墠璁惧鍩烘湰淇℃伅
+ private AuthenticateRequest.RequestBean requestBean;//褰撳墠璁惧鍩烘湰淇℃伅
+ private AuthenticateRequest.AuthBean authBean;//褰撳墠璁惧璁よ瘉淇℃伅
/**
* instance
*/
- private volatile static HDLLinkConfig instance;
+ private static final HDLLinkConfig instance=new HDLLinkConfig();
+ private HDLLinkConfig()
+ {
+ loadConfig();
+ }
+
/**
* getInstance
*
* @return AuthenticateConfig
*/
- public static synchronized HDLLinkConfig getInstance() {
- if (instance == null) {
- synchronized (HDLLinkConfig.class) {
- if (instance == null) {
- instance = new HDLLinkConfig();
- instance.loadConfig();
- }
- }
- }
+ public static HDLLinkConfig getInstance() {
+// if (instance == null) {
+// synchronized (HDLLinkConfig.class) {
+// if (instance == null) {
+// instance = new HDLLinkConfig();
+// instance.loadConfig();
+// }
+// }
+// }
return instance;
}
@@ -52,25 +67,27 @@
this.gatewayId = "";
this.ipAddress = "";
this.localSecret = "";
- this.isLocalEncrypt = false;
+ this.homeId="";
SPUtils.remove(AUTHENTICATE_LS_KEY);
SPUtils.remove(AUTHENTICATE_GATEWAYID_KEY);
SPUtils.remove(AUTHENTICATE_IPADDRESS_KEY);
SPUtils.remove(AUTHENTICATE_IS_LS_KEY);
+ SPUtils.remove(GATEWAY_REMOTEINFO_KEY);
}
/**
* 鍔犺浇缂撳瓨
*/
- 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);
+ homeId = SPUtils.getString(GATEWAY_REMOTEINFO_KEY, "");
}
/**
* 淇濆瓨閰嶇疆
+ *
* @param localSecret
* @param gatewayId
* @param ipAddress
@@ -82,17 +99,27 @@
SPUtils.put(AUTHENTICATE_LS_KEY, localSecret);
SPUtils.put(AUTHENTICATE_GATEWAYID_KEY, gatewayId);
SPUtils.put(AUTHENTICATE_IPADDRESS_KEY, ipAddress);
+
+ }
+
+ /**
+ * 閲嶆柊淇濆瓨
+ */
+ public void reSaveConfig() {
+ this.saveConfig(this.localSecret, this.gatewayId, this.ipAddress);
}
/**
* 妫�娴嬫槸鍚﹀凡缁忚璇佽繃
+ *
* @return
*/
- public boolean checkIfCertified(){
+ public boolean checkIfCertified() {
//localSecret涓嶄负绌哄苟涓旈暱搴︾瓑浜�16 缃戝叧id涓嶈兘涓虹┖
- return !TextUtils.isEmpty(localSecret)
- && localSecret.length() == 16
- && !TextUtils.isEmpty(gatewayId);
+ return !TextUtils.isEmpty(gatewayId);
+// return !TextUtils.isEmpty(localSecret)
+// && localSecret.length() == 16
+// && !TextUtils.isEmpty(gatewayId);
}
public void setLocalSecret(String localSecret) {
@@ -107,18 +134,23 @@
public String getGatewayId() {
return gatewayId;
}
+ public void setGatewayId(String gatewayId) {
+ this.gatewayId=gatewayId;
+ }
public String getIpAddress() {
return ipAddress;
}
-
- public boolean isLocalEncrypt() {
- return isLocalEncrypt;
+ public void setIpAddress(String ipAddress){
+ this.ipAddress = ipAddress;
}
- public void setLocalEncrypt(boolean localEncrypt) {
- isLocalEncrypt = localEncrypt;
- SPUtils.put(AUTHENTICATE_IS_LS_KEY, isLocalEncrypt);
+ public String getNetworkName() {
+ return networkName;
+ }
+
+ public void setNetworkName(String networkName) {
+ this.networkName = networkName;
}
public GatewaySearchBean getCurrentGateway() {
@@ -127,29 +159,76 @@
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) //鍏ョ綉璁よ瘉
&& !topicStr.contains(TopicConstant.GATEWAY_SEARCH) //鎼滅储缃戝叧涓婚
- && isLocalEncrypt//鍚敤鍔犲瘑鏍囧織
+ && !topicStr.contains(TopicConstant.BROADCAST)
+ && !TextUtils.isEmpty(localSecret) //鏈夊瘑閽ュ氨鏄姞瀵�
);
}
/**
* 鎷兼帴缃戝叧ID鑾峰彇瀹屾暣鐨勪富棰�
+ *
* @param topicStr
* @return
*/
- public String getFullTopic(String topicStr){
+ public String getFullTopic(String topicStr) {
return String.format(topicStr, gatewayId);
}
+ public AuthenticateRequest.AuthenticateDeviceInfoBean getDeviceInfoBean() {
+ AuthenticateRequest.AuthenticateDeviceInfoBean infoBean = (AuthenticateRequest.AuthenticateDeviceInfoBean) SPUtils.getSerializableEntity(AUTHENTICATE_IS_DEVICEINFO_KEY);
+ if(infoBean==null){
+ infoBean= new AuthenticateRequest.AuthenticateDeviceInfoBean();
+ }
+ return infoBean;
+ }
+
+ public void setDeviceInfoBean(AuthenticateRequest.AuthenticateDeviceInfoBean deviceInfoBean) {
+ this.deviceInfoBean = deviceInfoBean;
+ SPUtils.saveSerializableEntity(AUTHENTICATE_IS_DEVICEINFO_KEY, deviceInfoBean);
+ }
+
+ public AuthenticateRequest.RequestBean getRequestBean() {
+ return requestBean;
+ }
+
+ public void setRequestBean(AuthenticateRequest.RequestBean requestBean) {
+ this.requestBean = requestBean;
+ }
+
+ public AuthenticateRequest.AuthBean getAuthBean() {
+ return authBean;
+ }
+
+ public void setAuthBean(AuthenticateRequest.AuthBean authBean) {
+ this.authBean = authBean;
+ }
+
+ public String getHomeId() {
+ return homeId;
+ }
+
+ public void setHomeId(String homeId) {
+ this.homeId = homeId;
+ SPUtils.put(GATEWAY_REMOTEINFO_KEY, homeId);
+ }
}
--
Gitblit v1.8.0