using System; using System.Collections.Generic; using Shared.SimpleControl; namespace Shared { [System.Serializable] public class UserConfig { static string configFile = "UserConfig"; static UserConfig instance; public static UserConfig Instance { get { if (instance == null) { try { var userConfigBytes = IO.FileUtils.ReadFile (configFile); var userConfigString = CommonPage.MyEncodingUTF8.GetString (userConfigBytes); UserConfig temp = null; if (userConfigString != null) { temp = Newtonsoft.Json.JsonConvert.DeserializeObject (userConfigString); } if (temp == null) { instance = new UserConfig { }; #if wallon instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Thermostat); #else instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.VideoIntercom); instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Thermostat); instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.ACMerrill); #endif } else { instance = temp; } } catch { } } instance.DeviceTypes = new List (){ SimpleControl.R.MyInternationalizationString.AC, SimpleControl.R.MyInternationalizationString.Lights, SimpleControl.R.MyInternationalizationString.Curtain, SimpleControl.R.MyInternationalizationString.Scenes, SimpleControl.R.MyInternationalizationString.FoolHeat, SimpleControl.R.MyInternationalizationString.Monitor, SimpleControl.R.MyInternationalizationString.Security, SimpleControl.R.MyInternationalizationString.TV, SimpleControl.R.MyInternationalizationString.Music, SimpleControl.R.MyInternationalizationString.ElectricalControl, SimpleControl.R.MyInternationalizationString.Fan, SimpleControl.R.MyInternationalizationString.DoorLock, SimpleControl.R.MyInternationalizationString.UniversalDevice, SimpleControl.R.MyInternationalizationString.Environmental, SimpleControl.R.MyInternationalizationString.FreshAir, SimpleControl.R.MyInternationalizationString.VideoIntercom, SimpleControl.R.MyInternationalizationString.Thermostat, SimpleControl.R.MyInternationalizationString.ACMerrill, //------------------------------------- SimpleControl.R.MyInternationalizationString.granite,//YiPanle //SimpleControl.R.MyInternationalizationString.Sonos, //SimpleControl.R.MyInternationalizationString.SuperWireless }; return instance; } } byte [] GetUserConfigBytes () { return CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (this)); } public void RefreshUserConfig () { instance = null; SaveUserConfig (); } public void SaveUserConfig () { IO.FileUtils.WriteFileByBytes (configFile, GetUserConfigBytes ()); } public int internetStatus = 2; /// /// 存放不用调光功能的调光设备 /// public List UnEnableDimmingLight = new List (); /// /// 插座开关列表 /// public List SocketList = new List (); /// /// 手机appID /// public string tokenID = string.Empty; /// /// 手机别名 /// public string phoneName = string.Empty; /// /// 用户界面进入时是否显示的是全局场景界面 /// public bool SceneOfGloba = false; /// /// 保存远程连接的网络设备文件名 /// public string RemoteModeFile = string.Empty; /// /// 是否展开房间灯光列表 /// public bool ShowRoomLightList = true; /// /// 是否展开房间窗帘列表 /// public bool ShowRoomCurtainList = true; /// /// 隐藏没有场景的房间 /// public bool HideInvalidRoomScene = false; public bool ShowFunctionBackground = true; //要显示的设备类型先在这里加进文本选择 public List DeviceTypes = null; public List HideDeviceTypes = new List (); public Dictionary SkinVision = new Dictionary (); public Dictionary DowlaodSkinVision = new Dictionary (); /// /// 当前使用的皮肤 /// public string CurrentSkinName { get { string skinPath = "Phone"; if (SkinCode == 0) { skinPath = "Phone"; } else if (SkinCode == 1) { skinPath = "Phone2"; } return skinPath; } } /// /// 安防密码 /// public string ArmPW = "85521566"; /// /// 是否显示场景列表 /// public bool ShowAlternativeScene = true; //门锁密码保存 public Dictionary RemoteDoorLockPasswordList = new Dictionary (); public string CountryCode = "CN"; #if Crabtree public int SkinCode = 1; #else public int SkinCode = 0; #endif public string SetLanguage = ""; public DateTime TipUpdataVersion = DateTime.MinValue; /// /// 是否需要更新,更新的类型是什么 /// public SimpleControl.Phone.UpdateVersionType UpdateVersionType = 0; public List HomeLists = new List (); public RegionInfoRes CurrentRegion = new RegionInfoRes (); //public List GatewayList = new List (); //public List GatewayMACList { // get { // List macList = new List (); // foreach (var mac in GatewayList) { // macList.Add (mac.MAC); // } // return macList; // } //} [Newtonsoft.Json.JsonIgnore] public string GatewayMAC { get { return CurrentRegion.MAC.ToUpper () ; } } public List RometoUserInfoKeys = new List (); //public static List LocalFiles = IO.FileUtils.ReadFiles (); /// /// 记录最后一次触发的场景 /// public string CurScene = string.Empty; /// /// 主页是否设置了传感器 /// public bool IsSetHomePageSensor = false; public HomePageSensor temp = null;// new HomePageSensor () { DeviceID = 11, LoopID = 1, Name = "temp.", SubnetID = 1 }; public HomePageSensor pm25 = null;// new HomePageSensor () { DeviceID = 1, LoopID = 1, Name = "pm25", SubnetID = 1 }; public HomePageSensor humidity = null;//new HomePageSensor () { DeviceID = 1, LoopID =2, Name = "humidity", SubnetID = 1 }; public HomePageSensor co2 = null;//new HomePageSensor () { DeviceID = 1, LoopID = 3, Name = "co2", SubnetID = 1 }; public HomePageSensor tvoc = null;//new HomePageSensor () { DeviceID = 1, LoopID = 4, Name = "tvoc", SubnetID = 1 }; public HomePageSensor formaldehyde = null;// new HomePageSensor () { DeviceID = 1, LoopID = 5, Name = "formaldehyde", SubnetID = 1 }; //null;// } public class HomePageSensor { public byte SubnetID; public byte DeviceID; public byte LoopID; public string Name; public double values; } }