/* * 持久话数据 * */ import 'dart:convert'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:star_lock/apm/apm_helper.dart'; import 'package:star_lock/talk/starChart/entity/relay_info_entity.dart'; import 'package:star_lock/talk/starChart/entity/star_chart_register_node_entity.dart'; import '../login/login/entity/LoginData.dart'; import '../main/lockMian/entity/lockListInfo_entity.dart'; const String saveBluePublicKey = 'BluePublicKey'; const String saveBluePrivateKey = 'BluePrivateKey'; const String saveBlueSignKey = 'BlueSignKey'; const String saveBlueToken = 'BlueGetToken'; const String currentConnectionLockId = 'CurrentConnectionLockId'; const String currentConnectionMacAddress = 'CurrentConnectionMacAddress'; const String ifIsDemoModeOrNot = 'IfIsDemoModeOrNot'; const String isAgreePrivacy = 'isAgreePrivacy'; //是否同意隐私协议弹窗 const String isAgreePosition = 'isAgreePosition'; //是否同意获取位置弹窗 const String isAgreeCamera = 'isAgreeCamera'; //是否同意获取相机/相册弹窗 const String isShowUpdateVersion = 'isShowUpdateVersion'; //是否更新弹窗 const String saveLockAlias = 'saveLockAlias'; //锁别名 const String appDeviceID = 'appDeviceID'; //推送设备ID const String pushDeviceID = 'pushDeviceID'; //Jpush推送设备ID const String vendorPushChannelInfo = 'pushChannelInfo'; //推送设备ID const String saveIsVip = 'saveIsVip'; //是否是VIP const String saveUserLoginData = 'userLoginData'; const String saveLockMainListData = 'lockMainListData'; const String isOpenDeBug = 'isOpenDeBug'; //是否打开 debug const String automaticLockOffTime = 'automaticLockOffTime'; //自动关锁时间 const String associationUrl = 'associationUrl'; //ios跳转微信的 url const String starChartRegisterNodeInfo = 'starChartRegisterNodeInfo'; //星图注册信息 const String relayInfo = 'relayInfo'; //星图中继服务器信息 const String lockNetWorkInfo = 'lockNetWorkInfo'; //锁板配网信息 const String appVersionHistoryUrl = 'appVersionHistoryUrl'; //是否同意隐私协议弹窗 const String voipToken = 'voipToken'; //是否同意隐私协议弹窗 const String deviceModel = 'deviceModel'; //设备型号 class Storage { factory Storage() => _instance; Storage._internal(); static late final Storage _instance = Storage._internal(); static Future getInstance() async { return _instance; } // ///存数据 // static Future setData(key, value) async { // SharedPreferences sp = await SharedPreferences.getInstance(); // if (value is int) { // await sp.setInt(key, value); // } else if (value is bool) { // await sp.setBool(key, value); // } else if (value is double) { // await sp.setDouble(key, value); // } else if (value is String) { // await sp.setString(key, value); // } else if (value is List) { // await sp.setStringList(key, value); // } // } // // ///取数据 // /// // static Future getData(key) async { // SharedPreferences sp = await SharedPreferences.getInstance(); // switch(T){ // case int: return (sp.getInt(key) ?? 0) as T; // case bool: return (sp.getBool(key) ?? false) as T; // case double: return (sp.getDouble(key) ?? 0.0) as T; // case String: return (sp.getString(key) ?? '') as T; // case List: return (sp.getStringList(key) ?? []) as T; // default: return null; // } // } // int static Future setInt(String key, dynamic value) async { final SharedPreferences sp = await SharedPreferences.getInstance(); sp.setInt(key, value); } static Future getInt(String key) async { final SharedPreferences sp = await SharedPreferences.getInstance(); return sp.getInt(key); } // bool static Future setBool(String key, dynamic value) async { final SharedPreferences sp = await SharedPreferences.getInstance(); sp.setBool(key, value); } static Future getBool(String key) async { final SharedPreferences sp = await SharedPreferences.getInstance(); return sp.getBool(key); } // double static Future setDouble(String key, dynamic value) async { final SharedPreferences sp = await SharedPreferences.getInstance(); sp.setDouble(key, value); } static Future getDouble(String key) async { final SharedPreferences sp = await SharedPreferences.getInstance(); return sp.getDouble(key); } // string static Future setString(String key, dynamic value) async { final SharedPreferences sp = await SharedPreferences.getInstance(); sp.setString(key, value); } static Future getString(String key) async { final SharedPreferences sp = await SharedPreferences.getInstance(); return sp.getString(key); } // 字符串数组 static Future setStringList(String key, dynamic value) async { final SharedPreferences sp = await SharedPreferences.getInstance(); sp.setStringList(key, value); } static Future?> getStringList(String key) async { final SharedPreferences sp = await SharedPreferences.getInstance(); return sp.getStringList(key); } // 判断本地是否包含某个key static Future ifHaveKey(String key) async { final SharedPreferences sp = await SharedPreferences.getInstance(); final bool isContainKey = sp.containsKey(key); // AppLog.log(isContainKey); return isContainKey; } // 移除数据 static Future removeData(String key) async { final SharedPreferences sp = await SharedPreferences.getInstance(); sp.remove(key); } // 移除所有的键值对 static Future clearAll() async { final SharedPreferences sp = await SharedPreferences.getInstance(); // sp.clear(); sp.remove(saveLockMainListData); sp.remove(saveUserLoginData); // 重新设置需要保留的数据 //退出登录不清除隐私协议同意状态 // await setString(isAgreePrivacy, isAgreePrivacy); } static Future getUid() async { final LoginData? loginData = await getLoginData(); final String uid = loginData!.uid.toString(); // AppLog.log("pubUid:$uid"); return uid; } static Future getUserid() async { final LoginData? loginData = await getLoginData(); final String userid = loginData!.userid.toString(); // AppLog.log("pubUid:$uid"); return userid; } static Future getMobile() async { final LoginData? loginData = await getLoginData(); final String? mobile = loginData!.mobile; return mobile ?? ''; } static Future getEmail() async { final LoginData? loginData = await getLoginData(); final String? email = loginData!.email; return email; } static Future getNickname() async { final LoginData? loginData = await getLoginData(); final String? nickname = loginData!.nickname; return nickname; } static Future getHeadUrl() async { final LoginData? loginData = await getLoginData(); final String? headUrl = loginData!.headUrl; return headUrl; } static Future getLoginData() async { LoginData? loginData; final String? data = await Storage.getString(saveUserLoginData); if (data != null && data.isNotEmpty) { loginData = LoginData.fromJson(jsonDecode(data)); ApmHelper.instance.login(loginData.userid!.toString()); } // AppLog.log("loginData:$loginData"); return loginData; } static Future saveLoginData(LoginData? data) async { ApmHelper.instance.login(data!.userid!.toString()); await Storage.setString(saveUserLoginData, jsonEncode(data)); } static Future saveMainListData(LockListInfoGroupEntity? data) async { await Storage.setString(saveLockMainListData, jsonEncode(data)); } static Future getLockMainListData() async { LockListInfoGroupEntity? lockListInfoGroupEntity; final String? data = await Storage.getString(saveLockMainListData); if (data != null && data.isNotEmpty) { lockListInfoGroupEntity = LockListInfoGroupEntity.fromJson(jsonDecode(data)); } return lockListInfoGroupEntity; } //设置自动关锁时间 static Future saveAutomaticLockOffTime(String data) async { await Storage.setString(automaticLockOffTime, data); } static Future getAutomaticLockOffTime() async { final String data = await Storage.getString(automaticLockOffTime) ?? '0'; return data; } //设置自动关锁时间 static Future saveAssociationUrl(String data) async { await Storage.setString(associationUrl, data); } static Future getAssociationUrl() async { final String data = await Storage.getString(associationUrl) ?? '0'; return data; } // 获取星图注册节点信息 static Future getStarChartRegisterNodeInfo() async { StarChartRegisterNodeEntity? starChartRegisterNodeEntity; final String? data = await Storage.getString(starChartRegisterNodeInfo); if (data != null && data.isNotEmpty) { starChartRegisterNodeEntity = StarChartRegisterNodeEntity.fromJson(jsonDecode(data)); } return starChartRegisterNodeEntity; } // 删除节点注册信息 static Future removerStarChartRegisterNodeInfo() async { removeData(starChartRegisterNodeInfo); } // 删除节点注册信息 static Future removerRelayInfo() async { removeData(relayInfo); } // 保存星图注册节点信息 static Future saveStarChartRegisterNodeInfo( StarChartRegisterNodeEntity starChartRegisterNodeEntity) async { await Storage.setString( starChartRegisterNodeInfo, jsonEncode(starChartRegisterNodeEntity)); } // 保存中继服务信息 static Future saveRelayInfo(RelayInfoEntity relayInfoEntity) async { await Storage.setString(relayInfo, jsonEncode(relayInfoEntity)); } // 保存锁板的配网信息 static Future saveLockNetWorkInfo(Map info) async { await Storage.setString(lockNetWorkInfo, json.encode(info)); } static Future removeLockNetWorkInfoCache() async { removeData(lockNetWorkInfo); } // 获取锁板的配网信息 static Future?> getLockNetWorkInfo() async { Map? info = null; final String? data = await Storage.getString(lockNetWorkInfo); if (data == null || data.isEmpty) { return null; } // 解析 JSON 字符串为 Map info = json.decode(data); return info; } // 获取星图注册节点信息 static Future getRelayInfo() async { RelayInfoEntity? relayInfoEntity; final String? data = await Storage.getString(relayInfo); if (data != null && data.isNotEmpty) { relayInfoEntity = RelayInfoEntity.fromJson(jsonDecode(data)); } return relayInfoEntity; } }