package com.hdl.photovoltaic.config; import android.text.TextUtils; import com.google.gson.Gson; import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.ui.bean.HouseInfoBean; import java.util.ArrayList; import java.util.List; /** * 用户信息类 */ public class UserConfigManage { private static UserConfigManage sUserConfigManage = null; /** * 获取当前对象 * * @return UserConfigManage */ public static UserConfigManage getInstance() { if (sUserConfigManage == null) { sUserConfigManage = new UserConfigManage(); sUserConfigManage.reFresh(); } return sUserConfigManage; } //当前账号:刷新Token用的token(不用记录什么有效期,如果刷新失败,就踢人即可) private String refreshToken; //账户登录成功时的时间 private long loginDateTime; //当前登录的帐号 private String account; //添加到Token头部的东西(不要理它,只给底层使用) private String headerPrefix; //登陆账号的Guid,也是账号的userId private String userId; //当前的住宅ID private String homeId; //是否登录状态 private boolean isLogin; //本地通讯秘钥 private String localSecret; //是否是B端账号登录 private boolean isB_account; //是否是用户体验账号登录 private boolean isUserExperience; //住宅文件列表 public List homeFilePathList = new ArrayList<>(); //判断当前时间点是否能够自动登录 public boolean isAutoLogin() { //7天内自动登录 return ((System.currentTimeMillis() - loginDateTime) < 7 * 24 * 60 * 60); } //是否同意隐私政策 private boolean acceiptPolicy; //当前帐号的Token(这个东西不用存了) private String token; //远程连接的Mqtt的客户端ID public String connEmqClientId; //当前登录的账号是不是之前的账号 public boolean theSameLoginAccount; public String getRefreshToken() { return refreshToken == null ? "" : refreshToken; } public void setRefreshToken(String refreshToken) { this.refreshToken = refreshToken; } public long getLoginDateTime() { return loginDateTime; } public void setLoginDateTime(long loginDateTime) { this.loginDateTime = loginDateTime; } public String getAccount() { return account == null ? "" : account; } public void setAccount(String account) { this.account = account; } public String getHeaderPrefix() { return headerPrefix == null ? "" : headerPrefix; } public void setHeaderPrefix(String headerPrefix) { this.headerPrefix = headerPrefix; } public String getUserId() { return userId == null ? "" : userId; } public void setUserId(String userId) { this.userId = userId; } public String getHomeId() { return homeId == null ? "" : homeId; } public void setHomeId(String homeId) { this.homeId = homeId; } public boolean isAcceiptPolicy() { return acceiptPolicy; } public void setAcceiptPolicy(boolean acceiptPolicy) { this.acceiptPolicy = acceiptPolicy; } public String getToken() { return token == null ? "" : token; } public void setToken(String token) { this.token = token; } public boolean isLogin() { return isLogin; } public void setLogin(boolean login) { isLogin = login; } public boolean isTheSameLoginAccount() { return theSameLoginAccount; } public void setTheSameLoginAccount(boolean theSameLoginAccount) { this.theSameLoginAccount = theSameLoginAccount; } public boolean isBAccount() { return isB_account; } public void setBAccount(boolean b) { isB_account = b; } public boolean isUserExperience() { return isUserExperience; } public void setUserExperience(boolean userExperience) { isUserExperience = userExperience; } public String getLocalSecret() { return localSecret == null ? "" : localSecret; } public void setLocalSecret(String localSecret) { this.localSecret = localSecret; } /** * 当前住宅 */ private HouseInfoBean m_Home = null; /** * 当前住宅 */ public HouseInfoBean home() { if (m_Home != null) { return m_Home; } m_Home = HdlResidenceLogic.getInstance().getHouse(homeId); if (m_Home == null) { m_Home = new HouseInfoBean(); } return m_Home; } /** * 刷新 */ private void reFresh() { String str = HdlFileLogic.getInstance().readFile(FILENAME); if (!TextUtils.isEmpty(str) && str.length() > 0) { //读取保存的数据 Gson gson = new Gson(); sUserConfigManage = gson.fromJson(str, UserConfigManage.class); } } /** * 保存 */ public void Save() { if (sUserConfigManage == null) { HdlLogLogic.print("UserConfigManage", "保存用户信息文件失败"); return; } Gson gson = new Gson(); String json = gson.toJson(sUserConfigManage); HdlFileLogic.getInstance().writeFile(FILENAME, json); } /// /// Config文件名 /// private static final String FILENAME = "UserConfigManage.json"; }