|  |  |  | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using UnityEngine; | 
|---|
|  |  |  | namespace vnxbqy.UI | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public class MailWin : UIBase | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public class MailWin : UIBase | 
|---|
|  |  |  | [SerializeField] Transform transPersonal; | 
|---|
|  |  |  | [SerializeField] Transform transGlobal; | 
|---|
|  |  |  | [SerializeField] ScrollerController scrPersonal; | 
|---|
|  |  |  | [SerializeField] ScrollerController scrGlobal; | 
|---|
|  |  |  | [SerializeField] ButtonEx btnDeleteRead; | 
|---|
|  |  |  | [SerializeField] ButtonEx btnClaimAll; | 
|---|
|  |  |  | [SerializeField] ToggleEx togTab0; | 
|---|
|  |  |  | [SerializeField] RedpointBehaviour rpTab0; | 
|---|
|  |  |  | [SerializeField] ToggleEx togTab1; | 
|---|
|  |  |  | [SerializeField] RedpointBehaviour rpTab1; | 
|---|
|  |  |  | [SerializeField] Transform transNoMail; | 
|---|
|  |  |  | MailManager model { get { return MailManager.Instance; } } | 
|---|
|  |  |  | protected override void InitComponent() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | [SerializeField] Transform transPersonal; | 
|---|
|  |  |  | [SerializeField] Transform transGlobal; | 
|---|
|  |  |  | [SerializeField] ScrollerController scrPersonal; | 
|---|
|  |  |  | [SerializeField] ScrollerController scrGlobal; | 
|---|
|  |  |  | [SerializeField] ButtonEx btnDeleteRead; | 
|---|
|  |  |  | [SerializeField] ButtonEx btnClaimAll; | 
|---|
|  |  |  | [SerializeField] ToggleEx togTab0; | 
|---|
|  |  |  | [SerializeField] RedpointBehaviour rpTab0; | 
|---|
|  |  |  | [SerializeField] ToggleEx togTab1; | 
|---|
|  |  |  | [SerializeField] RedpointBehaviour rpTab1; | 
|---|
|  |  |  | [SerializeField] Transform transNoMail; | 
|---|
|  |  |  | MailManager model { get { return MailManager.Instance; } } | 
|---|
|  |  |  | protected override void InitComponent() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | base.InitComponent(); | 
|---|
|  |  |  | btnDeleteRead.SetListener(OnDeleteRead); | 
|---|
|  |  |  | btnClaimAll.SetListener(OnClaimAll); | 
|---|
|  |  |  | togTab0.SetListener(OnTab0); | 
|---|
|  |  |  | togTab1.SetListener(OnTab1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | base.InitComponent(); | 
|---|
|  |  |  | btnDeleteRead.SetListener(OnDeleteRead); | 
|---|
|  |  |  | btnClaimAll.SetListener(OnClaimAll); | 
|---|
|  |  |  | togTab0.SetListener(OnTab0); | 
|---|
|  |  |  | togTab1.SetListener(OnTab1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | protected override void OnPreOpen() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | model.OnUpdateMailListEvent += OnUpdateMailListEvent; | 
|---|
|  |  |  | model.OnUpdateMailStateChangeEvent += OnUpdateMailStateChangeEvent; | 
|---|
|  |  |  | scrPersonal.OnRefreshCell += OnRefreshPersonalCell; | 
|---|
|  |  |  | scrGlobal.OnRefreshCell += OnRefreshGlobalCell; | 
|---|
|  |  |  | protected override void OnPreOpen() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | model.OnUpdateMailListEvent += OnUpdateMailListEvent; | 
|---|
|  |  |  | model.OnUpdateMailStateChangeEvent += OnUpdateMailStateChangeEvent; | 
|---|
|  |  |  | scrPersonal.OnRefreshCell += OnRefreshPersonalCell; | 
|---|
|  |  |  | scrGlobal.OnRefreshCell += OnRefreshGlobalCell; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | rpTab0.redpointId = model.GetTabRedpointId(MailCategory.Personal); | 
|---|
|  |  |  | rpTab1.redpointId = model.GetTabRedpointId(MailCategory.Global); | 
|---|
|  |  |  | transNoMail.SetActive(false); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | rpTab0.redpointId = model.GetTabRedpointId(MailCategory.Personal); | 
|---|
|  |  |  | rpTab1.redpointId = model.GetTabRedpointId(MailCategory.Global); | 
|---|
|  |  |  | transNoMail.SetActive(false); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | protected override void OnPreClose() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | model.OnUpdateMailListEvent -= OnUpdateMailListEvent; | 
|---|
|  |  |  | model.OnUpdateMailStateChangeEvent -= OnUpdateMailStateChangeEvent; | 
|---|
|  |  |  | scrPersonal.OnRefreshCell -= OnRefreshPersonalCell; | 
|---|
|  |  |  | scrGlobal.OnRefreshCell -= OnRefreshGlobalCell; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | protected override void OnPreClose() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | model.OnUpdateMailListEvent -= OnUpdateMailListEvent; | 
|---|
|  |  |  | model.OnUpdateMailStateChangeEvent -= OnUpdateMailStateChangeEvent; | 
|---|
|  |  |  | scrPersonal.OnRefreshCell -= OnRefreshPersonalCell; | 
|---|
|  |  |  | scrGlobal.OnRefreshCell -= OnRefreshGlobalCell; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnTab0(bool value) | 
|---|
|  |  |  | private void OnTab0(bool value) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (value) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (value) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | transPersonal.SetActive(true); | 
|---|
|  |  |  | transGlobal.SetActive(false); | 
|---|
|  |  |  | model.nowMailCategory = MailCategory.Personal; | 
|---|
|  |  |  | CreatePersonalScr(model.nowMailCategory); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnTab1(bool value) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (value) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | transPersonal.SetActive(false); | 
|---|
|  |  |  | transGlobal.SetActive(true); | 
|---|
|  |  |  | model.nowMailCategory = MailCategory.Global; | 
|---|
|  |  |  | CreateGlobalScr(model.nowMailCategory); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | protected override void OnOpen() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | togTab0.isOn = true; | 
|---|
|  |  |  | togTab1.isOn = false; | 
|---|
|  |  |  | transPersonal.SetActive(true); | 
|---|
|  |  |  | transGlobal.SetActive(false); | 
|---|
|  |  |  | model.nowMailCategory = MailCategory.Personal; | 
|---|
|  |  |  | CreatePersonalScr(model.nowMailCategory); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnRefreshPersonalCell(ScrollerDataType type, CellView cell) | 
|---|
|  |  |  | private void OnTab1(bool value) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (value) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var _cell = cell.GetComponent<MailPersonalCell>(); | 
|---|
|  |  |  | _cell?.Display(cell.index, cell); | 
|---|
|  |  |  | transPersonal.SetActive(false); | 
|---|
|  |  |  | transGlobal.SetActive(true); | 
|---|
|  |  |  | model.nowMailCategory = MailCategory.Global; | 
|---|
|  |  |  | CreateGlobalScr(model.nowMailCategory); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnRefreshGlobalCell(ScrollerDataType type, CellView cell) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var _cell = cell.GetComponent<MailGlobalCell>(); | 
|---|
|  |  |  | _cell?.Display(cell.index, cell); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | protected override void OnOpen() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | togTab0.isOn = true; | 
|---|
|  |  |  | togTab1.isOn = false; | 
|---|
|  |  |  | model.nowMailCategory = MailCategory.Personal; | 
|---|
|  |  |  | CreatePersonalScr(model.nowMailCategory); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnDeleteRead() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ConfirmCancel.ShowPopConfirm( | 
|---|
|  |  |  | Language.Get("Mail101"), | 
|---|
|  |  |  | Language.Get("Mail10"), | 
|---|
|  |  |  | (bool isOk) => | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (isOk) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | model.DeleteMail(); | 
|---|
|  |  |  | //邮件删除成功 | 
|---|
|  |  |  | SysNotifyMgr.Instance.ShowTip("Mail01"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private void OnRefreshPersonalCell(ScrollerDataType type, CellView cell) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var _cell = cell.GetComponent<MailPersonalCell>(); | 
|---|
|  |  |  | _cell?.Display(cell.index, cell); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnClaimAll() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (!model.IsCanHaveMail()) | 
|---|
|  |  |  | private void OnRefreshGlobalCell(ScrollerDataType type, CellView cell) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var _cell = cell.GetComponent<MailGlobalCell>(); | 
|---|
|  |  |  | _cell?.Display(cell.index, cell); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnDeleteRead() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ConfirmCancel.ShowPopConfirm( | 
|---|
|  |  |  | Language.Get("Mail101"), | 
|---|
|  |  |  | Language.Get("Mail10"), | 
|---|
|  |  |  | (bool isOk) => | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SysNotifyMgr.Instance.ShowTip("Mail02"); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | model.ClaimMail(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void CreatePersonalScr(MailCategory mailCategory) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | scrPersonal.Refresh(); | 
|---|
|  |  |  | var list = model.GetSortMailScrList(mailCategory); | 
|---|
|  |  |  | if (list != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | for (int i = 0; i < list.Count; i++) | 
|---|
|  |  |  | if (isOk) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | CellInfo cellInfo = new CellInfo(); | 
|---|
|  |  |  | cellInfo.infoInt1 = (int)mailCategory; | 
|---|
|  |  |  | scrPersonal.AddCell(ScrollerDataType.Header, i, cellInfo); | 
|---|
|  |  |  | model.DeleteMail(); | 
|---|
|  |  |  | //邮件删除成功 | 
|---|
|  |  |  | SysNotifyMgr.Instance.ShowTip("Mail01"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | scrPersonal.Restart(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public void CreateGlobalScr(MailCategory mailCategory) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | scrGlobal.Refresh(); | 
|---|
|  |  |  | var list = model.GetSortMailScrList(mailCategory); | 
|---|
|  |  |  | if (list != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | for (int i = 0; i < list.Count; i++) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | CellInfo cellInfo = new CellInfo(); | 
|---|
|  |  |  | cellInfo.infoInt1 = (int)mailCategory; | 
|---|
|  |  |  | scrGlobal.AddCell(ScrollerDataType.Header, i, cellInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | scrGlobal.Restart(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnUpdateMailStateChangeEvent() | 
|---|
|  |  |  | private void OnClaimAll() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (!model.IsCanHaveMail()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | RefreshScr(); | 
|---|
|  |  |  | SysNotifyMgr.Instance.ShowTip("Mail02"); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | model.ClaimMail(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnUpdateMailListEvent() | 
|---|
|  |  |  | public void CreatePersonalScr(MailCategory mailCategory) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | scrPersonal.Refresh(); | 
|---|
|  |  |  | var list = model.GetSortMailScrList(mailCategory); | 
|---|
|  |  |  | if (list != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | RefreshScr(); | 
|---|
|  |  |  | for (int i = 0; i < list.Count; i++) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | CellInfo cellInfo = new CellInfo(); | 
|---|
|  |  |  | cellInfo.infoInt1 = (int)mailCategory; | 
|---|
|  |  |  | scrPersonal.AddCell(ScrollerDataType.Header, i, cellInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | scrPersonal.Restart(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public void CreateGlobalScr(MailCategory mailCategory) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | scrGlobal.Refresh(); | 
|---|
|  |  |  | var list = model.GetSortMailScrList(mailCategory); | 
|---|
|  |  |  | if (list != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | for (int i = 0; i < list.Count; i++) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | CellInfo cellInfo = new CellInfo(); | 
|---|
|  |  |  | cellInfo.infoInt1 = (int)mailCategory; | 
|---|
|  |  |  | scrGlobal.AddCell(ScrollerDataType.Header, i, cellInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | scrGlobal.Restart(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void RefreshScr() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var list = model.GetSortMailScrList(model.nowMailCategory); | 
|---|
|  |  |  | if (list.IsNullOrEmpty()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | transNoMail.SetActive(true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | transNoMail.SetActive(false); | 
|---|
|  |  |  | scrPersonal.m_Scorller.RefreshActiveCellViews(); | 
|---|
|  |  |  | scrGlobal.m_Scorller.RefreshActiveCellViews(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private void OnUpdateMailStateChangeEvent() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | RefreshScr(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void OnUpdateMailListEvent() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | RefreshScr(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void RefreshScr() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var list = model.GetSortMailScrList(model.nowMailCategory); | 
|---|
|  |  |  | if (list.IsNullOrEmpty()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | transNoMail.SetActive(true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | transNoMail.SetActive(false); | 
|---|
|  |  |  | scrPersonal.m_Scorller.RefreshActiveCellViews(); | 
|---|
|  |  |  | scrGlobal.m_Scorller.RefreshActiveCellViews(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|