wjc
2023-06-19 a1ac20d9cbe90b566bffe3ed39a6e07700c3248f
app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
New file
@@ -0,0 +1,210 @@
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.HouseListBean;
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;
    //是否是B端账号登录
    private boolean isB_account;
    //住宅文件列表
    public List<String> 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;
    }
    /**
     * 当前住宅
     */
    private HouseListBean m_Home = null;
    /**
     * 当前住宅
     */
    public HouseListBean home() {
        if (m_Home != null) {
            return m_Home;
        }
        m_Home = HdlResidenceLogic.getInstance().getHouseByHouseId(homeId);
        if (m_Home == null) {
            m_Home = new HouseListBean();
        }
        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);
    }
    /// <summary>
    /// Config文件名
    /// </summary>
    private static final String FILENAME = "UserConfigManage.json";
}