using System.Collections.Generic; using ET; using FairyGUI; using UI.Poem; using UnityEngine; namespace GFGGame { public class PoemPhotoView : BaseWindow { private UI_PoemPhotoUI _ui; private List _listDelete = new List(); private List _photoInfos; private int _sourceType = 0; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_PoemPhotoUI.PACKAGE_NAME; _ui = UI_PoemPhotoUI.Create(); this.viewCom = _ui.target; isfullScreen = true; _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("xc_bjbj"); _ui.m_list.SetVirtual(); _ui.m_list.itemRenderer = RenderListItem; _ui.m_btnback.onClick.Add(OnBtnBackClick); _ui.m_btnDelete.onClick.Add(OnBtnDeleteClick); _ui.m_btnConfirmDelete.target.onClick.Add(OnBtnConfirmDeleteClick); _ui.m_c1.onChanged.Add(OnBtnTabChange); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.POEM_PHOTO_INFOS_CHANGE, OnBtnTabChange); } protected override void OnShown() { base.OnShown(); } protected override void OnHide() { base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.POEM_PHOTO_INFOS_CHANGE, OnBtnTabChange); } private void OnBtnBackClick() { if (_ui.m_c2.selectedIndex == 1) { _ui.m_c2.selectedIndex = 0; } else { ViewManager.GoBackFrom(typeof(PoemPhotoView).FullName); if (_ui.m_list.numItems > 0) _ui.m_list.ScrollToView(0); _ui.m_c1.selectedIndex = 0; } _ui.m_c2.selectedIndex = 0; _listDelete.Clear(); } private void OnBtnDeleteClick() { if (_ui.m_list.numItems == 0) { PromptController.Instance.ShowFloatTextPrompt("暂无照片可删除"); return; } _ui.m_c2.selectedIndex = 1; } private void OnBtnConfirmDeleteClick() { AlertUI.Show("删除后的照片无法恢复,是否确认删除?") .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) => { PoemPhotoSProxy.ReqRemovedPhoto(_listDelete, _sourceType).Coroutine(); }); } private void OnBtnTabChange() { _ui.m_c2.selectedIndex = 0; _listDelete.Clear(); if (_ui.m_list.numItems > 0) _ui.m_list.ScrollToView(0); UpdateView(); } private void UpdateView() { if (_ui.m_c1.selectedIndex == 0) { _photoInfos = PoemPhotoDataManager.Instance.PersonalPhotoInfos; _sourceType = (int)PictureSourceType.PersonalAlbum; } else { _photoInfos = PoemPhotoDataManager.Instance.WsqsPhotoInfos; _sourceType = (int)PictureSourceType.WanShuiQianShan; } _ui.m_list.numItems = _photoInfos.Count; _ui.m_txtCount.text = string.Format("({0}/{1})", _photoInfos.Count, GlobalCfgArray.globalCfg.maxPhotoCount); _ui.m_btnConfirmDelete.m_txtTitle.text = string.Format("删除({0}/{1})", _listDelete.Count, _photoInfos.Count); } private void RenderListItem(int index, GObject obj) { UI_ListPhotoItem item = UI_ListPhotoItem.Proxy(obj); item.m_imgSelect.visible = _ui.m_c2.selectedIndex == 1 && _listDelete.IndexOf(_photoInfos[index].PictureId) >= 0; item.m_comIcon.m_loaIcon.texture = PoemPhotoDataManager.Instance.BytesToTexture2D(_photoInfos[index].Bytes); item.m_txtTime.text = TimeUtil.FormattingTime1(_photoInfos[index].CreationTime); if (item.m_btnLock.target.data == null) { item.m_btnLock.target.onClick.Add(OnBtnLockClick); } item.m_btnLock.target.data = index; if (item.m_btnUp.target.data == null) { item.m_btnUp.target.onClick.Add(OnBtnUpClick); } item.m_btnUp.target.data = index; if (item.m_comIcon.target.data == null) { item.m_comIcon.target.onClick.Add(OnLoaIconClick); } UI_ListPhotoItem.ProxyEnd(); } private void OnLoaIconClick(EventContext context) { GObject obj = context.sender as GObject; int index = (int)obj.data; PoemPhotoData photoData = _photoInfos[index]; if (_ui.m_c2.selectedIndex == 0) { ViewManager.Show(new object[] { index, _sourceType }, new object[] { typeof(PoemView).FullName, this.viewData }); } else if (_ui.m_c2.selectedIndex == 1) { long id = photoData.PictureId; UI_ListPhotoItem item = UI_ListPhotoItem.Proxy(obj.parent); item.m_imgSelect.visible = !item.m_imgSelect.visible; if (item.m_imgSelect.visible) { _listDelete.Add(id); } else { _listDelete.Remove(id); } UI_ListPhotoItem.ProxyEnd(); _ui.m_btnConfirmDelete.m_txtTitle.text = string.Format("删除({0}/{1})", _listDelete.Count, _photoInfos.Count); } } private void OnBtnLockClick(EventContext context) { GObject item = context.sender as GObject; int index = (int)item.data; PoemPhotoData photoData = _photoInfos[index]; if (photoData.LockingStatus == false) { AlertUI.Show("是否确认锁定此照片?", "(锁住的照片无法被删除)") .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) => { PoemPhotoSProxy.ReqChangeLockingState(photoData.PictureId, true, _sourceType).Coroutine(); }); } else { AlertUI.Show("是否确认解锁此照片?", "(解锁后的照片可随意删除)") .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) => { PoemPhotoSProxy.ReqChangeLockingState(photoData.PictureId, false, _sourceType).Coroutine(); }); } } private void OnBtnUpClick(EventContext context) { GObject item = context.sender as GObject; int index = (int)item.data; PoemPhotoData photoData = _photoInfos[index]; if (photoData.ToppingStatus == false) { AlertUI.Show("是否确认置顶此照片?") .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) => { PoemPhotoSProxy.ReqChangeToppingState(photoData.PictureId, true, _sourceType).Coroutine(); }); } else { AlertUI.Show("是否确认取消置顶此照片?") .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) => { PoemPhotoSProxy.ReqChangeToppingState(photoData.PictureId, false, _sourceType).Coroutine(); }); } } } }