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/Device/Logic/SoneLogicList.cs | 301 +++++++++++++++++++++++++++-----------------------
1 files changed, 162 insertions(+), 139 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
index cbe8716..fbcce00 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -17,6 +17,8 @@
}
/// 缁欏緪姊呭埛鏂扮晫闈㈢敤鐨�
public Action<bool> action;
+ // 鍒锋柊涓婃姤鐣岄潰鐨凙ction
+ public Action<string, bool> updateCurrentDoorlockActionTemp;
///绗簩鍧楃涓�绾х埗鎺т欢
FrameLayout fLayout = new FrameLayout();
///绗笁鍧楃涓�绾х埗鎺т欢
@@ -32,16 +34,12 @@
/// </summary>
public int timeValue = 0;
/// <summary>
- /// 鏍囪鏄剧ず鎵ц鏃ユ湡(鐢ㄧ綉鍏崇殑锛岃繕鏄敤绯荤粺鐨勬椂闂�)
- /// </summary>
- public bool _if = false;
- /// <summary>
- /// 鏃堕棿鎴�
+ /// 璁板綍鏃堕棿鎴�
/// </summary>
public int timeLong = 0;
public async void Show()
{
-
+
#region 鐣岄潰鐨勫竷灞�浠g爜
UserView.HomePage.Instance.ScrollEnabled = false;//閿佷綇宸︽粦
TopView view = new TopView();
@@ -49,7 +47,7 @@
view.toptitleNameBtn.TextID = MyInternationalizationString.openmode;
view.clickBtn.MouseDownEventHandler += (sender, e) =>
{
- UserView.HomePage.Instance.ScrollEnabled = true;
+ UserView.HomePage.Instance.ScrollEnabled = true;
//鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖
soneLogicList = null;
this.RemoveFromParent();
@@ -58,7 +56,7 @@
action(Send.CurrentDoorLock.IsDoorLockNormallyMode);
}
};
-
+
var middle = new FrameLayout
{
Y = view.topRowLayout.Bottom,
@@ -68,7 +66,6 @@
this.AddChidren(middle);
#endregion
//鏄父寮�妯″紡鍐嶅幓璇诲彇
-
if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
{
//杩涙潵鏇存柊涓�娆�
@@ -79,16 +76,9 @@
try
{
//杩涙潵鏇存柊涓�娆″��
- logicId = logic.LogicId;
- timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
- if (UserCenter.UserCenterResourse.HideOption.DoorLockNomallyOpenTimeMode == 1)
- {
- //寮哄埗鍙樻洿鏃堕棿妯″紡涓哄垎閽�
- timeValue = timeValue / 60;
- }
-
+ logicId = logic.LogicId;
+ timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600;
timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
-
}
catch { }
}
@@ -104,6 +94,7 @@
};
middle.AddChidren(fLayout);
#endregion
+
#region 甯稿紑鑷姩鍖�
///绗笁鍧楃涓�绾х埗鎺т欢
listLogicFl = new FrameLayout
@@ -141,8 +132,8 @@
///娣诲姞鑷姩鍖栧浘鏍囩殑鎺т欢
var addIconBtn = new Button
{
- Width = Application.GetMinRealAverage(69),
- Height = Application.GetMinRealAverage(69),
+ Width = Application.GetRealWidth(69),
+ Height = Application.GetRealWidth(69),
X = Application.GetRealWidth(890),
Y = Application.GetRealHeight(60),
UnSelectedImagePath = "ZigeeLogic/add.png",
@@ -178,10 +169,10 @@
actionsInfo.Add("LinkType", 8);
actionsInfo.Add("DeviceAddr", Send.CurrentDoorLock.DeviceAddr);
actionsInfo.Add("Epoint", "200");
- actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
- Dictionary<string, string> accounts = new Dictionary<string, string>();
+ actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
+ Dictionary<string, string> accounts = new Dictionary<string, string>();
accounts.Add("Type", "8");
- accounts.Add("Option4", Send.CurrentDoorLock.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�;
+ accounts.Add("Option4", Send.CurrentDoorLock.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�;
accounts.Add("Option2", Send.CurrentDoorLock.DeviceEpoint.ToString());
//new涓�涓柊閫昏緫瀵硅薄锛�
//鏂板闂ㄩ攣甯稿紑妯″紡鑷姩鍖栧叆鍙o紱
@@ -190,7 +181,7 @@
Common.Logic.CurrentLogic.LogicType = 2;//鏍囪閫昏緫绫诲瀷
Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.openmode);
Common.Logic.CurrentLogic.Conditions.Add(timeConditionsInfo);//娣诲姞鏉′欢
- Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//娣诲姞鐩爣
+ Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//娣诲姞鐩爣
Common.Logic.CurrentLogic.Accounts.Add(accounts);
var oneLogic = new OneLogic();
UserView.HomePage.Instance.AddChidren(oneLogic);
@@ -232,6 +223,24 @@
catch { }
};
+ updateCurrentDoorlockActionTemp = (DoorlockKey, _bool) =>
+ {
+
+ var key = Send.CurrentDoorLock.DeviceAddr;
+ if (DoorlockKey == key)
+ {
+ try
+ {
+ Application.RunOnMainThread(() =>
+ {
+ Send.CurrentDoorLock.IsDoorLockNormallyMode = _bool;
+ ModeView();
+ });
+ }
+ catch { }
+ }
+ };
+ UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += updateCurrentDoorlockActionTemp;
}
/// <summary>
/// 甯稿紑妯″紡寮�鍏冲垏鎹㈠浘鏍囩晫闈�
@@ -245,8 +254,8 @@
{
X = Application.GetRealWidth(395),
Y = Application.GetRealHeight(92),
- Width = Application.GetMinRealAverage(294),
- Height = Application.GetMinRealAverage(294),
+ Width = Application.GetRealWidth(294),
+ Height = Application.GetRealWidth(294),
};
fLayout.AddChidren(modeIconBtn);
if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
@@ -290,7 +299,6 @@
Send.DelLogic(logicId);
}
Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
- _if = false;
ModeView();
}
else
@@ -309,53 +317,58 @@
}
};
- ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
- var timeTextBtn = new Button
- {
- Y = Application.GetRealHeight(127 + 69),
- X = Application.GetRealWidth(86),//125
- Width = Application.GetRealWidth(907),//634 + 200
- Height = Application.GetRealHeight(60),
- TextSize = 15,
- TextColor = ZigbeeColor.Current.LogicTextBlackColor,
- };
+
if (logicId != 0)
{
+ ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
+ var timeTextBtn = new Button
+ {
+ Y = Application.GetRealHeight(127 + 69),
+ X = Application.GetRealWidth(80),//125
+ Width = Application.GetRealWidth(907 + 12),//634 + 200
+ Height = Application.GetRealHeight(60),
+ TextSize = 15,
+ TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+ };
openModeFl.AddChidren(timeTextBtn);
+
string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
string text2 = Language.StringByID(MyInternationalizationString.yearSone);
string text3 = Language.StringByID(MyInternationalizationString.monthSone);
string text4 = Language.StringByID(MyInternationalizationString.numberSone);
string text5 = Language.StringByID(MyInternationalizationString.hour1);
string text6 = Language.StringByID(MyInternationalizationString.executeSone);
- if (_if)
- {
+ string year = "";
+ string month = "";
+ int days = 0;
+ int hour = 0;
+ int minute = 0;
- ///绗竴娆¤繘鏉ヨ鍙栫綉鍏虫椂闂达紱
+ if (timeLong != 0)
+ {
+ ///璇诲彇缃戝叧鏃堕棿锛�
var datetime = GetLocalTime(timeLong);
///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
- var y = datetime.Year.ToString();//閭d竴骞�
- var m = datetime.Month.ToString();//閭d竴鏈�
- var d = datetime.ToString("dd");//閭d竴澶�
- var h = int.Parse(datetime.ToString("HH"));//灏忔椂
- int minute = datetime.Minute;//鍒嗛挓
- timeTextBtn.Text = text1 + y + text2 + m + text3 + d + text4 + h + text5 + minute.ToString() + text6;
-
+ year = datetime.Year.ToString();//閭d竴骞�
+ month = datetime.Month.ToString();//閭d竴鏈�
+ days = int.Parse(datetime.ToString("dd"));//閭d竴澶�
+ hour = int.Parse(datetime.ToString("HH"));//灏忔椂
+ minute = datetime.Minute;//鍒嗛挓
+ timeLong = 0;
}
else
{
-
- ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
- var y = DateTime.Now.Year.ToString();//閭d竴骞�
- var m = DateTime.Now.Month.ToString();//閭d竴鏈�
+ ///璇诲彇绯荤粺鏃堕棿
+ year = DateTime.Now.Year.ToString();//閭d竴骞�
+ month = DateTime.Now.Month.ToString();//閭d竴鏈�
var d = DateTime.Now.ToString("dd");//閭d竴澶�
var h = int.Parse(DateTime.Now.ToString("HH"));//灏忔椂
- int dayInt = (h + timeValue) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛�
- int hour = (h + timeValue) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛�
- int days = int.Parse(d) + dayInt;
- int minute = DateTime.Now.Minute;//鍒嗛挓
- timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
+ int dayInt = (h + timeValue) / 24;//璁剧疆鏃堕棿+褰撳墠绯荤粺鏃堕棿鏄惁瓒呭嚭24灏忔椂
+ hour = (h + timeValue) % 24;//璁剧疆鏃堕棿+褰撳墠绯荤粺鏃堕棿鏄惁瓒呭嚭24灏忔椂鍓╀笅澶氬皯灏忔椂
+ days = int.Parse(d) + dayInt;//褰撳墠绯荤粺澶╂暟+鎵ц鍚庡ぉ鏁�
+ minute = DateTime.Now.Minute;//鍒嗛挓
}
+ timeTextBtn.Text = text1 + year + text2 + month + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6;
}
@@ -393,8 +406,8 @@
///涓嬩竴绾ц彍鍗曞浘鏍囨帶浠�
var nextIconBtn = new Button
{
- Width = Application.GetMinRealAverage(104),
- Height = Application.GetMinRealAverage(104),
+ Width = Application.GetRealWidth(104),
+ Height = Application.GetRealWidth(104),
X = Application.GetRealWidth(861),
Y = Application.GetRealHeight(17),
UnSelectedImagePath = "ZigeeLogic/nextIconSone.png",
@@ -410,66 +423,66 @@
};
modeFl.AddChidren(clickBtn);
clickBtn.MouseUpEventHandler += (sender, e) =>
- {
+ {
- LogicView.TipView.ShowConfrimTip(() =>
- {///鍐嶆纭
- LogicView.TipView.ShowInputTip(true, async (str) =>
- {///纭鍙戦�佸懡浠�
- CommonPage.Loading.Start();
- try
- {
- ///xm
- var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
- if (!result)
- {
- LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
- return;
- }
- else
- {
- ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
- SkipView.GetLogicAll(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
- var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
- if (addResult == 0)
- {
- ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
- UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
- ///鎻愮ず澶辫触
- LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
- return;
- }
- else
- {
- logicId = addResult;
- timeValue = int.Parse(str);
- Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
- _if = false;
- ModeView();
- ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
- UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
- }
+ LogicView.TipView.ShowConfrimTip(() =>
+ {///鍐嶆纭
+ LogicView.TipView.ShowInputTip(true, async (str) =>
+ {///纭鍙戦�佸懡浠�
+
+ CommonPage.Loading.Start();
+ try
+ {
+ ///xm
+ var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
+ if (!result)
+ {
+ LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
+ return;
+ }
+ else
+ {
+ ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
+ SkipView.DelAllLogic(Send.CurrentDoorLock);//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
+ var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
+ if (addResult == 0)
+ {
+ ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护;
+ UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
+ ///鎻愮ず澶辫触
+ LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
+ return;
+ }
+ else
+ {
+ logicId = addResult;
+ timeValue = int.Parse(str);
+ Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
+ ModeView();
+ ///娣诲姞APP寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
+ UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
+ }
- }
- }
- catch
- {
+ }
+ }
+ catch
+ {
- }
- finally
- {
- Application.RunOnMainThread(() =>
- {
- CommonPage.Loading.Hide();
+ }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
- });
- }
- });
+ });
+ }
+ });
- });
+ });
- };
+ };
}
listLogicFl.Y = fLayout.Bottom;
listLogicFl.X = Application.GetRealWidth(58);
@@ -477,7 +490,7 @@
listLogicFl.Width = Application.GetRealWidth(1022);
listLogicFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
- verticalRefresh.Y = Application.GetRealHeight(187);
+ verticalRefresh.Y = Application.GetRealHeight(187);
verticalRefresh.X = Application.GetRealWidth(46);
verticalRefresh.Height = listLogicFl.Height - Application.GetRealHeight(187);//鍔ㄦ�佹敼鍔ㄤ笂涓嬫粦鍔╲iew楂樺害;
verticalRefresh.Width = listLogicFl.Width - Application.GetRealWidth(46);
@@ -488,10 +501,10 @@
/// <param name="yes"></param>
private async void Read(bool yes)
{
- if (yes)
- {
- CommonPage.Loading.Start();
- }
+ //if (yes)
+ // {
+ CommonPage.Loading.Start();
+ // }
try
{
if (Common.Logic.SoneLogicList.Count == 0)
@@ -506,10 +519,10 @@
if (logic.LogicType != 2)
{
continue;
- }
- if (SkipView.ExistLogic(logic, Send.CurrentDoorLock))
- {
- Common.Logic.SoneLogicList.Add(logic);
+ }
+ if (SkipView.ExistLogic(logic, Send.CurrentDoorLock))
+ {
+ Common.Logic.SoneLogicList.Add(logic);
}
}
}
@@ -519,13 +532,20 @@
{
var dd = e.Message;
}
- //鑷姩鍖�
- RefreshView();
- if (yes)
+ finally
{
- CommonPage.Loading.Hide();
+ Application.RunOnMainThread(() =>
+ {
+ // if (yes)
+ // {
+ CommonPage.Loading.Hide();
+ // }
+ //鑷姩鍖�
+ RefreshView();
+ });
}
+
}
/// <summary>
/// 璁板綍宸︽粦鐘舵��
@@ -542,6 +562,7 @@
{
if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock))
{
+ ///涓嶆槸璇ラ棬閿佽嚜鍔ㄥ寲灏变笉鏄剧ず鍑烘潵;
continue;
}
#region 鑷姩鍖栧竷灞�View
@@ -570,7 +591,7 @@
selectedRow = logicRow;
};
a++;
- ///鏄剧ず閫昏緫鍚嶇О鐨勬帶浠�
+ ///鏄剧ず閫昏緫鍚嶇О鐨勬帶浠�
var nameBtn = new Button
{
Height = Application.GetRealHeight(58),
@@ -586,8 +607,8 @@
///鏄剧ず鐩爣鍔熻兘鑳屾櫙棰滆壊鐨勬帶浠�
var typeBjBtn = new FrameLayout
{
- Width = Application.GetMinRealAverage(82),
- Height = Application.GetMinRealAverage(82),
+ Width = Application.GetRealWidth(82),
+ Height = Application.GetRealWidth(82),
X = Application.GetRealWidth(17),
Y = Application.GetRealHeight(84),
Radius = (uint)Application.GetMinRealAverage(41),
@@ -597,16 +618,16 @@
///鏄剧ず鐩爣鍔熻兘鍥炬爣鐨勬帶浠�
var typeIconBtn = new Button
{
- Width = Application.GetMinRealAverage(58),
- Height = Application.GetMinRealAverage(58),
+ Width = Application.GetRealWidth(58),
+ Height = Application.GetRealWidth(58),
Gravity = Gravity.Center,
};
typeBjBtn.AddChidren(typeIconBtn);
///閫昏緫寮�鍏冲浘鏍囩殑鎺т欢
var switchBtn = new Button
{
- Width = Application.GetMinRealAverage(104),
- Height = Application.GetMinRealAverage(63),
+ Width = Application.GetRealWidth(104),
+ Height = Application.GetRealWidth(63),
UnSelectedImagePath = "ZigeeLogic/logicclose.png",
SelectedImagePath = "ZigeeLogic/logicopen.png",
X = Application.GetRealWidth(815),
@@ -686,24 +707,25 @@
///鍒犻櫎鐐瑰嚮浜嬩欢
del.MouseUpEventHandler += (sender, e) =>
{
- var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm,
+ var alert = new UserCenter.ShowMsgControl(ShowMsgType.Confirm,
Language.StringByID(MyInternationalizationString.doyouwanttodelete),
- Language.StringByID(MyInternationalizationString.confrim));
- alert.Show();
- alert.ConfirmClickEvent += () =>
+ Language.StringByID(MyInternationalizationString.confrim));
+ alert.Show();
+ alert.ConfirmClickEvent += () =>
{
Common.Logic.SoneLogicList.Remove(logic);
//logicRow.Parent.RemoveFromParent();
fLayoutLogic.RemoveFromParent();
- Send.DelLogic(logic.LogicId);
+ Send.DelLogic(logic.LogicId);
};
- };
+ };
}
}
-
/// <summary>
- /// 灏哢NIX鏃堕棿鎴宠浆鎹㈡垚绯荤粺鏃堕棿(绮剧‘鍒扮)
+ /// 鏃堕棿鎴宠浆鎹㈡垚鏃堕棿鏍煎紡
+ /// </summary>
+ /// <param name="unixTimeStamp">鏃堕棿鎴�</param>
/// <returns></returns>
public DateTime GetLocalTime(int unixTimeStamp)
{
@@ -712,6 +734,7 @@
TimeSpan toNow = new TimeSpan(lTime);
DateTime dtResult = dtStart.Add(toNow);
return dtResult;
+
}
}
}
--
Gitblit v1.8.0