using System; using System.Collections.Generic; using System.Linq; using System.Text; public enum ChatBoolType { ChannelSystem = 0 , //系统频道 ChannelWorld,//世界频道 ChannelATeam,//组队频道 ChannelTeam,//队伍频道 ChannelBugle,//喇叭频道 ChannelGrad,//仙盟频道 ChannelArea,//区域频道 //ChannelAlliance,//同盟频道 Voice1, Voice2, Voice3, GradVoiceWifi, //仙盟语音Wifi PrivateChatVoiceWifi,//私聊语音Wifi TeamVoiceWifi,//队伍语音Wifi WorldVoiceWifi,//世界语音Wifi AreaVoiceWifi,//区域语音Wifi // AllianceVoiceWifi, //同盟语音Wifi GradVoice4G,//仙盟语音4G PrivatChatVoice4G,//私聊语音4G TeamVoice4G,//队伍语音4G WorldVoice4G,//世界语音4G AreaVoice4G,//区域语音4G //AllianceVoice4G, //同盟语音4G //后续IL开发添加预设 default1, default2, default3, default4, default5, default6, default7, default8, default9, default10, } public class ChatSetting : Singleton { const string ChatBoolSet_Key = "ChatBoolSet"; public event Action RefreshChatSetAct; #region 缓存数据 public Dictionary boolSetDict { get; private set; } public void GetLoginBoolSet() { boolSetDict = new Dictionary(); for (int i = 0; i < 20; i++) { if (!boolSetDict.ContainsKey((ChatBoolType)i)) { boolSetDict.Add((ChatBoolType)i, SettingMgr.Instance.GetAccountSetBoolInfo(((ChatBoolType)i).ToString())); } } } #endregion public void SetBoolSetStr(ChatBoolType type, bool isOpen) { SettingMgr.Instance.SetAccountSetStr(type.ToString(),isOpen.ToString()); switch (type) { case ChatBoolType.ChannelSystem: ChatManager.Instance.SetChatChannelShow(ChatInfoType.System, isOpen); break; case ChatBoolType.ChannelWorld: ChatManager.Instance.SetChatChannelShow(ChatInfoType.World, isOpen); break; case ChatBoolType.ChannelATeam: ChatManager.Instance.SetChatChannelShow(ChatInfoType.Invite, isOpen); break; case ChatBoolType.ChannelTeam: ChatManager.Instance.SetChatChannelShow(ChatInfoType.Team, isOpen); break; case ChatBoolType.ChannelBugle: ChatManager.Instance.SetChatChannelShow(ChatInfoType.Trumpet, isOpen); break; case ChatBoolType.ChannelGrad: ChatManager.Instance.SetChatChannelShow(ChatInfoType.Fairy, isOpen); break; case ChatBoolType.ChannelArea: ChatManager.Instance.SetChatChannelShow(ChatInfoType.Area, isOpen); break; } if (boolSetDict != null) { if (boolSetDict.ContainsKey(type)) { boolSetDict[type] = isOpen; } } if(RefreshChatSetAct != null) { RefreshChatSetAct(type,isOpen); } } public bool GetBool(ChatBoolType type) { if (boolSetDict != null) { bool isOpen = false; boolSetDict.TryGetValue(type, out isOpen); return isOpen; } else { return SettingMgr.Instance.GetAccountSetBoolInfo(type.ToString()); } } public bool GetAutoPlayVoice(ChatInfoType type, int netState) { if (netState == 0) { return false; } switch (type) { case ChatInfoType.World: if (netState == 2) { return GetBool(ChatBoolType.WorldVoiceWifi); } else { return GetBool(ChatBoolType.WorldVoice4G); } case ChatInfoType.Area: if (netState == 2) { return GetBool(ChatBoolType.AreaVoiceWifi); } else { return GetBool(ChatBoolType.AreaVoice4G); } case ChatInfoType.Team: if (netState == 2) { return GetBool(ChatBoolType.TeamVoiceWifi); } else { return GetBool(ChatBoolType.TeamVoice4G); } case ChatInfoType.Fairy: if (netState == 2) { return GetBool(ChatBoolType.GradVoiceWifi); } else { return GetBool(ChatBoolType.GradVoice4G); } case ChatInfoType.Friend: if (netState == 2) { return GetBool(ChatBoolType.PrivateChatVoiceWifi); } else { return GetBool(ChatBoolType.PrivatChatVoice4G); } case ChatInfoType.CrossServer: return false; } return false; } }