/// <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); }
/// <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(); }
//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); } }
/// <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); } }
/// <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); }
/// <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); }
/// <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; }