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
|
{
|
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;
|
|
}
|
|
}
|