using System; using System.Collections.Generic; using System.Text; namespace Shared.Phone.UserCenter { /// /// 消息中心控件 /// public class MessageManagementControl : ButtonBase { /// /// 消息中心控件 /// public MessageManagementControl() { this.Height = Application.GetMinRealAverage(69); this.Width = Application.GetMinRealAverage(69); this.UnSelectedImagePath = "Item/MessageManagement.png"; this.SelectedImagePath = "Item/MessageManagementSelected.png"; this.ButtonClickEvent += (sender, e) => { //点击后,清空状态 this.IsSelected = false; ControlCommonResourse.HadNewMessage = false; var form = new UserMain.MessageManagementForm(); form.AddForm(); }; //添加缓存 ControlCommonResourse.listMessageManaContr.Add(this); //刷新状态 this.RefreshStatu(); } /// /// 刷新状态(也就是如果数据有更新的话,会显示红色角标) /// public void RefreshStatu() { if (ControlCommonResourse.HadNewMessage == true) { //如果已经有新消息过来了,就不用读了 ControlCommonResourse.ReadMessageAgain = false; this.IsSelected = true; return; } if (ControlCommonResourse.ReadMessageAgain == false) { //无需再次读取 return; } ControlCommonResourse.ReadMessageAgain = false; HdlThreadLogic.Current.RunThread(async () => { string nowHomeId = Common.Config.Instance.Home.Id; var result = await UserCenterLogic.GetByteResponseDataByRequestHttps("ZigbeeUsers/GetPushMessageRecord", false, "", new List() { "NotSetAgain" }); if (result == null) { //出错,需要重新读取 ControlCommonResourse.ReadMessageAgain = true; return; } if (nowHomeId != Common.Config.Instance.Home.Id) { //检测:切换了住宅?? return; } var strdata = System.Text.Encoding.UTF8.GetString(result); var revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject(strdata); var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.ResponseData.ToString()); for (int i = 0; i < dataInfo.Count; i++) { if (dataInfo[i].IsRead == 0) { Application.RunOnMainThread(() => { //有新消息 this.IsSelected = true; }); break; } } }); } /// /// 控件移除 /// public override void RemoveFromParent() { ControlCommonResourse.listMessageManaContr.Remove(this); base.RemoveFromParent(); } } }