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 | 252 ++++++++++++++++++++++++++++++++++++++------------
1 files changed, 191 insertions(+), 61 deletions(-)
diff --git a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs
index 6f1d164..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;
@@ -35,22 +36,40 @@
/// </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,
@@ -84,16 +103,20 @@
{
Width = Application.GetRealWidth(198),
Height = Application.GetRealWidth(198),
+ UnSelectedImagePath = "FunctionIcon/ArmCenter/InAlarmBigIcon.png",
};
btnInalarmIcon.MouseUpEventHandler = (sender, e) => {
- if(SecurityCenter.Ins.InDefenseMode!= null)
+ if(InDefenseMode!= null)
{
- SecurityCenter.Ins.InDefenseMode.alarm = false;
- Control.Ins.ControlSecurity(SecurityCenter.Ins.InDefenseMode, "enable");
+ Action action = () =>
+ {
+ InDefenseMode.alarm = false;
+ Control.Ins.ControlSecurity(InDefenseMode, "enable");
+ };
+ new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.ClearTheSecurityAlarmTip, action);
+
}
};
- InitAlarmStatus(SecurityCenter.Ins.InAlarm);
-
btnDefenseName = new Button()
{
@@ -127,31 +150,24 @@
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) => {
- //foreach (var temp in FunctionList.List.securities)
- //{
- // if (temp.status == "enable")
- // {
- // Control.Ins.ControlSecurity(temp, "disable");
- // break;
- // }
- //}
- if(SecurityCenter.Ins.InDefenseMode!= null)
+ if(InDefenseMode!= null)
{
- Control.Ins.ControlSecurity(SecurityCenter.Ins.InDefenseMode, "disable");
+ Control.Ins.ControlSecurity(InDefenseMode, "disable");
}
};
- #endregion
+ #endregion
- #region 鑷畾涔夊竷闃�
- //鑷畾涔夊竷闃叉爣棰�
- Button btnCustomDeploymentTitle = new Button()
+ #region 鑷畾涔夊竷闃�
+ //鑷畾涔夊竷闃叉爣棰�
+ Button btnCustomDeploymentTitle = new Button()
{
X = Application.GetRealWidth(24),
Height = Application.GetRealWidth(54),
@@ -178,6 +194,8 @@
{
Height = Application.GetRealHeight(20),
});
+
+
#region 鍥哄畾甯冮槻鍖哄煙
/*
@@ -224,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()
@@ -238,29 +271,52 @@
//闃茬洍鎶ヨ
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
-
-
- ///鍒锋柊鐣岄潰
- LoadEvent_RefreshSecurityStatus();
+ iniCustomDeploymentView();
}
+ /// <summary>
+ /// 鍒濆鍖栨姤璀︾姸鎬�
+ /// </summary>
+ /// <param name="inAlarm"></param>
public void InitAlarmStatus(bool inAlarm)
{
try
{
if (inAlarm)
{
- alarmIconBgView.AddChidren(btnInalarmIcon);
+ if (btnInalarmIcon.Parent == null)
+ {
+ alarmIconBgView.AddChidren(btnInalarmIcon);
+ }
}
else
{
- btnInalarmIcon.RemoveFromParent();
+ if (btnInalarmIcon.Parent != null)
+ {
+ btnInalarmIcon.RemoveFromParent();
+ }
}
}
catch { }
@@ -272,11 +328,11 @@
private void iniCustomDeploymentView()
{
customDeploymentView.RemoveAll();
-
+ armDiyViewList.Clear();
foreach (var mode in FunctionList.List.securities)
{
var armDiyView = new ArmDiyView("FunctionIcon/ArmCenter/AtHomeDefenseIcon.png", "FunctionIcon/ArmCenter/AtHomeDefenseIconOn.png",
- mode.name);
+ mode.name,mode.sid);
customDeploymentView.AddChidren(armDiyView);
EventHandler<MouseEventArgs> event2 = (sender, e) =>
{
@@ -286,22 +342,27 @@
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;
@@ -381,13 +442,12 @@
}
btnOpen.MouseUpEventHandler = (sender, e) => {
- if (alarm.status == "disable")
+ string controlStatus = alarm.status == "disable" ? "enable" : "disable";
+ new System.Threading.Thread(() =>
{
- Control.Ins.ControlSecurity(alarm, "enable");
- }else
- {
- Control.Ins.ControlSecurity(alarm, "disable");
- }
+ Control.Ins.ControlSecurity(alarm, controlStatus);
+ })
+ { IsBackground = true }.Start();
dialog.Close();
};
@@ -397,7 +457,16 @@
Action refreshAction = () =>
{
iniCustomDeploymentView();
+ if (InDefenseMode != null)
+ {
+ if (InDefenseMode.sid == alarm.sid)
+ {
+ Control.Ins.ControlSecurity(InDefenseMode, "disable");
+ }
+ }
};
+
+ alarm = alarm.RefeshData();
var armSetPage = new AddAlarmDeploymentPage(alarm,refreshAction);
MainPage.BasePageView.AddChidren(armSetPage);
armSetPage.LoadPage();
@@ -411,28 +480,70 @@
}
- public static void LoadEvent_RefreshSecurityStatus()
+ public static void LoadEvent_RefreshSecurityStatus(SecurityAlarm updataTemp)
{
Application.RunOnMainThread(() =>
{
- if (bodyView != null)
+ try
{
- bodyView.iniCustomDeploymentView();
- bodyView.disarmView.Height = 0;
- bodyView.btnArmTipIcon.IsSelected = false;
- bodyView.btnDefenseName.Text = "";
- foreach (var temp in FunctionList.List.securities)
+ if (bodyView != null)
{
- if (temp.status == "enable")
- {
- bodyView.disarmView.Height = Application.GetRealHeight(68);
- bodyView.btnArmTipIcon.IsSelected = true;
- bodyView.btnDefenseName.Text = temp.name;
+ bodyView.refreshAction?.Invoke();
- bodyView.InitAlarmStatus(temp.alarm);
- break;
+ //甯冮槻
+ 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}");
}
});
}
@@ -446,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);
@@ -497,8 +610,15 @@
}
+ /// <summary>
+ /// 鍥哄畾甯冮槻鎺т欢
+ /// </summary>
public class FixedArmView : FrameLayout
{
+ Button btnIcon;
+ Button btnTitle;
+ Button btnTitleTip;
+
/// <summary>
/// 鍥哄畾甯冮槻鎺т欢
/// </summary>
@@ -513,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),
@@ -523,7 +643,7 @@
};
this.AddChidren(btnIcon);
- var btnTitle = new Button()
+ btnTitle = new Button()
{
X = Application.GetRealWidth(55),
Width = Application.GetRealWidth(89),
@@ -536,7 +656,7 @@
};
this.AddChidren(btnTitle);
- var btnTitleTip = new Button()
+ btnTitleTip = new Button()
{
X = Application.GetRealWidth(55),
Y = Application.GetRealHeight(23),
@@ -546,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