package com.sets.speedtest.manager; import android.content.Context; import android.util.SparseArray; import com.sets.speedtest.domain.AddressInfo; import com.sets.speedtest.domain.UserInfo; import com.sets.speedtest.utils.SharedPreferencesUtils; import com.sets.speedtest.utils.StringB; /** * SharedPreferences管理类 * * @author : lipan * @create_time : 2014年4月18日 下午4:22:24 * @desc : SharedPreferences管理类 * @update_time : * @update_desc : * */ public class SharedPreferencesManager { private static final String SP_BASE_DB_VERSION = "app.sets.basedb.version"; // 基础数据库版本 private static final String SP_CURRENT_TESTER_PASSPORT = "app.sets.tester.passport"; // 测试者passport private static final String SP_CURRENT_TESTER_ID = "app.sets.tester.id"; // 测试者Id private static final String SP_CURRENT_TESTER_PHONE = "app.sets.tester.phone"; // 测试者手机号 private static final String SP_CURRENT_TESTER_ISFIRST = "app.sets.tester.isfirst"; // 第一次进入测速应用 private static final String SP_CURRENT_TESTER_UPLOAD_URL = "app.sets.tester.uploadUrl"; // 上传url private static final String SP_CURRENT_TESTER_DOWNLOAD_URL = "app.sets.tester.downloadUrl"; // 下载url private static final String SP_CURRENT_TESTER_DOWNLOAD_URL_HOST = "app.sets.tester.downloadUrlHost"; // 下载url主机 private static final String SP_CURRENT_TESTER_DOWNLOAD_URL_PORT = "app.sets.tester.downloadUrlPort"; // 下载url端口 private static final String SP_CURRENT_TESTER_DOWNLOAD_URL_PATH = "app.sets.tester.downloadUrlPath"; // 下载url路径 private static final String SP_CURRENT_TESTER_COMMENTS = "app.sets.tester.comments"; // 提示信息 private static final String SP_CURRENT_TESTER_FORMULA_NUM = "app.sets.tester.formulaNum"; // 系数 private static final String SP_CURRENT_TESTER_ADDRESS_ID = "app.sets.tester.addressId"; // 地址Id private SharedPreferencesUtils preferences; private static SharedPreferencesManager instance; private static Context context; private UserInfo userInfo; private SparseArray<AddressInfo> userAdds; /** * 获得全局唯一的SD管理类实例 * * @return */ public static SharedPreferencesManager getInstance() { if (instance != null) return instance; synchronized (SharedPreferencesManager.class) { if (instance != null) return instance; instance = new SharedPreferencesManager(); return instance; } } /** * 私有构造方法 */ private SharedPreferencesManager() { preferences = new SharedPreferencesUtils(context); } /** * 重置sd管理类实例 */ public static void reset(Context contextP) { context = contextP; instance = new SharedPreferencesManager(); instance.load(); } /** * 加载系统/用户sd中的内容 */ private void load() { userInfo = new UserInfo(); userInfo.isFirst = preferences.getBoolean(SP_CURRENT_TESTER_ISFIRST, true); userInfo.passport = preferences.getString(SP_CURRENT_TESTER_PASSPORT, null); userInfo.testerId = preferences.getInt(SP_CURRENT_TESTER_ID, -1); userInfo.testerPhone = preferences.getString(SP_CURRENT_TESTER_PHONE, null); userInfo.uploadUrl = preferences.getString(SP_CURRENT_TESTER_UPLOAD_URL, null); userInfo.downloadUrl = preferences.getString(SP_CURRENT_TESTER_DOWNLOAD_URL, null); userInfo.comments = preferences.getString(SP_CURRENT_TESTER_COMMENTS, null); userInfo.formulaNum = preferences.getInt(SP_CURRENT_TESTER_FORMULA_NUM, -1); userInfo.addressId = preferences.getInt(SP_CURRENT_TESTER_ADDRESS_ID, -1); userInfo.baseDbVersion= preferences.getInt(SP_BASE_DB_VERSION, 0); } public UserInfo getUserInfo() { return userInfo; } public SparseArray<AddressInfo> getUserAdds() { return userAdds; } public void setUserAdds(SparseArray<AddressInfo> userAdds) { this.userAdds = userAdds; } public void setPassport(String passport) { if (null != passport && !StringB.isBlank(passport)) { preferences.putString(SP_CURRENT_TESTER_PASSPORT, passport); this.userInfo.passport = passport; } } public void setTesterId(Integer testerId) { if (null != testerId && 0 != testerId) { preferences.putInt(SP_CURRENT_TESTER_ID, testerId); this.userInfo.testerId = testerId; } } public void setTesterPhone(String testerPhone) { if (null != testerPhone && !StringB.isBlank(testerPhone)) { preferences.putString(SP_CURRENT_TESTER_PHONE, testerPhone); this.userInfo.testerPhone = testerPhone; } } public void setIsFirst(Boolean isFirst) { if (null != isFirst) { preferences.putBoolean(SP_CURRENT_TESTER_ISFIRST, isFirst); this.userInfo.isFirst = isFirst; } } public void setUploadUrl(String uploadUrl) { if (!StringB.isBlank(uploadUrl)) { preferences.putString(SP_CURRENT_TESTER_UPLOAD_URL, uploadUrl); this.userInfo.uploadUrl = uploadUrl; } } public void setDownloadUrl(String downloadUrl) { if (!StringB.isBlank(downloadUrl)) { preferences.putString(SP_CURRENT_TESTER_DOWNLOAD_URL, downloadUrl); this.userInfo.downloadUrl = downloadUrl; } } public void setDownloadUrlHost(String downloadUrlHost) { if (!StringB.isBlank(downloadUrlHost)) { preferences.putString(SP_CURRENT_TESTER_DOWNLOAD_URL_HOST, downloadUrlHost); this.userInfo.downloadUrlHost = downloadUrlHost; } } public void setDownloadUrlPort(String downloadUrlPort) { if (!StringB.isBlank(downloadUrlPort)) { preferences.putString(SP_CURRENT_TESTER_DOWNLOAD_URL_PORT, downloadUrlPort); this.userInfo.downloadUrlPort = downloadUrlPort; } } public void setDownloadUrlPath(String downloadUrlPath) { if (!StringB.isBlank(downloadUrlPath)) { preferences.putString(SP_CURRENT_TESTER_DOWNLOAD_URL_PATH, downloadUrlPath); this.userInfo.downloadUrlPath = downloadUrlPath; } } public void setComments(String comments) { if (!StringB.isBlank(comments)) { preferences.putString(SP_CURRENT_TESTER_COMMENTS, comments); this.userInfo.comments = comments; } } public void setFormulaNum(Integer formulaNum) { if (null != formulaNum && 0 != formulaNum) { preferences.putInt(SP_CURRENT_TESTER_FORMULA_NUM, formulaNum); this.userInfo.formulaNum = formulaNum; } } public void setAddressId(Integer addressId) { if (null != addressId && 0 != addressId) { preferences.putInt(SP_CURRENT_TESTER_ADDRESS_ID, addressId); this.userInfo.addressId = addressId; } } public void setBaseDbVersion(Integer version) { preferences.putInt(SP_BASE_DB_VERSION, version); this.userInfo.baseDbVersion = version; } }