From e1a8f2f7e4d850beedeb1469610b878c1427e976 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 15 十二月 2021 09:01:53 +0800
Subject: [PATCH] 更新
---
HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs | 331 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 293 insertions(+), 38 deletions(-)
diff --git a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs
index a883705..4fb69dd 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs
@@ -1,4 +1,5 @@
锘縰sing System;
+using System.Collections.Generic;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
@@ -10,28 +11,65 @@
/// <summary>
/// 涓荤獥浣�
/// </summary>
- FrameLayout bodyView;
+ public static ArmCenterPage bodyView;
/// <summary>
/// 鑷畾涔夊竷闃插尯鍩�
/// </summary>
HorizontalScrolViewLayout customDeploymentView;
+ /// <summary>
+ ///
+ /// </summary>
+ FrameLayout alarmIconBgView;
+ //瀹夐槻鐘舵�佽儗鏅浘
+ Button btnArmTipIcon;
+ /// <summary>
+ /// 瀹夐槻璀︽姤鍥炬爣
+ /// </summary>
+ Button btnInalarmIcon;
+ /// <summary>
+ /// 褰撳墠甯冮槻鍚嶇О
+ /// </summary>
+ Button btnDefenseName;
+ /// <summary>
+ /// 鎾ら槻鍖哄煙
+ /// </summary>
+ FrameLayout disarmView;
+
+ /// <summary>
+ /// 甯冮槻鎺ュ彛
+ /// </summary>
+ SecurityAlarm InDefenseMode = null;
+ /// <summary>
+ /// 鑷畾涔夊竷闃叉帶浠跺垪琛�
+ /// </summary>
+ List<ArmDiyView> armDiyViewList = new List<ArmDiyView>();
+
+
+ Action refreshAction = null;
+
+ public ArmCenterPage(Action action)
+ {
+ refreshAction = action;
+ bodyView = this;
+ }
public ArmCenterPage()
{
bodyView = this;
}
- public void LoadPage()
+ public void LoadPage(bool addNav = true)
{
Action skipAction = () => {
};
-
- new TopViewDiv(bodyView, Language.StringByID(StringId.SecurityCenter)).LoadTopView_ArmCenter(skipAction);
-
+ if (addNav)
+ {
+ new TopViewDiv(bodyView, Language.StringByID(StringId.SecurityCenter)).LoadTopView_ArmCenter(skipAction);
+ }
VerticalScrolViewLayout contentView = new VerticalScrolViewLayout()
{
- Y = Application.GetRealHeight(64),
+ Y = addNav? Application.GetRealHeight(64):0,
Height = Application.GetRealHeight(667 - 64),
BackgroundColor = CSS_Color.MainBackgroundColor,
ScrollEnabled = false,
@@ -43,16 +81,52 @@
Height =Application.GetRealWidth(32),
});
- //瀹夐槻鐘舵�佽儗鏅浘
- Button btnArmTipIcon = new Button()
+ alarmIconBgView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(198),
Height = Application.GetRealWidth(198),
+ };
+ contentView.AddChidren(alarmIconBgView);
+
+ btnArmTipIcon = new Button()
+ {
+ //Gravity = Gravity.CenterHorizontal,
+ //Width = Application.GetRealWidth(198),
+ //Height = Application.GetRealWidth(198),
UnSelectedImagePath = "FunctionIcon/ArmCenter/NoDefenseBigIcon.png",
SelectedImagePath = "FunctionIcon/ArmCenter/InDefenseBigIcon.png",
};
- contentView.AddChidren(btnArmTipIcon);
+ alarmIconBgView.AddChidren(btnArmTipIcon);
+
+ btnInalarmIcon = new Button()
+ {
+ Width = Application.GetRealWidth(198),
+ Height = Application.GetRealWidth(198),
+ UnSelectedImagePath = "FunctionIcon/ArmCenter/InAlarmBigIcon.png",
+ };
+ btnInalarmIcon.MouseUpEventHandler = (sender, e) => {
+ if(InDefenseMode!= null)
+ {
+ Action action = () =>
+ {
+ InDefenseMode.alarm = false;
+ Control.Ins.ControlSecurity(InDefenseMode, "enable");
+ };
+ new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.ClearTheSecurityAlarmTip, action);
+
+ }
+ };
+
+ btnDefenseName = new Button()
+ {
+ Y = Application.GetRealWidth(117),
+ Height = Application.GetRealHeight(81),
+ TextAlignment = TextAlignment.Center,
+ TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+ TextColor = CSS_Color.MainBackgroundColor,
+ };
+ alarmIconBgView.AddChidren(btnDefenseName);
contentView.AddChidren(new Button()
{
@@ -61,26 +135,31 @@
#region 鎾ら槻鍖哄煙
- var disarmView = new FrameLayout()
+ Button btnDisarm;
+ disarmView = new FrameLayout()
{
Height = 0,
};
contentView.AddChidren(disarmView);
- var btnDisarm = new Button()
+ btnDisarm = new Button()
{
- Width = Application.GetRealWidth(120),
- Height = Application.GetRealHeight(44),
- BackgroundColor = CSS_Color.WarningColor,
+ Y = Application.GetRealHeight(10),
+ Width = Application.GetRealWidth(148),
+ Height = Application.GetRealHeight(40),
+ BackgroundColor = CSS_Color.MainColor,
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.MainBackgroundColor,
- Text = "鎾ら槻"
+ TextID = StringId.chefang,// = "鎾ら槻",
+ Radius = (uint)Application.GetRealWidth(20),
+ Gravity = Gravity.CenterHorizontal,
};
disarmView.AddChidren(btnDisarm);
+
btnDisarm.MouseUpEventHandler = (sender, e) => {
- if (SecurityCenter.Security.CurrentDefenseMode != null)
+ if(InDefenseMode!= null)
{
- Control.Ins.ControlSecurity(SecurityCenter.Security.CurrentDefenseMode, "disable");
+ Control.Ins.ControlSecurity(InDefenseMode, "disable");
}
};
@@ -108,8 +187,6 @@
};
contentView.AddChidren(customDeploymentView);
- iniCustomDeploymentView();
-
#endregion
@@ -117,6 +194,8 @@
{
Height = Application.GetRealHeight(20),
});
+
+
#region 鍥哄畾甯冮槻鍖哄煙
/*
@@ -163,11 +242,26 @@
Width = Application.GetRealWidth(24),
});
- #endregion
//鐏惧鎶ヨ
var disasterAlarmView = new FixedArmView("FunctionIcon/ArmCenter/DisasterAlarmIcon.png", Language.StringByID(StringId.DisasterDefense), Language.StringByID(StringId.Defense24Hour));
+ EventHandler<MouseEventArgs> disasterAlarmViewClick = (sender, e) => {
+ var disasterAlarm = FunctionList.List.securities.Find((obj) => obj.type == "all_day");
+ if (disasterAlarm == null)
+ {
+ disasterAlarm = new SecurityAlarm() { name = "alldaydefense", type = "all_day" };
+ }
+ else
+ {
+ disasterAlarm = disasterAlarm.RefeshData();
+ }
+ var addDefensePage = new AddAlarmDeploymentPage(disasterAlarm, null);
+ MainPage.BasePageView.AddChidren(addDefensePage);
+ addDefensePage.LoadPage(Language.StringByID(StringId.DisasterDefense));
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+ disasterAlarmView.SetClick(disasterAlarmViewClick);
fixedDeploymentTypeView.AddChidren(disasterAlarmView);
fixedDeploymentTypeView.AddChidren(new Button()
@@ -177,16 +271,55 @@
//闃茬洍鎶ヨ
var burglarAlarmView = new FixedArmView("FunctionIcon/ArmCenter/BurglarAlarmIcon.png", Language.StringByID(StringId.BurglarAlarm), Language.StringByID(StringId.AlarmMute));
+ EventHandler<MouseEventArgs> burglarAlarmViewClick = (sender, e) => {
+ var burglarAlarm = FunctionList.List.securities.Find((obj) => obj.type == "mute");
+ if (burglarAlarm == null)
+ {
+ burglarAlarm = new SecurityAlarm() { name = "mutedefense", type = "mute" };
+ }
+ else
+ {
+ burglarAlarm = burglarAlarm.RefeshData();
+ }
+ var addDefensePage = new AddAlarmDeploymentPage(burglarAlarm, null);
+ MainPage.BasePageView.AddChidren(addDefensePage);
+ addDefensePage.LoadPage(Language.StringByID(StringId.BurglarAlarm));
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+ disasterAlarmView.SetClick(disasterAlarmViewClick);
fixedDeploymentTypeView.AddChidren(burglarAlarmView);
*/
#endregion
+ iniCustomDeploymentView();
+ }
-
-
-
+ /// <summary>
+ /// 鍒濆鍖栨姤璀︾姸鎬�
+ /// </summary>
+ /// <param name="inAlarm"></param>
+ public void InitAlarmStatus(bool inAlarm)
+ {
+ try
+ {
+ if (inAlarm)
+ {
+ if (btnInalarmIcon.Parent == null)
+ {
+ alarmIconBgView.AddChidren(btnInalarmIcon);
+ }
+ }
+ else
+ {
+ if (btnInalarmIcon.Parent != null)
+ {
+ btnInalarmIcon.RemoveFromParent();
+ }
+ }
+ }
+ catch { }
}
/// <summary>
@@ -195,32 +328,41 @@
private void iniCustomDeploymentView()
{
customDeploymentView.RemoveAll();
-
+ armDiyViewList.Clear();
foreach (var mode in FunctionList.List.securities)
{
- var armDiyView = new ArmDiyView("FunctionIcon/ArmCenter/AddDefenseIcon.png", "FunctionIcon/ArmCenter/AddDefenseIcon.png",
- mode.name);
+ var armDiyView = new ArmDiyView("FunctionIcon/ArmCenter/AtHomeDefenseIcon.png", "FunctionIcon/ArmCenter/AtHomeDefenseIconOn.png",
+ mode.name,mode.sid);
customDeploymentView.AddChidren(armDiyView);
EventHandler<MouseEventArgs> event2 = (sender, e) =>
- {
- ShowArmDialog(mode);
- };
+ {
+ ShowArmDialog(mode);
+ };
armDiyView.SetClickEvent(event2);
+ if (mode.status == "enable")
+ {
+ armDiyView.LightingView(true);
+ InDefenseMode = mode;
+
+ ///鍒锋柊鐣岄潰
+ LoadEvent_RefreshSecurityStatus(InDefenseMode);
+ }
+ armDiyViewList.Add(armDiyView);
}
if (FunctionList.List.securities.Count < 4)
{
var view = new ArmDiyView("FunctionIcon/ArmCenter/AddDefenseIcon.png", "FunctionIcon/ArmCenter/AddDefenseIcon.png",
- Language.StringByID(StringId.Custom));
+ Language.StringByID(StringId.Custom),"customSid");
customDeploymentView.AddChidren(view);
EventHandler<MouseEventArgs> event1 = (sender, e) =>
{
- Action refreshAction = () =>
+ Action addDefenseRefreshAction = () =>
{
iniCustomDeploymentView();
};
- var addDefensePage = new AddAlarmDeploymentPage(new SecurityAlarm(), refreshAction);
+ var addDefensePage = new AddAlarmDeploymentPage(new SecurityAlarm(), addDefenseRefreshAction);
MainPage.BasePageView.AddChidren(addDefensePage);
addDefensePage.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -293,8 +435,19 @@
dialog.Show();
+ if(alarm.status == "enable")
+ {
+ btnOpen.TextColor = CSS_Color.PromptingColor1;
+ btnOpen.Text = Language.StringByID(StringId.AlreadyOpened).Trim() ;
+ }
+
btnOpen.MouseUpEventHandler = (sender, e) => {
- Control.Ins.ControlSecurity(alarm, "enable");
+ string controlStatus = alarm.status == "disable" ? "enable" : "disable";
+ new System.Threading.Thread(() =>
+ {
+ Control.Ins.ControlSecurity(alarm, controlStatus);
+ })
+ { IsBackground = true }.Start();
dialog.Close();
};
@@ -304,8 +457,17 @@
Action refreshAction = () =>
{
iniCustomDeploymentView();
+ if (InDefenseMode != null)
+ {
+ if (InDefenseMode.sid == alarm.sid)
+ {
+ Control.Ins.ControlSecurity(InDefenseMode, "disable");
+ }
+ }
};
- var armSetPage = new ArmDeploymentSettingPage(alarm,refreshAction);
+
+ alarm = alarm.RefeshData();
+ var armSetPage = new AddAlarmDeploymentPage(alarm,refreshAction);
MainPage.BasePageView.AddChidren(armSetPage);
armSetPage.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -318,7 +480,73 @@
}
+ public static void LoadEvent_RefreshSecurityStatus(SecurityAlarm updataTemp)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ try
+ {
+ if (bodyView != null)
+ {
+ bodyView.refreshAction?.Invoke();
+ //甯冮槻
+ if (updataTemp.status == "enable")
+ {
+ bodyView.InDefenseMode = updataTemp;
+ foreach (var tempView in bodyView.armDiyViewList)
+ {
+ tempView.LightingView(false);
+ if (tempView.sid == updataTemp.sid)
+ {
+ tempView.LightingView(updataTemp.status == "enable");
+ }
+ }
+ }
+ else
+ {
+ //鎾ら槻
+ if(bodyView.InDefenseMode.sid == updataTemp.sid)
+ {
+ foreach (var tempView in bodyView.armDiyViewList)
+ {
+ tempView.LightingView(false);
+ }
+ }
+ }
+
+
+ //foreach(var tempView in bodyView.armDiyViewList)
+ //{
+ // tempView.LightingView(false);
+ // if(tempView.sid == updataTemp.sid)
+ // {
+ // tempView.LightingView(updataTemp.status == "enable");
+ // }
+ //}
+
+ //娌℃湁甯冮槻鐨勬儏鍐�
+ if (bodyView.InDefenseMode ==null|| bodyView.InDefenseMode.status == "disable")
+ {
+ bodyView.disarmView.Height = 0;
+ bodyView.btnArmTipIcon.IsSelected = false;
+ bodyView.btnDefenseName.Text = "";
+ }
+ else
+ {
+ bodyView.disarmView.Height = Application.GetRealHeight(68);
+ bodyView.btnArmTipIcon.IsSelected = true;
+ bodyView.btnDefenseName.Text = bodyView.InDefenseMode.name;
+ }
+ bodyView.InitAlarmStatus(bodyView.InDefenseMode.alarm);
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"瀹夐槻鐣岄潰鏇存柊寮傚父锛歿ex.Message}");
+ }
+ });
+ }
}
@@ -329,14 +557,16 @@
{
Button btnIcon;
Button btnText;
+ public string sid;
/// <summary>
/// 鑷畾涔夊竷闃茬晫闈�
/// </summary>
/// <param name="UnSelectedIconPath">鍥剧墖璺緞</param>
/// <param name="SelectedIconPath">鍥剧墖璺緞</param>
/// <param name="Text">鏄剧ず鏂囨湰</param>
- public ArmDiyView(string UnSelectedIconPath, string SelectedIconPath, string Text)
+ public ArmDiyView(string UnSelectedIconPath, string SelectedIconPath, string Text,string inSid)
{
+ sid = inSid;
this.Width = Application.GetRealWidth(82);
this.Height = Application.GetRealWidth(80);
@@ -369,11 +599,26 @@
btnText.MouseUpEventHandler = eventHandler;
}
+ /// <summary>
+ /// 鐐逛寒鍖哄煙
+ /// </summary>
+ public void LightingView(bool seleted)
+ {
+ btnIcon.IsSelected = seleted;
+ }
+
}
+ /// <summary>
+ /// 鍥哄畾甯冮槻鎺т欢
+ /// </summary>
public class FixedArmView : FrameLayout
{
+ Button btnIcon;
+ Button btnTitle;
+ Button btnTitleTip;
+
/// <summary>
/// 鍥哄畾甯冮槻鎺т欢
/// </summary>
@@ -388,7 +633,7 @@
this.BorderColor = CSS_Color.MainColor;
this.BorderWidth = 1;
- var btnIcon = new Button()
+ btnIcon = new Button()
{
X = Application.GetRealWidth(15),
Width = Application.GetRealWidth(24),
@@ -398,7 +643,7 @@
};
this.AddChidren(btnIcon);
- var btnTitle = new Button()
+ btnTitle = new Button()
{
X = Application.GetRealWidth(55),
Width = Application.GetRealWidth(89),
@@ -411,7 +656,7 @@
};
this.AddChidren(btnTitle);
- var btnTitleTip = new Button()
+ btnTitleTip = new Button()
{
X = Application.GetRealWidth(55),
Y = Application.GetRealHeight(23),
@@ -421,10 +666,20 @@
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
Text = titleTip,
+ IsMoreLines = true,
};
this.AddChidren(btnTitleTip);
}
+
+ /// <summary>
+ /// 璁剧疆鐐瑰嚮浜嬩欢
+ /// </summary>
+ /// <param name="handler"></param>
+ public void SetClick(EventHandler<MouseEventArgs> handler)
+ {
+ btnTitleTip.MouseUpEventHandler = btnIcon.MouseUpEventHandler = handler;
+ }
}
}
--
Gitblit v1.8.0