Exemplo n.º 1
0
        public void onAddMsgData(SNSAddChatMsgData data)
        {
            if (data == null)
            {
                return;
            }

            long SessionID = data.SessionID;

            // 如果窗口已经打开了,则更新到窗口
            if (IsVisible() && m_CurSessionID == SessionID)
            {
                m_CurSessionID = SessionID;
                onUpdateView();
            }
            else   // 如果窗口没打开,提示有新的消息
            {
                // 新的聊听消息
                DIDAAddData msg = new DIDAAddData();
                msg.eLayout          = EDIDALayout.EDT_Left;
                msg.nDIDATime        = 60;
                msg.nItemID          = (int)EDIDAType.EDIDA_Chat;
                msg.bAllowRepeatItem = true;
                msg.nButtonIconID    = (int)EDIDAType.EDIDA_Chat;
                msg.strTooltip       = ULocalizationService.Instance.Get("UIView", "SNS", "NewChatMsgDesc");
                msg.bShowInWar       = true;


                SNSNewChatMsgInfo newChatInfo = new SNSNewChatMsgInfo();
                newChatInfo.SessionID = SessionID;
                msg.sCustomData       = newChatInfo;
                msg.callBack          = (CustomerInfo) =>
                {
                    // 显示聊天框
                    SNSOpenChatWndMsgData msgData = new SNSOpenChatWndMsgData();
                    msgData.msgID     = (int)WndMsgID.WND_MSG_SNS_SHOW_CHAT_WND;
                    msgData.SessionID = SessionID;
                    UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_SNS_SHOW_CHAT_WND, msgData);
                };

                LogicDataCenter.didaDataManager.AddItem(msg);

                // 添加DIDA到窗口缓存
                DIDARemoveData removeMsg = new DIDARemoveData();
                removeMsg.nItemID     = msg.nItemID;
                removeMsg.sCustomData = newChatInfo;
                addNewMsgDIDA(SessionID, removeMsg);
            }
        }
Exemplo n.º 2
0
        public void onAddMsgData(int nSessionID)
        {
            // 如果窗口已经打开了,则更新到窗口
            if (isChatWndAlreadyOpen(nSessionID))
            {
                GameObject subChatWndObj;

                string sessionName = LogicDataCenter.snsDataManager.getSessionName(nSessionID);
                if (m_subChatWndList.TryGetValue(sessionName, out subChatWndObj))
                {
                    subChatWndObj.GetComponent <SNSChatWndView>().onUpdateChatMessage();
                }
            }
            else   // 如果窗口没打开,提示有新的消息
            {
                // 新的聊听消息
                DIDAAddData msg = new DIDAAddData();
                msg.eLayout          = EDIDALayout.EDT_Left;
                msg.nDIDATime        = 60;
                msg.nItemID          = (int)EDIDAType.EDIDA_Chat;
                msg.bAllowRepeatItem = true;
                msg.nButtonIconID    = (int)EDIDAType.EDIDA_Chat;
                msg.strTooltip       = ULocalizationService.Instance.Get("UIView", "SNS", "NewChatMsgDesc");

                SNSNewChatMsgInfo newChatInfo = new SNSNewChatMsgInfo();
                newChatInfo.nSessionID = nSessionID;
                msg.sCustomData        = newChatInfo;
                msg.callBack           = (CustomerInfo) =>
                {
                    onOpenChatWnd(nSessionID);
                };

                LogicDataCenter.didaDataManager.AddItem(msg);

                // 添加DIDA到窗口缓存
                DIDARemoveData removeMsg = new DIDARemoveData();
                removeMsg.nItemID     = msg.nItemID;
                removeMsg.sCustomData = newChatInfo;
                addNewMsgDIDA(nSessionID, removeMsg);
            }
        }