package com.hdl.sdk.link.core.config; import com.hdl.sdk.link.common.utils.SPUtils; import com.hdl.sdk.link.core.bean.request.AuthenticateRequest; import com.hdl.sdk.link.core.bean.response.GatewaySearchBean; /** * Created by jlchen on 11/11/21. * * @Description : HDLLinkConfig */ public class HDLLinkConfig { private static final String AUTHENTICATE_LS_KEY = "auth_ls_key"; 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"; private static final String HOME_ID="home_id"; private String localSecret;//本地加密密钥 private String gatewayId; private String ipAddress; private boolean isLocalEncrypt;//网关是否需要加密通讯 private String homeId; private GatewaySearchBean currentGateway;//当前网关 private AuthenticateRequest.AuthenticateDeviceInfoBean deviceInfoBean;//当前设备基本信息 /** * instance */ private volatile static HDLLinkConfig instance; /** * getInstance * * @return AuthenticateConfig */ public static synchronized HDLLinkConfig getInstance() { if (instance == null) { synchronized (HDLLinkConfig.class) { if (instance == null) { instance = new HDLLinkConfig(); instance.loadConfig(); } } } return instance; } /** * 清空缓存 */ public void clearConfig() { 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(HOME_ID); } /** * 加载缓存 */ 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(HOME_ID, ""); } /** * 保存配置 * * @param localSecret * @param gatewayId * @param ipAddress */ public void saveConfig(String localSecret, String gatewayId, String ipAddress) { this.localSecret = localSecret; this.gatewayId = gatewayId; this.ipAddress = ipAddress; // 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() { ///TODO 针对三方要完善这块 //localSecret不为空并且长度等于16 网关id不能为空 return true;//!TextUtils.isEmpty(localSecret) //&& localSecret.length() == 16 //&& !TextUtils.isEmpty(gatewayId); } public void setLocalSecret(String localSecret) { this.localSecret = localSecret; // SPUtils.put(AUTHENTICATE_LS_KEY, localSecret); } public String getLocalSecret() { return localSecret; } /** * 当前住宅网关Id,oid,mac * @return */ public String getGatewayId() { return gatewayId; } /** * 当前住宅网关Id * @param gatewayId */ public void setGatewayId(String gatewayId) { this.gatewayId= gatewayId; } // public String getHomeId() { // return homeId; // } // public void setHomeId(String homeId) { // this.homeId = homeId; // } public String getIpAddress() { return ipAddress; } public void setIpAddress(String ipAddress){ this.ipAddress = ipAddress; } public boolean isLocalEncrypt() { return isLocalEncrypt; } public void setLocalEncrypt(boolean localEncrypt) { isLocalEncrypt = localEncrypt; // SPUtils.put(AUTHENTICATE_IS_LS_KEY, isLocalEncrypt); } /** * 拼接网关ID获取完整的主题 * * @param topicStr * @return */ public String getFullTopic(String topicStr) { return String.format(topicStr, gatewayId); } public AuthenticateRequest.AuthenticateDeviceInfoBean getDeviceInfoBean() { return deviceInfoBean; } public void setDeviceInfoBean(AuthenticateRequest.AuthenticateDeviceInfoBean deviceInfoBean) { this.deviceInfoBean = deviceInfoBean; } }