示例#1
0
    public static FriendCircleVo TransFriendCircleData(UserFriendCirclePB data)
    {
        var userMsg          = data;
        var friendCircleInfo = new FriendCircleVo()
        {
            UserId             = data.UserId,
            SceneId            = data.SceneId,
            PublishState       = data.PubState == 1,
            CreateTime         = data.CreateTime,
            PublishTime        = data.PubTime,
            curOperateSelectID = -1,
            curOperateTime     = 0,
            SelectIds          = new List <int>(),
        };

        if (data.SelectIds.Count > 0)
        {
            friendCircleInfo.SelectIds.AddRange(data.SelectIds);
        }
        string text = new AssetLoader().LoadTextSync(AssetLoader.GetPhoneDataPath(data.SceneId.ToString()));

        if (text == "")
        {
            return(null);
        }
        FriendCircleInfo info = JsonConvert.DeserializeObject <FriendCircleInfo>(text);

        friendCircleInfo.FriendCircleRuleInfo = info;
        return(friendCircleInfo);
    }
示例#2
0
    /// <summary>
    /// 展示回复界面
    /// </summary>
    /// <param name="sceneId"></param>
    public void ShowReplay(int sceneId, GameObject gameObject, List <int> ids)
    {
        Debug.Log("ShowReplay  " + sceneId + "  ids " + ids.ToString());
        _selectSceneId = sceneId;
        _selectObj     = gameObject;
        FriendCircleVo info = _data.Find(match => match.SceneId == sceneId);

        if (info == null)
        {
            Debug.LogError("ShowReplay info is null");
        }

        for (int i = _selectContainer.childCount - 1; i >= 0; i--)
        {
            Destroy(_selectContainer.GetChild(i).gameObject);
        }

        foreach (var v in ids)
        {
            var vrule          = info.GetCurSceneFCRuleByReplyId(v);
            var FCSelectPrefab = GetPrefab("Phone/Prefabs/Item/FCSelectItem");
            var item           = Instantiate(FCSelectPrefab) as GameObject;
            item.transform.SetParent(_selectContainer, false);
            item.transform.localScale = Vector3.one;
            item.GetComponent <FCSelectItem>().SetData(vrule.Content);
            item.transform.GetComponent <Button>().onClick.AddListener(() =>
            {
                Debug.LogError("SceneID  " + sceneId + " replyID " + v);
                EventDispatcher.TriggerEvent <int, int>(EventConst.ClickFriendCircleItemReplyClick, sceneId, v);
                _replySelect.gameObject.SetActive(false);
            });
        }

        _replySelect.gameObject.SetActive(true);
    }
示例#3
0
    public string SetComment(FriendCircleVo info)
    {
        string     str          = "";
        List <int> hasSelectIds = TravelSelects(info.SelectIds);

        str = TravelComment(hasSelectIds);

        _travelindex = 0;
        int        selectIndex = 1;
        List <int> comments    = new List <int>();
        List <int> selectIds   = new List <int>();

        selectIds.AddRange(info.SelectIds);
        bool showReplyBtn = false;

        List <FriendCircleRulePB> lastComments = new List <FriendCircleRulePB>();
        bool hasComment = false;

        _replyIds = new List <int>();

        bool isShowBtn = IsShowReplyBtn(hasSelectIds);

        _replyBtn.gameObject.SetActive(isShowBtn);
        //_replyBtn.gameObject.SetActive(showReplyBtn);
        _replyBtn.transform.parent.gameObject.SetActive(isShowBtn);//隐藏时间
        str = ParsingCommentStr(str);
        _otherComment.text = str;
        _otherCommentBg.gameObject.SetActive(str != "");

        CheckNpcReply(info.curOperateTime);
        Invoke("AddText", 0.1f);

        return(str);
    }
示例#4
0
 public void AddFriendCircleData(FriendCircleVo vo)
 {
     if (_userFriendCircleList.Contains(vo))
     {
         return;
     }
     if (_userFriendCircleList.Find((m) => { return(m.SceneId == vo.SceneId); }) != null)
     {
         return;
     }
     _userFriendCircleList.Add(vo);
 }
示例#5
0
    public void UpdateData(List <FriendCircleVo> data)
    {
        // data.Sort();
        //_selectSceneId
        _data = data;
        FriendCircleVo frindData = _data.Find(item => { return(item.SceneId == _selectSceneId); });

        //    _selectObj.GetComponent<FriendsCircleItem>().SetData(data[1]);
        _selectObj.GetComponent <FriendsCircleItem>().SetComment(frindData);
        // _loopRect.
        // _loopRect.content.localPosition = new Vector3(_loopRect.content.localPosition.x, _loopRect.content.localPosition.y+40, _loopRect.content.localPosition.z);
        // _loopRect.RefreshCells();
        //_loopRect.ClearCells();
        //ShowList();
        // _loopRect.Rebuild(CanvasUpdate.Prelayout);
    }
示例#6
0
    private void SetFriendCircleData(RepeatedField <UserFriendCirclePB> res)
    {
        if (_userFriendCircleList == null)
        {
            _userFriendCircleList = new List <FriendCircleVo>();
        }
        else
        {
            _userFriendCircleList.Clear();
        }
        List <int> ids = new List <int>();

        foreach (var v in res)
        {
            var friendCircleInfo = new FriendCircleVo()
            {
                UserId             = v.UserId,
                SceneId            = v.SceneId,
                PublishState       = v.PubState == 1,
                CreateTime         = v.CreateTime,
                PublishTime        = v.PubTime,
                curOperateSelectID = -1,
                curOperateTime     = 0,
                SelectIds          = new List <int>(),
            };

            if (v.SelectIds.Count > 0)
            {
                friendCircleInfo.SelectIds.AddRange(v.SelectIds);
            }
            _userFriendCircleList.Add(friendCircleInfo);
            ids.Add(v.SceneId);
        }
        LoadFcRulesByIds(ids);
        //LoadFcFinishedCallback();
    }
示例#7
0
    public void SetData(FriendCircleVo info)
    {
        Debug.Log("setData FriendsCircleItem1    " + info.SceneId);
        CancelInvoke("DelayCheckNpcReply");
        Debug.Log("setData FriendsCircleItem2    " + info.SceneId);
        isSetHeight = false;
        _info       = info;
        //Debug.Log("SetData sceneID " + info.SceneId+ " "+info.friendCircleRuleInfo.friendCircleSceneInfo.TitleContent);

        _commentTxt.text = Util.GetNoBreakingString(info.FriendCircleRuleInfo.friendCircleSceneInfo.TitleContent);

        _headImage.texture = ResourceManager.Load <Texture>(info.HeadPath, ModuleConfig.MODULE_PHONE);
        _nameFC.text       = info.Sender;

        _lastTimeTxt.text = info.StateTimeFormat;
        _lastTimeTxt.gameObject.SetActive(false);
        string bgId = info.FriendCircleRuleInfo.friendCircleSceneInfo.BackgroundId;

        Debug.Log("bgid    " + bgId);
        if (bgId == "0" || bgId == "")
        {
            transform.Find("BgImg").gameObject.SetActive(false);
        }
        else
        {
            //  Debug.Log("info.DefaultRule.PicId=1");
            _commentBg.texture = ResourceManager.Load <Texture>("Phone/FCBackGround/" + bgId, ModuleConfig.MODULE_PHONE);
            //   _commentBg.SetNativeSize();
            transform.Find("BgImg").gameObject.SetActive(true);
        }

        var str = SetComment(info);

        CheckNpcReply(info.curOperateTime);
        // Invoke("AddText",0.1f);
    }
示例#8
0
        static List <MySmsOrCallVo> _waitToShows;//等待显示一般只有四个NPC的
        /// <summary>
        /// 通用手机tips
        /// </summary>
        /// <param name="content">提示内容</param>
        /// <param name="title">标题</param>
        /// <param name="okBtnText">确定按钮文本</param>
        /// <param name="cancelBtnText">取消按钮文本</param>
        /// <returns></returns>
        public static void ShowPhoneTipsWindow(Action finished = null)
        {
            var curStep = GuideManager.CurStage();

            //如果能保证新手引导要使用的资源提前达到包里的话,该判断条件可以去掉
            if (curStep < GuideStage.ExtendDownloadStage)
            {
                finished?.Invoke();
                return;
            }


            _waitToShows.Clear();
            bool isHoldShow = false;

            byte[] buffer = NetWorkManager.GetByteData(new Com.Proto.UserPhoneTipDataReq()
            {
            });
            NetWorkManager.Instance.Send <Com.Proto.UserPhoneTipDataRes>(Assets.Scripts.Module.NetWork.CMD.PHONEC_TIPS_DATA, buffer, (res) =>
            {
                List <int> EliminatSceneIds = new List <int>();

                for (int i = 0; i < res.FriendCircles.Count; i++)
                {
                    FriendCircleVo vo = PhoneData.TransFriendCircleData(res.FriendCircles[i]);
                    if (vo == null)
                    {
                        continue;
                    }
                    GlobalData.PhoneData.AddFriendCircleData(vo);
                    Util.SetIsRedPoint(Constants.REDPOINT_PHONE_BGVIEW_FC, true);
                    EliminatSceneIds.Add(vo.SceneId);
                }

                for (int i = 0; i < res.MicroBlogs.Count; i++)
                {
                    WeiboVo vo = PhoneData.TransWeiboData(res.MicroBlogs[i]);
                    if (vo == null)
                    {
                        continue;
                    }
                    GlobalData.PhoneData.AddWeiboData(vo);
                    Util.SetIsRedPoint(Constants.REDPOINT_PHONE_BGVIEW_WEIBO, true);
                    EliminatSceneIds.Add(vo.SceneId);
                }

                bool isShowTips = false;
                //MySmsOrCallVo voTips = null;

                for (int i = 0; i < res.MsgOrCalls.Count; i++)
                {
                    //一次只会触发一条短信  先默认最后一条
                    //先转数据格式
                    MySmsOrCallVo vo = PhoneData.TransSmsOrCallData(res.MsgOrCalls[i]);

                    if (vo == null || vo.FirstTalkInfo.NpcId == 0)
                    {
                        continue;
                    }
                    isShowTips = GlobalData.PhoneData.IsSmsOrCallTipsShow(vo);
                    if (!isShowTips)
                    {
                        if (vo.SceneId < 10000)
                        {
                            Util.SetIsRedPoint(Constants.REDPOINT_PHONE_BGVIEW_SMS, true);
                        }
                        else
                        {
                            Util.SetIsRedPoint(Constants.REDPOINT_PHONE_BGVIEW_CALL, true);
                        }
                        GlobalData.PhoneData.AddSmsOrCallData(vo);
                        EliminatSceneIds.Add(vo.SceneId);
                    }
                    else
                    {
                        if (_waitToShows.Find((m) => { return(m.NpcId == vo.NpcId); }) != null)
                        {
                            continue;
                        }
                        _waitToShows.Add(vo);
                    }
                }


                if (_waitToShows.Count > 0)//第一个默认添加
                {
                    _waitToShows.Sort();
                    GlobalData.PhoneData.AddSmsOrCallData(_waitToShows[0]);
                    EliminatSceneIds.Add(_waitToShows[0].SceneId);
                }

                for (int i = 0; i < res.MsgOrCalls.Count; i++)
                {
                    //一次只会触发一条短信  先默认最后一条
                    //先转数据格式
                    MySmsOrCallVo vo = PhoneData.TransSmsOrCallData(res.MsgOrCalls[i]);
                    if (vo == null || vo.FirstTalkInfo.NpcId != 0)
                    {
                        continue;
                    }
                    GlobalData.PhoneData.AddSmsOrCallData(vo);
                    EliminatSceneIds.Add(vo.SceneId);
                    if (vo.SceneId < 10000)
                    {
                        Util.SetIsRedPoint(Constants.REDPOINT_PHONE_BGVIEW_SMS, true);
                    }
                    else
                    {
                        Util.SetIsRedPoint(Constants.REDPOINT_PHONE_BGVIEW_CALL, true);
                    }
                }
                //test
                EliminatEsceneId(EliminatSceneIds);
                finished?.Invoke();
                // if (!isShowTips) return;
                HandleShowWindow(_waitToShows);
                return;
            }, (v) =>
            {
                finished?.Invoke();
            });
        }