//.......................................................................................................................... public void ProcessMessage(CloudMailbox.BaseMessage inMessage) { // add into pending friends.. CloudMailbox.FriendRequest req = inMessage as CloudMailbox.FriendRequest; if (req != null) { FriendInfo fInfo = m_Friends.Find(f => f.PrimaryKey == inMessage.m_Sender); if (fInfo != null) { //Debug.Log("User with name " + inMessage.m_Sender + " is already your friend"); return; } List <PendingFriendInfo> pfInfo = m_PendingFriends.FindAll(f => f.PrimaryKey == inMessage.m_Sender); if (pfInfo != null && pfInfo.Count > 0) { foreach (PendingFriendInfo p in pfInfo) { if (p != null && p.IsItRequest == true) { //Debug.Log("Request from this person is already in pending list"); return; } } } PendingFriendInfo friend = new PendingFriendInfo(); friend.PrimaryKey = req.m_Sender; friend.Nickname = req.m_NickName; friend.Username_New = req.m_Username; friend.AddedDate = GuiBaseUtils.DateToEpoch(inMessage.m_SendTime); friend.Message = inMessage.m_Message; friend.CloudCommand = req.m_ConfirmCommand; m_PendingFriends.Add(friend); OnPendingFriendListChanged(); Save(); return; } CloudMailbox.FriendRequestReject reject = inMessage as CloudMailbox.FriendRequestReject; if (reject != null) { // remove this friend from pending list if it is still there. List <PendingFriendInfo> pfInfo = m_PendingFriends.FindAll(friend => friend.PrimaryKey == inMessage.m_Sender); if (pfInfo != null && pfInfo.Count > 0) { foreach (PendingFriendInfo p in pfInfo) { m_PendingFriends.Remove(p); } } OnPendingFriendListChanged(); Save(); return; } Debug.LogError("Unknown message " + inMessage + " " + inMessage.msgType); }
public static string GetSubject(this Message message) { string text = message != null ? message.m_Message : ""; if (message is NewsMessage) { NewsMessage msg = (NewsMessage)message; text = string.IsNullOrEmpty(msg.m_Subject) == false ? msg.m_Subject : msg.m_HeadLine; } else if (message is ResetResearch) { text = TextDatabase.instance[01170010]; } return(string.IsNullOrEmpty(text) == false ? text : ""); }
public static string GetMessage(this Message message) { string text = message != null ? message.m_Message : ""; if (message is NewsMessage) { NewsMessage msg = (NewsMessage)message; text = string.IsNullOrEmpty(text) == true ? msg.m_HeadLine : text; } else if (message is ResetResearch) { text = TextDatabase.instance[01170010].Replace("\n", " "); } return(string.IsNullOrEmpty(text) == false ? text : ""); }
public void Update(Message message, int index, bool selected) { m_MessageIndex = index; m_Highlight.Show(m_Line.Visible && selected, true); m_Sender.SetNewText(GuiBaseUtils.FixNameForGui(message.GetSender())); m_Subject.SetNewText(GuiBaseUtils.TrimLongText(message.GetSubject(), MAX_SUBJECT_LENGTH)); m_SenderIcon.State = message.GetMultiSpriteState(); if (message.m_IsRead != m_IsReadIcon.Widget.Visible) { m_IsReadIcon.Widget.Show(message.m_IsRead, true); } }
public void Update(Message message, int index) { m_MessageIndex = index; m_Subject.SetNewText(message != null ? GuiBaseUtils.TrimLongText(message.GetSubject(), MAX_SUBJECT_LENGTH) : ""); m_Date.SetNewText(message != null ? message.m_SendTime.ToLongRegionalString() : ""); m_Text.SetNewText(message != null ? message.GetMessage() : TextDatabase.instance[0104112]); bool showReply = m_MessageIndex >= 0 && message is FriendMessage ? true : false; if (showReply != m_Reply.Widget.Visible) { m_Reply.Widget.Show(showReply, true); } }
// HANDLERS void OnUpdateTableRow(GUIBase_Widget widget, int rowIndex, int itemIndex) { MessageLine row = m_MessageLines[rowIndex]; if (itemIndex < m_Messages.Length) { Message message = m_Messages[itemIndex]; bool active = m_ActiveMessage == itemIndex ? true : false; row.Show(); row.Update(message, itemIndex, active); } else { row.Hide(); } }
void ProcessMessages(Message[] messages) { m_Messages = messages; m_ImportantMessage = -1; System.Array.Sort(m_Messages, (x, y) => { return(x.m_SendTime.CompareTo(y.m_SendTime) * -1); }); int unreadMessage = 0; for (int idx = 0; idx < m_Messages.Length; ++idx) { Message message = m_Messages[idx]; if (message.m_IsRead == true) { continue; } if (message is FriendMessage) { unreadMessage++; } else if (message is SystemMessage) { if (m_ImportantMessage == -1) { m_ImportantMessage = idx; } unreadMessage++; } } ; m_MessageList.MaxItems = m_Messages.Length; m_MessageList.Widget.SetModify(); m_UnreadMessages = unreadMessage; ActiveMessage = m_ActiveMessage; }
public static string GetSender(this Message message) { if (message is FriendMessage) { FriendMessage friendMessage = (FriendMessage)message; if (string.IsNullOrEmpty(friendMessage.m_NickName) == false) { return(friendMessage.m_NickName); } var friend = GameCloudManager.friendList.friends.Find(obj => obj.PrimaryKey == message.m_Sender); if (friend != null) { return(friend.Nickname); } } else if (message is FriendRequest) { FriendRequest friendRequest = (FriendRequest)message; if (string.IsNullOrEmpty(friendRequest.m_NickName) == false) { return(friendRequest.m_NickName); } if (string.IsNullOrEmpty(friendRequest.m_Username) == false) { return(friendRequest.m_Username); } } else if (message is FriendRequestReject) { FriendRequestReject friendRequest = (FriendRequestReject)message; if (string.IsNullOrEmpty(friendRequest.m_NickName) == false) { return(friendRequest.m_NickName); } } return(message != null && string.IsNullOrEmpty(message.m_Sender) == false ? message.m_Sender : message.msgType); }
public static string GetMultiSpriteState(this Message message) { return(message != null?message.GetType().Name : GUIBase_MultiSprite.DefaultState); }