Ejemplo n.º 1
0
    /// <summary>
    /// 已读
    /// </summary>
    public void CheckedChat(SinglePeopleChatData singlePeopleChatData)
    {
        for (int i = 0; i < singlePeopleChatData.ChatDataList.Count; i++)
        {
            singlePeopleChatData.ChatDataList[i].Checked = true;
        }
        RedPoint son = RedPointManager.Instance.GetRedPointFromDic(RedPointType.SinglePeopleChatMsg, singlePeopleChatData.Belong);

        RedPointManager.Instance.ChangeRedPointStatus(RedPointType.SinglePeopleChatMsg, singlePeopleChatData.Belong, false);
        //发消息给手机ui显示
        EventCenter.Broadcast(TheEventType.CheckedWetalkMessage, singlePeopleChatData);
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 已读
    /// </summary>
    void OnCheckedRedPoint(object param)
    {
        SinglePeopleChatData singlePeopleChatData = param as SinglePeopleChatData;

        //红点
        for (int i = 0; i < messageFriendViewList.Count; i++)
        {
            if (messageFriendViewList[i].singlePeopleChatData.Belong == singlePeopleChatData.Belong)
            {
                messageFriendViewList[i].RedPointShow();
            }
        }

        RedPointShow();
    }
Ejemplo n.º 3
0
    //private void Update()
    //{
    //    //自动定位
    //    if (rectTrans_chatScroll.sizeDelta.y < trans_chatGrid.GetComponent<RectTransform>().sizeDelta.y)
    //    {
    //        float offset = trans_chatGrid.GetComponent<RectTransform>().sizeDelta.y - rectTrans_chatScroll.sizeDelta.y;
    //      //  trans_chatGrid.localPosition = new Vector2(trans_chatGrid.localPosition.x, offset);
    //        trans_chatGrid.GetComponent<RectTransform>().anchoredPosition= new Vector2(trans_chatGrid.localPosition.x, offset);
    //    }
    //}

    /// <summary>
    /// 显示消息页面所有人
    /// </summary>
    public void ShowAllMessageWetalkFriend()
    {
        ClearMessageGrid();
        img_messagePageBtn.material = null;
        img_friendListBtn.material  = PanelManager.Instance.mat_grey;
        trans_friendList.gameObject.SetActive(false);
        trans_chat.gameObject.SetActive(false);
        trans_message.gameObject.SetActive(true);
        txt_upLabel.SetText("消息");
        for (int i = 0; i < RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList.Count; i++)
        {
            SinglePeopleChatData   singlePeopleChatData = RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList[i];
            SingleWetalkFriendView view = PanelManager.Instance.OpenSingle <SingleWetalkFriendView>(grid_message, singlePeopleChatData, this);
            messageFriendViewList.Add(view);
        }
    }
Ejemplo n.º 4
0
    /// <summary>
    /// 显示联系人页面
    /// </summary>
    public void ShowFriendList()
    {
        ClearFriendListGrid();

        trans_message.gameObject.SetActive(false);
        trans_chat.gameObject.SetActive(false);
        trans_friendList.gameObject.SetActive(true);
        img_friendListBtn.material  = null;
        img_messagePageBtn.material = PanelManager.Instance.mat_grey;
        txt_upLabel.SetText("联系人");
        PanelManager.Instance.OpenSingle <FriendListLabelView>(trans_friendListGrid);
        for (int i = 0; i < RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList.Count; i++)
        {
            SinglePeopleChatData singlePeopleChatData = RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList[i];
            PanelManager.Instance.OpenSingle <SingleWetalkFriendInFriendListView>(trans_friendListGrid, singlePeopleChatData, this);
        }
    }
Ejemplo n.º 5
0
    /// <summary>
    /// 显示聊天页面
    /// </summary>
    public void ShowChat(SinglePeopleChatData singlePeopleChatData)
    {
        curShowType = CellPhoneShowType.Chat;
        ClearChatGrid();
        trans_chat.gameObject.SetActive(true);
        People people = RoleManager.Instance.FindPeopleWithOnlyId(singlePeopleChatData.Belong);

        txt_chatLabel.SetText(people.protoData.Name);
        for (int i = 0; i < singlePeopleChatData.ChatDataList.Count; i++)
        {
            allChatItemViewList.Add(PanelManager.Instance.OpenSingle <SingleChatItemView>(trans_chatGrid, singlePeopleChatData.ChatDataList[i]));
        }
        curSinglePeopleChatData = singlePeopleChatData;
        SocializationManager.Instance.CheckedChat(singlePeopleChatData);
        //自动定位
        if (rectTrans_chatScroll.sizeDelta.y < trans_chatGrid.GetComponent <RectTransform>().sizeDelta.y)
        {
            float offset = trans_chatGrid.GetComponent <RectTransform>().sizeDelta.y - rectTrans_chatScroll.sizeDelta.y;
            trans_chatGrid.GetComponent <RectTransform>().anchoredPosition = new Vector2(trans_chatGrid.localPosition.x, offset);
        }
        OnCheckedRedPoint(curSinglePeopleChatData);
    }
Ejemplo n.º 6
0
    /// <summary>
    /// 获取未读消息记录
    /// </summary>
    public int GetUnCheckChatNum(UInt64 onlyId)
    {
        int res = 0;

        for (int i = 0; i < RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList.Count; i++)
        {
            SinglePeopleChatData data = RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList[i];
            if (data.Belong == onlyId)
            {
                for (int j = 0; j < data.ChatDataList.Count; j++)
                {
                    OneChatData oneData = data.ChatDataList[j];
                    if (!oneData.Checked)
                    {
                        res++;
                    }
                }
                break;
            }
        }
        return(res);
    }
Ejemplo n.º 7
0
    /// <summary>
    /// 发信给玩家 暂时只记录在玩家手机里面
    /// </summary>
    public void SendMsgToPlayer(People from, People to, WetalkMsgData wetalkMsgData)
    {
        SinglePeopleChatData singlePeopleChatData = null;
        UInt64 theOnlyId = 0;

        if (from.protoData.IsPlayer)
        {
            theOnlyId = to.protoData.OnlyId;
        }
        else
        {
            theOnlyId = from.protoData.OnlyId;
        }
        //红点
        for (int i = 0; i < RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList.Count; i++)
        {
            if (RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList[i].Belong == theOnlyId)
            {
                singlePeopleChatData = RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList[i];
                //置顶
                var tmp = RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList[0];
                RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList[0] = singlePeopleChatData;
                RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList[i] = tmp;
                break;
            }
        }
        //如果没有聊过天,则插到第一位
        if (singlePeopleChatData == null)
        {
            singlePeopleChatData        = new SinglePeopleChatData();
            singlePeopleChatData.Belong = theOnlyId;
            RoleManager.Instance.playerPeople.protoData.AllSinglePeopleChatDataList.Insert(0, singlePeopleChatData);
        }
        OneChatData oneChatData = new OneChatData();

        oneChatData.ChatType       = (int)wetalkMsgData.wetalkMsgType;
        oneChatData.Belong         = from.protoData.OnlyId;
        oneChatData.Content        = wetalkMsgData.content;
        oneChatData.InviteActionId = wetalkMsgData.inviteActionId;
        if (from.protoData.IsPlayer)
        {
            oneChatData.Checked = true;
        }
        oneChatData.IsPlayer = from.protoData.IsPlayer;
        oneChatData.Valid    = true;
        singlePeopleChatData.ChatDataList.Add(oneChatData);
        //上一条聊天记录需要失效(回复按钮取消等)
        if (singlePeopleChatData.ChatDataList.Count > 1)
        {
            singlePeopleChatData.ChatDataList[singlePeopleChatData.ChatDataList.Count - 2].Valid = false;
        }
        //后续可能只保留20条的聊天记录
        //其它人发给玩家的 则有红点
        if (!from.protoData.IsPlayer)
        {
            RedPoint son    = RedPointManager.Instance.GetRedPointFromDic(RedPointType.SinglePeopleChatMsg, from.protoData.OnlyId);
            RedPoint parent = RedPointManager.Instance.GetRedPointFromDic(RedPointType.AllChatMsg, 0);
            RedPointManager.Instance.BindRedPoint(parent, son);
            RedPointManager.Instance.ChangeRedPointStatus(RedPointType.SinglePeopleChatMsg, from.protoData.OnlyId, true);
        }
        //发消息给手机ui显示
        EventCenter.Broadcast(TheEventType.SendWetalkMessage, wetalkMsgData);
        EventCenter.Broadcast(TheEventType.ShowMainPanelRedPoint);
    }
 public override void Init(params object[] args)
 {
     base.Init(args);
     singlePeopleChatData = args[0] as SinglePeopleChatData;
     parentPanel          = args[1] as CellPhonePanel;
 }