New file |
| | |
| | | using System; |
| | | using Shared; |
| | | using HDL_ON.UI.CSS; |
| | | using System.Collections.Generic; |
| | | using System.Threading; |
| | | using HDL_ON.DAL.Server; |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | /// <summary> |
| | | /// 信息中心页面 |
| | | /// </summary> |
| | | public class MessageCenterPage : FrameLayout |
| | | { |
| | | FrameLayout bodyView; |
| | | /// <summary> |
| | | /// 当前 |
| | | /// </summary> |
| | | VerticalScrolViewLayout bodyScrolView; |
| | | /// <summary> |
| | | /// 内容为空提示View |
| | | /// </summary> |
| | | EmptyTipView emptyTipView; |
| | | |
| | | /// <summary> |
| | | /// menuView |
| | | /// </summary> |
| | | FrameLayout menuView; |
| | | MenuButton allMenuButton; |
| | | MenuButton shareMenuButton; |
| | | MenuButton alarmMenuButton; |
| | | MenuButton systemMenuButton; |
| | | FrameLayout messageView; |
| | | |
| | | /// <summary> |
| | | /// 显示的消息类型 |
| | | /// 1全部 2分享与功能 3报警类 4系统信息 |
| | | /// </summary> |
| | | int showMesType = 1; |
| | | /// <summary> |
| | | /// 推送消息列表 |
| | | /// </summary> |
| | | List<PushMessageInfo> PushMessageInfoList = new List<PushMessageInfo>(); |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public MessageCenterPage() |
| | | { |
| | | bodyView = this; |
| | | BackgroundColor = CSS_Color.BackgroundColor; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public void LoadPage() |
| | | { |
| | | new TopViewDiv(bodyView, Language.StringByID(StringId.MessageCenter)).LoadTopView(); |
| | | |
| | | AddTopMenuView(); |
| | | AddMessageView(); |
| | | MenuButtonSelect(1); |
| | | //TestLoad(); |
| | | GetPushMessageList(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 顶部菜单选项 |
| | | /// </summary> |
| | | void AddTopMenuView() |
| | | { |
| | | |
| | | menuView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Height = Application.GetRealWidth(117), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | bodyView.AddChidren(menuView); |
| | | |
| | | |
| | | #region 全部按钮 |
| | | allMenuButton = new MenuButton() |
| | | { |
| | | X = Application.GetRealWidth(15), |
| | | Y = Application.GetRealWidth(16), |
| | | }; |
| | | menuView.AddChidren(allMenuButton); |
| | | allMenuButton.ImageButton.SelectedImagePath = "Collection/MesCenter/AllOn.png"; |
| | | allMenuButton.ImageButton.UnSelectedImagePath = "Collection/MesCenter/All.png"; |
| | | allMenuButton.TextButton.TextID = StringId.All; |
| | | Action allAction = () => |
| | | { |
| | | MenuButtonSelect(1); |
| | | }; |
| | | allMenuButton.SelectAction = allAction; |
| | | #endregion |
| | | |
| | | #region 分享与功能 |
| | | shareMenuButton = new MenuButton() |
| | | { |
| | | X = allMenuButton.Right, |
| | | Y = Application.GetRealWidth(16), |
| | | }; |
| | | menuView.AddChidren(shareMenuButton); |
| | | shareMenuButton.ImageButton.SelectedImagePath = "Collection/MesCenter/ShareOn.png"; |
| | | shareMenuButton.ImageButton.UnSelectedImagePath = "Collection/MesCenter/Share.png"; |
| | | shareMenuButton.TextButton.TextID = StringId.SharingAndFunctionality; |
| | | Action shateAction = () => |
| | | { |
| | | MenuButtonSelect(2); |
| | | }; |
| | | shareMenuButton.SelectAction = shateAction; |
| | | #endregion |
| | | |
| | | #region 报警类 |
| | | alarmMenuButton = new MenuButton() |
| | | { |
| | | X = shareMenuButton.Right, |
| | | Y = Application.GetRealWidth(16), |
| | | }; |
| | | menuView.AddChidren(alarmMenuButton); |
| | | alarmMenuButton.ImageButton.SelectedImagePath = "Collection/MesCenter/AlarmOn.png"; |
| | | alarmMenuButton.ImageButton.UnSelectedImagePath = "Collection/MesCenter/Alarm.png"; |
| | | alarmMenuButton.TextButton.TextID = StringId.AlarmType; |
| | | Action alarmAction = () => |
| | | { |
| | | MenuButtonSelect(3); |
| | | }; |
| | | alarmMenuButton.SelectAction = alarmAction; |
| | | #endregion |
| | | |
| | | #region 系统信息 |
| | | systemMenuButton = new MenuButton() |
| | | { |
| | | X = alarmMenuButton.Right, |
| | | Y = Application.GetRealWidth(16), |
| | | }; |
| | | menuView.AddChidren(systemMenuButton); |
| | | systemMenuButton.ImageButton.SelectedImagePath = "Collection/MesCenter/SystemOn.png"; |
| | | systemMenuButton.ImageButton.UnSelectedImagePath = "Collection/MesCenter/System.png"; |
| | | systemMenuButton.TextButton.TextID = StringId.SystemMessage; |
| | | Action systemAction = () => |
| | | { |
| | | MenuButtonSelect(4); |
| | | }; |
| | | systemMenuButton.SelectAction = systemAction; |
| | | #endregion |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 中间信息内容 |
| | | /// </summary> |
| | | void AddMessageView() |
| | | { |
| | | int messageViewY = menuView.Bottom + Application.GetRealWidth(8); |
| | | int messageViewHeight = bodyView.Height - messageViewY; |
| | | messageView = new FrameLayout() |
| | | { |
| | | Y = messageViewY, |
| | | Height = messageViewHeight, |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | bodyView.AddChidren(messageView); |
| | | |
| | | bodyScrolView = new VerticalScrolViewLayout() |
| | | { |
| | | Height = messageViewHeight, |
| | | }; |
| | | messageView.AddChidren(bodyScrolView); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="selectId">1全部 2分享与功能 3报警类 4系统信息</param> |
| | | void MenuButtonSelect(int selectId) |
| | | { |
| | | showMesType = selectId; |
| | | |
| | | if (selectId == 1) |
| | | { |
| | | allMenuButton.IsSelected = true; |
| | | shareMenuButton.IsSelected = false; |
| | | alarmMenuButton.IsSelected = false; |
| | | systemMenuButton.IsSelected = false; |
| | | |
| | | } |
| | | else if (selectId == 2) |
| | | { |
| | | allMenuButton.IsSelected = false; |
| | | shareMenuButton.IsSelected = true; |
| | | alarmMenuButton.IsSelected = false; |
| | | systemMenuButton.IsSelected = false; |
| | | |
| | | } |
| | | else if (selectId == 3) |
| | | { |
| | | allMenuButton.IsSelected = false; |
| | | shareMenuButton.IsSelected = false; |
| | | alarmMenuButton.IsSelected = true; |
| | | systemMenuButton.IsSelected = false; |
| | | } |
| | | else if (selectId == 4) |
| | | { |
| | | allMenuButton.IsSelected = false; |
| | | shareMenuButton.IsSelected = false; |
| | | alarmMenuButton.IsSelected = false; |
| | | systemMenuButton.IsSelected = true; |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 添加内容为空提示页面 |
| | | /// </summary> |
| | | void AddEmptyTipView() |
| | | { |
| | | emptyTipView = new EmptyTipView() |
| | | { |
| | | Gravity = Gravity.Center |
| | | }; |
| | | messageView.AddChidren(emptyTipView); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载报警信息RowView |
| | | /// </summary> |
| | | /// <param name="VerticalScrolViewMiddle"></param> |
| | | /// <param name="pushMessageInfo"></param> |
| | | void AddRowView(VerticalScrolViewLayout VerticalScrolViewMiddle, PushMessageInfo pushMessageInfo) |
| | | { |
| | | var rowView = new RowLayout() |
| | | { |
| | | Height = Application.GetRealHeight(65), |
| | | LineColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | VerticalScrolViewMiddle.AddChidren(rowView); |
| | | |
| | | //标题 |
| | | var btnTilte = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealHeight(12), |
| | | Width = Application.GetRealWidth(320), |
| | | Height = Application.GetRealHeight(20), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | Text = pushMessageInfo.messageTitle |
| | | }; |
| | | rowView.AddChidren(btnTilte); |
| | | |
| | | //副标题 |
| | | var btnSubtitle = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnTilte.Bottom + Application.GetRealHeight(4), |
| | | Width = Application.GetRealWidth(240), |
| | | Height = Application.GetRealHeight(17), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | Text = pushMessageInfo.messageContent |
| | | }; |
| | | rowView.AddChidren(btnSubtitle); |
| | | |
| | | //日期 |
| | | var btnDatetime = new Button() |
| | | { |
| | | X = Application.GetRealWidth(259), |
| | | Y = btnTilte.Bottom + Application.GetRealHeight(4), |
| | | Width = Application.GetRealWidth(100), |
| | | Height = Application.GetRealHeight(17), |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | Text = pushMessageInfo.createTime |
| | | }; |
| | | rowView.AddChidren(btnDatetime); |
| | | |
| | | var lineView = new LineView(rowView.Height); |
| | | rowView.AddChidren(lineView); |
| | | |
| | | //删除按钮 |
| | | var deleteBtn = new Button() |
| | | { |
| | | TextID = StringId.Del, |
| | | BackgroundColor = CSS_Color.AuxiliaryColor2, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | }; |
| | | rowView.AddRightView(deleteBtn); |
| | | deleteBtn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | rowView.RemoveFromParent(); |
| | | }; |
| | | |
| | | //EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | | //{ |
| | | //}; |
| | | |
| | | //btnTilte.MouseUpEventHandler = eventHandler; |
| | | //btnSubtitle.MouseUpEventHandler = eventHandler; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载年份标题 |
| | | /// </summary> |
| | | /// <param name="VerticalScrolViewMiddle"></param> |
| | | /// <param name="yearStr"></param> |
| | | void AddYearRowView(VerticalScrolViewLayout VerticalScrolViewMiddle, string yearStr) |
| | | { |
| | | var bgView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(57), |
| | | }; |
| | | VerticalScrolViewMiddle.AddChidren(bgView); |
| | | |
| | | var yearBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealHeight(16), |
| | | Width = Application.GetRealWidth(320), |
| | | Height = Application.GetRealHeight(33), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel, |
| | | IsBold = true, |
| | | Text = yearStr |
| | | }; |
| | | bgView.AddChidren(yearBtn); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | void GetPushMessageList() |
| | | { |
| | | var waitPage = new Loading(); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | bodyScrolView.RemoveAll(); |
| | | PushMessageInfoList.Clear(); |
| | | |
| | | new Thread(() => |
| | | { |
| | | try |
| | | { |
| | | var result = new HttpServerRequest().PushSerivceGetPushmessagelist(); |
| | | if (result.Code == StateCode.SUCCESS) |
| | | { |
| | | PushMessageInfoList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PushMessageInfo>>(result.Data.ToString()); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (PushMessageInfoList != null && PushMessageInfoList.Count > 0) |
| | | { |
| | | |
| | | ParseAndDisplayPushList(); |
| | | } |
| | | else |
| | | { |
| | | AddEmptyTipView(); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | AddEmptyTipView(); |
| | | }); |
| | | IMessageCommon.Current.ShowErrorInfoAlter(result.Code); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.RemoveFromParent(); |
| | | waitPage = null; |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 解析和显示推送消息 |
| | | /// </summary> |
| | | void ParseAndDisplayPushList() |
| | | { |
| | | // |
| | | if (showMesType == 1) |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | | #region 测试 |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | void TestLoad() |
| | | { |
| | | PushMessageInfoList.Add(new PushMessageInfo() |
| | | { |
| | | messageTitle = "报警信息", |
| | | messageContent = "门锁被打开", |
| | | createTime = "11月30 10:50", |
| | | }); |
| | | |
| | | PushMessageInfoList.Add(new PushMessageInfo() |
| | | { |
| | | messageTitle = "报警信息1", |
| | | messageContent = "门锁被打开", |
| | | createTime = "11月30 11:50", |
| | | }); |
| | | |
| | | PushMessageInfoList.Add(new PushMessageInfo() |
| | | { |
| | | messageTitle = "报警信息2", |
| | | messageContent = "门锁被打开", |
| | | createTime = "11月30 12:50", |
| | | }); |
| | | |
| | | AddYearRowView(bodyScrolView, "2020年"); |
| | | foreach (var info in PushMessageInfoList) |
| | | { |
| | | AddRowView(bodyScrolView, info); |
| | | } |
| | | |
| | | AddYearRowView(bodyScrolView, "2019年"); |
| | | foreach (var info in PushMessageInfoList) |
| | | { |
| | | AddRowView(bodyScrolView, info); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 推送消息类型 |
| | | /// </summary> |
| | | [System.Serializable] |
| | | public class PushMessageInfo |
| | | { |
| | | /// <summary> |
| | | /// 记录Id |
| | | /// </summary> |
| | | public string id; |
| | | /// <summary> |
| | | /// 是否已读 |
| | | /// </summary> |
| | | public bool isRead; |
| | | /// <summary> |
| | | /// 消息内容 |
| | | /// </summary> |
| | | public string messageContent; |
| | | /// <summary> |
| | | /// 扩展数据 |
| | | /// </summary> |
| | | public string messageExpand; |
| | | /// <summary> |
| | | /// 消息主题 |
| | | /// </summary> |
| | | public string messageTitle; |
| | | /// <summary> |
| | | /// 消息类型;0:提示;1:报警;2:丰林可是对讲呼叫;3:强制下线推送 |
| | | /// </summary> |
| | | public string messageType; |
| | | /// <summary> |
| | | /// 推送Token记录Id |
| | | /// </summary> |
| | | public string pushId; |
| | | /// <summary> |
| | | /// 推送类型;0:默认;1:报警;2:提示;3:新闻;4:推荐; |
| | | /// </summary> |
| | | public string pushType; |
| | | /// <summary> |
| | | /// 推送时间 |
| | | /// </summary> |
| | | public string createTime; |
| | | |
| | | } |
| | | |
| | | } |