Exemple #1
0
    void OnRefreshMailGridList()
    {
        LoggerHelper.Debug("RefreshMailGridList " + MailManager.Instance.IsMailInfoDirty);

        if (MailManager.Instance.GetMailInfoList().Count > 0)
        {
            SocietyUIViewManager.Instance.ShowDeleteReadBtn(true);
            SocietyUIViewManager.Instance.ShowMailVolume(true);
            SocietyUIViewManager.Instance.ShowNoMailBoxText(false);
            SocietyUIViewManager.Instance.SetMailVolume(MailManager.Instance.GetMailInfoList().Count.ToString() + "/60");
        }
        else
        {
            SocietyUIViewManager.Instance.ShowDeleteReadBtn(false);
            SocietyUIViewManager.Instance.ShowMailVolume(false);
            SocietyUIViewManager.Instance.ShowNoMailBoxText(true);
        }


        if (true)
        {
            MailManager.Instance.IsMailInfoDirty = false;

            SocietyUIViewManager.Instance.ClearMailGridList();
            List <Mogo.Game.MailInfo> m_listMailInfo = MailManager.Instance.GetMailInfoList();
            //sort

            System.Comparison <Mogo.Game.MailInfo> com = new System.Comparison <Mogo.Game.MailInfo>(
                (a, b) =>
            {
                if (a.state == b.state)
                {
                    return(b.time - a.time);
                }

                if (a.state == MAIL_STATE.ATTACH_NO_READ)
                {
                    return(-1);
                }

                if (b.state == MAIL_STATE.ATTACH_NO_READ)
                {
                    return(1);
                }


                if (a.state == MAIL_STATE.NO_ATTACH_NO_READ)
                {
                    return(-1);
                }

                if (b.state == MAIL_STATE.NO_ATTACH_NO_READ)
                {
                    return(1);
                }


                if (a.state == MAIL_STATE.ATTACH_READ)
                {
                    return(-1);
                }

                if (b.state == MAIL_STATE.ATTACH_READ)
                {
                    return(1);
                }


                //默认按时间降序
                return(b.time - a.time);
            }
                );
            m_listMailInfo.Sort(com);

            Mogo.Util.LoggerHelper.Debug(m_listMailInfo.Count);


            for (int i = 0; i < m_listMailInfo.Count; ++i)
            {
                MailGridData md = new MailGridData();
                if (m_listMailInfo[i].mailType == MAIL_TYPE.ID)
                {
                    try
                    {
                        int fromId = System.Int32.Parse(m_listMailInfo[i].from);
                        md.name = LanguageData.GetContent(fromId);
                        int titleId = System.Int32.Parse(m_listMailInfo[i].title);
                        md.topic = LanguageData.GetContent(titleId);
                    }
                    catch (System.Exception ex)
                    {
                        md.name  = m_listMailInfo[i].from;
                        md.topic = m_listMailInfo[i].title;
                        LoggerHelper.Except(ex);
                    }
                }
                else
                {
                    md.name  = m_listMailInfo[i].from;
                    md.topic = m_listMailInfo[i].title;
                }

                md.mailId = m_listMailInfo[i].id;

                switch (m_listMailInfo[i].state)
                {
                case MAIL_STATE.NO_ATTACH_NO_READ:
                    md.isNoRead       = true;
                    md.isAttachNoRead = false;
                    md.isAttachRead   = false;
                    md.isRead         = false;
                    break;

                case MAIL_STATE.ATTACH_NO_READ:
                    md.isNoRead       = false;
                    md.isAttachNoRead = true;
                    md.isAttachRead   = false;
                    md.isRead         = false;
                    break;

                case MAIL_STATE.NO_ATTACH_READ:
                    md.isNoRead       = false;
                    md.isAttachNoRead = false;
                    md.isAttachRead   = false;
                    md.isRead         = true;
                    break;

                case MAIL_STATE.ATTACH_READ:
                    md.isNoRead       = false;
                    md.isAttachNoRead = false;
                    md.isAttachRead   = true;
                    md.isRead         = false;
                    break;

                case MAIL_STATE.RECV_ATTACH_READ:
                    md.isNoRead       = false;
                    md.isAttachNoRead = false;
                    md.isAttachRead   = false;
                    md.isRead         = true;
                    break;
                }
                md.time = Utils.GetTime(m_listMailInfo[i].time).ToString("MM/dd");
                SocietyUIViewManager.Instance.AddMailGrid(md);
            }

            MailManager.Instance.IsMailInfoDirty = false;
        }
    }
    void OnRefreshMailGridList()
    {                                  
        LoggerHelper.Debug("RefreshMailGridList " + MailManager.Instance.IsMailInfoDirty );

        if (MailManager.Instance.GetMailInfoList().Count > 0)
        {
            SocietyUIViewManager.Instance.ShowDeleteReadBtn(true);
            SocietyUIViewManager.Instance.ShowMailVolume(true);
            SocietyUIViewManager.Instance.ShowNoMailBoxText(false);
            SocietyUIViewManager.Instance.SetMailVolume(MailManager.Instance.GetMailInfoList().Count.ToString() + "/60");
        }
        else
        {
            SocietyUIViewManager.Instance.ShowDeleteReadBtn(false);
            SocietyUIViewManager.Instance.ShowMailVolume(false);
            SocietyUIViewManager.Instance.ShowNoMailBoxText(true);
        }


        if (true)
        {
            MailManager.Instance.IsMailInfoDirty = false;

            SocietyUIViewManager.Instance.ClearMailGridList();
            List<Mogo.Game.MailInfo> m_listMailInfo = MailManager.Instance.GetMailInfoList();
            //sort

            System.Comparison<Mogo.Game.MailInfo> com = new System.Comparison<Mogo.Game.MailInfo>(
              (a, b) =>
              {
                  if (a.state == b.state) return b.time - a.time;

                  if (a.state == MAIL_STATE.ATTACH_NO_READ) return -1;

                  if (b.state == MAIL_STATE.ATTACH_NO_READ) return 1;


                  if (a.state == MAIL_STATE.NO_ATTACH_NO_READ) return -1;

                  if (b.state == MAIL_STATE.NO_ATTACH_NO_READ) return 1;


                  if (a.state == MAIL_STATE.ATTACH_READ) return -1;

                  if (b.state == MAIL_STATE.ATTACH_READ) return 1;
                      

                  //默认按时间降序
                  return b.time - a.time;
              }
              );
            m_listMailInfo.Sort(com);

            Mogo.Util.LoggerHelper.Debug(m_listMailInfo.Count);


            for (int i = 0; i < m_listMailInfo.Count; ++i)
            {
                MailGridData md = new MailGridData();
                if (m_listMailInfo[i].mailType == MAIL_TYPE.ID)
                {
                    try
                    {
                        int fromId = System.Int32.Parse(m_listMailInfo[i].from);
                        md.name = LanguageData.GetContent(fromId);
                        int titleId = System.Int32.Parse(m_listMailInfo[i].title);
                        md.topic = LanguageData.GetContent(titleId);
                    }
                    catch (System.Exception ex)
                    {
                    	md.name = m_listMailInfo[i].from;
                        md.topic = m_listMailInfo[i].title;
                        LoggerHelper.Except(ex);
                    }
                }
                else
                {
                    md.name = m_listMailInfo[i].from;
                    md.topic = m_listMailInfo[i].title;
                }
                
                md.mailId = m_listMailInfo[i].id;

                switch (m_listMailInfo[i].state)
                {
                    case MAIL_STATE.NO_ATTACH_NO_READ:
                        md.isNoRead = true;
                        md.isAttachNoRead = false;
                        md.isAttachRead = false;
                        md.isRead = false;
                        break;

                    case MAIL_STATE.ATTACH_NO_READ:
                        md.isNoRead = false;
                        md.isAttachNoRead = true;
                        md.isAttachRead = false;
                        md.isRead = false;
                        break;

                    case MAIL_STATE.NO_ATTACH_READ:
                        md.isNoRead = false;
                        md.isAttachNoRead = false;
                        md.isAttachRead = false;
                        md.isRead = true;
                        break;

                    case MAIL_STATE.ATTACH_READ:
                        md.isNoRead = false;
                        md.isAttachNoRead = false;
                        md.isAttachRead = true;
                        md.isRead = false;
                        break;

                    case MAIL_STATE.RECV_ATTACH_READ:
                        md.isNoRead = false;
                        md.isAttachNoRead = false;
                        md.isAttachRead = false;
                        md.isRead = true;
                        break;

                }
                md.time = Utils.GetTime(m_listMailInfo[i].time).ToString("MM/dd");
                SocietyUIViewManager.Instance.AddMailGrid(md);
            }

            MailManager.Instance.IsMailInfoDirty = false;
        }
    }
    public void AddMailGrid(MailGridData md)
    {
        AssetCacheMgr.GetUIInstance("MailGrid.prefab", (prefab, id, go) =>
        {
            GameObject obj = (GameObject)go;

            obj.transform.parent = m_goMailList.transform;

            obj.transform.localPosition = new Vector3(0, -m_listMailGrid.Count * 108, 0);
            obj.transform.localScale = new Vector3(1, 1, 1);

            obj.GetComponentsInChildren<MyDragCamera>(true)[0].RelatedCamera = m_camMailList;

            //MailGrid mg = obj.GetComponentsInChildren<MailGrid>(true)[0];
            MailGrid mg = obj.AddComponent<MailGrid>();

            mg.MailGridName = md.name;
            mg.MailGridTopic = md.topic;
            mg.MailGridTime = md.time;
            mg.AttachNoRead = md.isAttachNoRead;
            mg.AttachRead = md.isAttachRead;
            mg.Read = md.isRead;
            mg.NoRead = md.isNoRead;
            mg.Id = m_listMailGrid.Count;
            TDBID idx = Convert.ToUInt64(m_listMailGrid.Count);
            m_mailGridToMailID[idx] = md.mailId;

            m_listMailGrid.Add(obj);

            if (m_listMailGrid.Count - 4 >= 0)
            {
                m_camMailList.GetComponentsInChildren<MyDragableCamera>(true)[0].MINY = -172 - (m_listMailGrid.Count - 4) * 108;
            }
            else
            {
                m_camMailList.GetComponentsInChildren<MyDragableCamera>(true)[0].MINY = -172;
            }
        });
    }