| | |
| | | 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; |
| | | |
| | | |
| | |
| | | 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 static final String GATEWAY_PARENTOID_KEY = "gateway_parentoiid_key"; |
| | | |
| | | private String localSecret;//本地加密密钥 |
| | | private String gatewayId; |
| | | private String ipAddress; |
| | | private boolean isLocalEncrypt;//网关是否需要加密通讯 |
| | | private GatewaySearchBean currentGateway;//当前网关 |
| | | private String networkName; |
| | | private String homeId; |
| | | private String parentOid; |
| | | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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); |
| | | SPUtils.remove(GATEWAY_PARENTOID_KEY); |
| | | } |
| | | |
| | | /** |
| | |
| | | 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, ""); |
| | | parentOid = SPUtils.getString(GATEWAY_PARENTOID_KEY, ""); |
| | | } |
| | | |
| | | /** |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | 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) { |
| | |
| | | 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 getParentOid() { |
| | | return parentOid; |
| | | } |
| | | |
| | | public void setParentOid(String parentOid) { |
| | | this.parentOid = parentOid; |
| | | SPUtils.put(GATEWAY_PARENTOID_KEY, parentOid); |
| | | } |
| | | |
| | | public String getNetworkName() { |
| | | return networkName; |
| | | } |
| | | |
| | | public void setNetworkName(String networkName) { |
| | | this.networkName = networkName; |
| | | } |
| | | |
| | | public GatewaySearchBean getCurrentGateway() { |
| | |
| | | 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) //有密钥就是加密 |
| | | ); |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | } |