Esempio n. 1
0
        public void onOpenChatWnd(SNSOpenChatWndMsgData data)
        {
            if (data == null)
            {
                return;
            }

            if ((data.SessionID <= 0) || (data.SessionID == LogicDataCenter.snsDataManager.MyBuddyInfo.Info.nUserID))
            {
                Debug.LogError("打开聊天框失败, 传入的SessionID为0或为自己的UserID, nSessionID=" + data.SessionID);
                return;
            }

            // 保存旧的Session信息
            if (CurSession != null)
            {
                CurSession.nCurHistoryPage = m_CurPage;
            }

            m_CurSessionID = data.SessionID;

            // 不存在对话
            if (!m_SessionList.ContainsKey(m_CurSessionID))
            {
                SNSSession session = new SNSSession();
                session.SessionID       = m_CurSessionID;
                session.nCurHistoryPage = 0;
                m_SessionList.Add(m_CurSessionID, session);
            }

            onUpdateView();
        }
        private void OnCallBack()
        {
            SNSOpenChatWndMsgData msgData = new SNSOpenChatWndMsgData();

            msgData.msgID     = (int)WndMsgID.WND_MSG_SNS_SHOW_CHAT_WND;
            msgData.SessionID = m_dwUserID;
            UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_SNS_SHOW_CHAT_WND, msgData);
        }
Esempio n. 3
0
        /// <summary>
        /// 双击好友,打开聊听窗口
        /// </summary>
        public void openChatWnd()
        {
            if (ItemDepth > 0)
            {
                DataCenter.SNSDataManager.BuddyInfo buddyInfo = LogicDataCenter.snsDataManager.getBuddyInfoByUserID(Item.nUserID);

                SNSOpenChatWndMsgData msgData = new SNSOpenChatWndMsgData();
                msgData.msgID      = (int)WndMsgID.WND_MSG_SNS_SHOW_CHAT_WND;
                msgData.nSessionID = buddyInfo.Info.nUserID;
                UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_SNS_SHOW_CHAT_WND, msgData);
            }
        }
Esempio n. 4
0
        public override void OnPointerClick(PointerEventData eventData)
        {
            base.OnPointerClick(eventData);

            SNSOpenChatWndMsgData msgData = new SNSOpenChatWndMsgData();

            msgData.msgID     = (int)WndMsgID.WND_MSG_SNS_SHOW_CHAT_WND;
            msgData.SessionID = item.UserID;
            UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_SNS_SHOW_CHAT_WND, msgData);


            // 隐藏结果窗口
            UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_SNS_HIDE_SEARCH_BUDDY_WND, null);
        }
Esempio n. 5
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);
            }
        }