From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码
---
ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs | 130 +++++++++++++++++++++----------------------
1 files changed, 64 insertions(+), 66 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
index 76d6357..ea700d3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
@@ -15,7 +15,7 @@
/// <summary>
/// 妗屽竷鎺т欢锛岀敤浜庡瓨鏀炬垨鑰呯Щ闄ゅ姛鑳藉潡鎺т欢(Tab鎺т欢涓撶敤)
/// </summary>
- private FrameLayout frameLayoutDraw = null;
+ private NormalFrameLayout frameLayoutDraw = null;
/// <summary>
/// 瀹夐槻鎺т欢
/// </summary>
@@ -73,17 +73,28 @@
bodyFrameLayout.AddChidren(frameBack);
//妗屽竷鎺т欢
- frameLayoutDraw = new FrameLayout();
+ frameLayoutDraw = new NormalFrameLayout();
frameLayoutDraw.Y = Application.GetRealHeight(181);
frameLayoutDraw.Height = frameBack.Height - Application.GetRealHeight(181);
frameBack.AddChidren(frameLayoutDraw);
+ //璁$畻瀹藉害浣跨敤
+ var btnTemp = new ButtonBase();
+ btnTemp.TextSize = 16;
+ btnTemp.IsBold = true;
+
+ btnTemp.TextID = R.MyInternationalizationString.uSecurityLog;
+ int frameLogWidth = btnTemp.GetRealWidthByText() + Application.GetRealWidth(30);
+
+ btnTemp.TextID = R.MyInternationalizationString.uSensorStatu;
+ int frameSensorWidth = btnTemp.GetRealWidthByText() + Application.GetRealWidth(30);
+
//瀹夐槻璁板綍(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�)
- var frameLog = new FrameLayoutControl();
+ var frameLog = new FrameLayoutStatuControl();
frameLog.UseClickStatu = false;
frameLog.Height = Application.GetRealHeight(123);
- frameLog.Width = Application.GetRealWidth(273);
- frameLog.X = Application.GetRealWidth(259);
+ frameLog.Width = frameLogWidth;
+ frameLog.X = (frameBack.Width - frameLogWidth - frameSensorWidth) / 2;
frameLog.Y = Application.GetRealHeight(58);
frameBack.AddChidren(frameLog);
//鏍囬
@@ -92,21 +103,22 @@
btnLog.TextAlignment = TextAlignment.Center;
btnLog.TextID = R.MyInternationalizationString.uSecurityLog;
btnLog.TextColor = UserCenterColor.Current.TextGrayColor3;
- frameLog.AddChidren(btnLog, ChidrenBindMode.BindEventOnly);
+ frameLog.AddChidren(btnLog, ChidrenBindMode.BindEvent);
//搴曠嚎
var btnLogLine = new NormalViewControl(40, 10, true);
btnLogLine.Y = Application.GetRealHeight(86);
- btnLogLine.X = btnLog.X + btnLog.Width / 2 - Application.GetRealWidth(40) / 2;
+ //btnLogLine.X = btnLog.X + btnLog.Width / 2 - Application.GetRealWidth(40) / 2;
+ btnLogLine.Gravity = Gravity.CenterHorizontal;
btnLogLine.Radius = (uint)Application.GetRealHeight(10) / 2;
btnLogLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
- frameLog.AddChidren(btnLogLine, ChidrenBindMode.BindEventOnly);
+ frameLog.AddChidren(btnLogLine, ChidrenBindMode.BindEvent);
btnLogLine.Visible = false;
//浼犳劅鍣ㄧ姸鎬�(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�)
- var frameSensor = new FrameLayoutControl();
+ var frameSensor = new FrameLayoutStatuControl();
frameSensor.UseClickStatu = false;
frameSensor.Height = frameLog.Height;
- frameSensor.Width = frameLog.Width;
+ frameSensor.Width = frameSensorWidth;
frameSensor.X = frameLog.Right;
frameSensor.Y = frameLog.Y;
frameBack.AddChidren(frameSensor);
@@ -118,14 +130,15 @@
btnSensor.TextAlignment = TextAlignment.Center;
btnSensor.TextColor = UserCenterColor.Current.TextColor2;
btnSensor.IsBold = true;
- frameSensor.AddChidren(btnSensor, ChidrenBindMode.BindEventOnly);
+ frameSensor.AddChidren(btnSensor, ChidrenBindMode.BindEvent);
//搴曠嚎
var btnSensorLine = new NormalViewControl(40, 10, true);
btnSensorLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
btnSensorLine.Y = btnLogLine.Y;
- btnSensorLine.X = btnSensor.X + btnSensor.Width / 2 - Application.GetRealWidth(40) / 2;
+ //btnSensorLine.X = btnSensor.X + btnSensor.Width / 2 - Application.GetRealWidth(40) / 2;
+ btnSensorLine.Gravity = Gravity.CenterHorizontal;
btnSensorLine.Radius = (uint)Application.GetRealHeight(10) / 2;
- frameSensor.AddChidren(btnSensorLine, ChidrenBindMode.BindEventOnly);
+ frameSensor.AddChidren(btnSensorLine, ChidrenBindMode.BindEvent);
//瀹夐槻璁板綍Tab
frameLog.ButtonClickEvent += (sender, e) =>
@@ -253,6 +266,8 @@
UserCenterResourse.ResidenceOption.SafetyShortcut = false;
UserCenterResourse.ResidenceOption.Save();
btnShortCut.IsSelected = false;
+ //鍙栨秷涓婚〉鐨勩�屽畨闃层�嶆嵎寰勭殑璇�,涓婚〉闇�瑕侀噸鏂板埛鏂�
+ UserView.UserPage.Instance.RefreshAllForm = true;
});
}
else
@@ -263,6 +278,8 @@
UserCenterResourse.ResidenceOption.SafetyShortcut = true;
UserCenterResourse.ResidenceOption.Save();
btnShortCut.IsSelected = true;
+ //鍒涘缓涓婚〉鐨勩�屽畨闃层�嶆嵎寰勭殑璇�,涓婚〉闇�瑕侀噸鏂板埛鏂�
+ UserView.UserPage.Instance.RefreshAllForm = true;
});
}
};
@@ -311,7 +328,7 @@
this.CloseProgressBar();
//鏁版嵁鍒濆鍖栧畬鎴愬悗
- Application.RunOnMainThread(() =>
+ HdlThreadLogic.Current.RunMain(() =>
{
//鍒濆鍖栧ご閮ㄧ殑閭d笁涓浘鏍�
garrisonControl = new SafetyMasterControl();
@@ -454,7 +471,7 @@
//鑷畾涔変紶鎰熷櫒鐘舵�佹帶浠�
var frameDevice = new SafetySensorStatuControl();
- listView.AddChidrenFrame(frameDevice);
+ listView.AddChidren(frameDevice);
frameDevice.InitControl(device);
//娣诲姞闃村奖鐗规晥
frameDevice.SetViewShadow(true);
@@ -530,78 +547,59 @@
//浠庤澶囧垪琛ㄤ腑鑾峰彇鍦ㄧ嚎鐘舵��
HdlThreadLogic.Current.RunThread(() =>
{
- //棣栧厛鑾峰彇杩欎簺浼犳劅鍣ㄦ墍鍦ㄧ殑缃戝叧
- var listWay = new List<ZbGateway>();
foreach (var device in listDevice)
- {
- ZbGateway realWay = null;
- //鏄惁瀛樺湪鐪熷疄鐗╃悊缃戝叧
- if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, device.CurrentGateWayId) == false)
- {
- continue;
- }
- listWay.Add(realWay);
- }
- foreach (var zbway in listWay)
{
if (this.Parent == null)
{
//鐣岄潰鍏抽棴
return;
}
- int statu = 0;
- var list = Common.LocalDevice.Current.GetDeviceListFromGateway(zbway, ref statu, false, ShowErrorMode.NO);
- if (statu != -1)
+ var deviceInfo = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(device);
+ if (deviceInfo != null)
{
- for (int i = 0; i < list.Count; i++)
- {
- //璁剧疆璁惧鍦ㄧ嚎鐘舵��
- this.ReceiveDeviceStatuPush(list[i]);
- }
+ //璁剧疆璁惧鍦ㄧ嚎鐘舵��
+ this.ReceiveDeviceStatuPush(device, deviceInfo);
}
+ System.Threading.Thread.Sleep(50);
}
- });
+ }, ShowErrorMode.NO);
}
/// <summary>
/// 鎺ュ彈璁惧鍦ㄧ嚎鎺ㄩ��
/// </summary>
/// <param name="device"></param>
- private void ReceiveDeviceStatuPush(CommonDevice device)
+ private void ReceiveDeviceStatuPush(CommonDevice device, CommonDevice.DeviceInfoData deviceInfo)
{
if (this.Parent == null)
{
//鐣岄潰鍏抽棴
return;
}
-
- lock (objOnlineLock)
+ string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
+ if (this.dicSensorStatuView.ContainsKey(mainkeys) == true)
{
- string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
- if (this.dicSensorStatuView.ContainsKey(mainkeys) == true)
+ CommonDevice Loacldevice = Common.LocalDevice.Current.GetDevice(mainkeys);
+ if (Loacldevice == null)
{
- CommonDevice Loacldevice = Common.LocalDevice.Current.GetDevice(mainkeys);
- if (Loacldevice == null)
- {
- return;
- }
- //鍦ㄧ嚎鐘舵�佷竴鏍风殑璇濓紝涓嶉渶瑕佸埛鏂�
- if (Loacldevice.IsOnline == device.IsOnline)
- {
- return;
- }
- //淇濆瓨鐘舵��
- Loacldevice.IsOnline = device.IsOnline;
- Loacldevice.ReSave();
-
- //鍥犱负杩欐槸鎺ㄩ�佽繃鏉ョ殑锛屾垜涓嶄繚璇侀偅涓�鐬棿杩欎釜涓滆タ浼氫笉浼氳绉婚櫎
- var control = this.dicSensorStatuView[mainkeys];
- Application.RunOnMainThread(() =>
- {
- //璁剧疆鎺т欢鐨勫湪绾跨姸鎬佹枃鏈晥鏋�
- control?.SetOnlineStatu(device.IsOnline == 1);
- });
+ return;
}
+ //鍦ㄧ嚎鐘舵�佷竴鏍风殑璇濓紝涓嶉渶瑕佸埛鏂�
+ if (Loacldevice.IsOnline == deviceInfo.IsOnline)
+ {
+ return;
+ }
+ //淇濆瓨鐘舵��
+ Loacldevice.IsOnline = deviceInfo.IsOnline;
+
+ //鍥犱负杩欐槸鎺ㄩ�佽繃鏉ョ殑锛屾垜涓嶄繚璇侀偅涓�鐬棿杩欎釜涓滆タ浼氫笉浼氳绉婚櫎
+ var control = this.dicSensorStatuView[mainkeys];
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //璁剧疆鎺т欢鐨勫湪绾跨姸鎬佹枃鏈晥鏋�
+ bool bolOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(device);
+ control?.SetOnlineStatu(bolOnline);
+ });
}
}
@@ -667,7 +665,7 @@
}
dicAlarm = null;
- Application.RunOnMainThread(() =>
+ HdlThreadLogic.Current.RunMain(() =>
{
if (this.Parent == null)
{
@@ -685,7 +683,7 @@
//鎵ц鍒濆鍖�
TodaySafeguardFrame = new SafeguardLogControl();
TodaySafeguardFrame.Y = Application.GetRealHeight(10);
- listView.AddChidrenFrame(TodaySafeguardFrame);
+ listView.AddChidren(TodaySafeguardFrame);
TodaySafeguardFrame.InitControl(nowDayKey, nowDayData);
//鍒濆鍖栧叾浠栨棩鏈熺殑瀹夐槻璁板綍鎺т欢
@@ -693,7 +691,7 @@
{
otherDaySafeguardFrame = new FrameLayout();
otherDaySafeguardFrame.Height = Application.GetRealHeight(10);
- listView.AddChidrenFrame(otherDaySafeguardFrame);
+ listView.AddChidren(otherDaySafeguardFrame);
foreach (var dayText in dicInfo.Keys)
{
//鎵ц鍒濆鍖�
@@ -738,7 +736,7 @@
}
}
- Application.RunOnMainThread(() =>
+ HdlThreadLogic.Current.RunMain(() =>
{
if (this.TodaySafeguardFrame != null)
{
--
Gitblit v1.8.0