using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
namespace Shared.Phone
|
{
|
/// <summary>
|
/// 消息中心控件
|
/// </summary>
|
public class MessageManagementControl : ButtonBase
|
{
|
/// <summary>
|
/// 消息中心控件
|
/// </summary>
|
public MessageManagementControl()
|
{
|
this.Height = this.GetPictrueRealSize(69);
|
this.Width = this.GetPictrueRealSize(69);
|
this.UnSelectedImagePath = "Item/MessageManagement.png";
|
this.SelectedImagePath = "Item/MessageManagementSelected.png";
|
|
//如果住宅为虚拟住宅,则此功能无效
|
if (Common.Config.Instance.Home.IsVirtually == false)
|
{
|
this.ButtonClickEvent += (sender, e) =>
|
{
|
//点击后,清空状态
|
this.IsSelected = false;
|
HdlControlResourse.HadNewMessage = false;
|
|
var form = new UserCenter.UserMain.MessageManagementForm();
|
form.AddForm();
|
};
|
//添加缓存
|
HdlControlResourse.listMessageManaContr.Add(this);
|
//刷新状态
|
this.RefreshStatu();
|
}
|
}
|
|
/// <summary>
|
/// 刷新状态(也就是如果数据有更新的话,会显示红色角标)
|
/// </summary>
|
public void RefreshStatu()
|
{
|
//如果住宅为虚拟住宅,则此功能无效
|
if (Common.Config.Instance.Home.IsVirtually == true)
|
{
|
return;
|
}
|
|
if (HdlControlResourse.HadNewMessage == true)
|
{
|
//如果已经有新消息过来了,就不用读了
|
HdlControlResourse.ReadMessageAgain = false;
|
this.IsSelected = true;
|
return;
|
}
|
if (HdlControlResourse.ReadMessageAgain == false)
|
{
|
//无需再次读取
|
return;
|
}
|
HdlControlResourse.ReadMessageAgain = false;
|
|
HdlThreadLogic.Current.RunThread(() =>
|
{
|
//获取消息列表
|
string nowHomeId = Common.Config.Instance.Home.Id;
|
var listMsg = HdlMessageLogic.Current.GetListMessageFromDb();
|
if (listMsg == null)
|
{
|
//出错,需要重新读取
|
HdlControlResourse.ReadMessageAgain = true;
|
return;
|
}
|
if (nowHomeId != Common.Config.Instance.Home.Id)
|
{
|
//检测:切换了住宅??
|
return;
|
}
|
for (int i = 0; i < listMsg.Count; i++)
|
{
|
if (listMsg[i].IsRead == false)
|
{
|
if (listMsg[i].MessageTitle == "/DoorLock/DoorLockOperatingEventNotificationCommand")
|
{
|
//暂时不处理这个主题
|
continue;
|
}
|
HdlControlResourse.HadNewMessage = true;
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
//有新消息
|
this.IsSelected = true;
|
}, ShowErrorMode.NO);
|
break;
|
}
|
}
|
});
|
}
|
|
/// <summary>
|
/// 控件移除
|
/// </summary>
|
public override void RemoveFromParent()
|
{
|
HdlControlResourse.listMessageManaContr.Remove(this);
|
|
base.RemoveFromParent();
|
}
|
}
|
}
|