AccountManager.java 1.52 KB
package com.studymachine.www.manager;

import com.google.gson.reflect.TypeToken;
import com.hjq.gson.factory.GsonFactory;
import com.tencent.mmkv.MMKV;

import java.util.HashMap;
import java.util.Map;

/**
 * 本地保存账号管理
 */
public class AccountManager {
    private static volatile AccountManager accountManager;

    private final static String ACCOUNT_TAG = "studyMachineAccount";

    private  Map<String, String> accountMap;


    public static AccountManager getInstance() {
        if (accountManager == null) {
            synchronized (UserManager.class) {
                if (accountManager == null) {
                    accountManager = new AccountManager();
                }
            }
        }
        return accountManager;
    }

    public  Map<String, String> getAccountMap() {
        if (accountMap == null) {
            String json = MMKV.defaultMMKV().decodeString(ACCOUNT_TAG, null);
            accountMap = GsonFactory.getSingletonGson().fromJson(json, new TypeToken<Map<String, String>>() {
            }.getType());
        }
        return accountMap;
    }

    public void addAccountMap(String phone,String password) {
        if (accountMap == null) {
            accountMap=new HashMap<String,String>();
        }
        accountMap.put(phone,password);
        setAccountMap(accountMap);
    }

    public void setAccountMap(Map<String, String> accountMap) {
        this.accountMap = accountMap;
        MMKV.defaultMMKV().encode(ACCOUNT_TAG,GsonFactory.getSingletonGson().toJson(accountMap));
    }
}