From caf9d97d5c445fa459b777c5569625bbfd0ff5fc Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期四, 07 五月 2020 09:29:53 +0800
Subject: [PATCH] 2020-05-07-1
---
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs | 344 ++++++++++++++++++++++++++++++++------------------------
1 files changed, 197 insertions(+), 147 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
index fee5add..374b643 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -8,17 +8,18 @@
namespace Shared.Phone.Device.Logic
{
- public class SkipView
+ public class SkipView:FrameLayout
{
/// <summary>
/// 鍏跺畠鐣岄潰璺宠繘鏉ョ殑鍏ュ彛
/// </summary>
- public static void SkipAddLogic(int intvalue,UserCenter.MemberInfoRes accountObj = null,DoorLock doorLock=null)
+ public static void SkipAddLogic(int intvalue, DoorLock doorLock = null, UserCenter.MemberInfoRes accountObj = null)
{
- /// 0.姝e父鑷姩鍖�;1.闂ㄩ攣鑷姩鍖�;2.闂ㄩ攣甯稿紑.鍏�;
+ /// 0.姝e父鑷姩鍖�;1.闂ㄩ攣鑷姩鍖�;2.Sone闂ㄩ攣;
switch (intvalue)
{
- case 0: {
+ case 0:
+ {
//new涓�涓柊閫昏緫瀵硅薄锛�
//鏂板姝e父鑷姩鍖栧叆鍙�
Common.Logic.CurrentLogic = new Common.Logic();
@@ -29,57 +30,43 @@
UserView.HomePage.Instance.AddChidren(addLogicPage);
UserView.HomePage.Instance.PageIndex += 1;
addLogicPage.Show();
- } break;
- case 1: {
+
+ }
+ break;
+ case 1:
+ {
//杩涘叆闂ㄩ攣鑱斿姩浜嬩欢鍏ュ彛
- Send.UserMemberInfoRes = accountObj;
- Send.CurrentDoorLock = doorLock;
- if (accountObj == null)
- {
- ///闃叉鎶涘紓甯�
- Send.UserMemberInfoRes = new UserCenter.MemberInfoRes();
- }
- if (doorLock == null)
- {
- ///闃叉鎶涘紓甯�
- Send.CurrentDoorLock = new DoorLock();
- }
- ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
- Common.Logic.LogicDviceList.Clear();
- if (Common.Logic.LogicDviceList.Count == 0)
- {
- Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
- }
- var doorLockLogicList = new DoorLockLogic.LockLogicList();
- UserView.HomePage.Instance.AddChidren(doorLockLogicList);
- UserView.HomePage.Instance.PageIndex += 1;
- doorLockLogicList.Show();
- } break;
- case 2: {
- ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
- Common.Logic.LogicDviceList.Clear();
- if (Common.Logic.LogicDviceList.Count == 0)
- {
- Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
+ Send.UserMemberInfoRes = accountObj;
+ Send.CurrentDoorLock = doorLock;
+ if (accountObj == null)
+ {
+ ///闃叉鎶涘紓甯�
+ Send.UserMemberInfoRes = new UserCenter.MemberInfoRes();
}
- //new涓�涓柊閫昏緫瀵硅薄锛�
- //鏂板闂ㄩ攣甯稿紑妯″紡鑷姩鍖栧叆鍙o紱
- Common.Logic.CurrentLogic = new Common.Logic();
- Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
- Common.Logic.CurrentLogic.LogicType = 2;//鏍囪閫昏緫绫诲瀷
- Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.openmode);
- var logicCommunalPage = new LogicCommunalPage();
- UserView.HomePage.Instance.AddChidren(logicCommunalPage);
+ if (doorLock == null)
+ {
+ ///闃叉鎶涘紓甯�
+ Send.CurrentDoorLock = new DoorLock();
+ }
+ ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
+ Common.Logic.LogicDviceList.Clear();
+ if (Common.Logic.LogicDviceList.Count == 0)
+ {
+ Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
+ }
+ var doorLockLogicList = new DoorLockLogic.LockLogicList();
+ UserView.HomePage.Instance.AddChidren(doorLockLogicList);
UserView.HomePage.Instance.PageIndex += 1;
- logicCommunalPage.Show(() => { });
- } break;
+ doorLockLogicList.Show();
+ }
+ break;
+
}
}
-
+
#region 鈼� 鑷姩鍖朹_________________________
-
/// <summary>
/// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙�
/// </summary>
@@ -154,7 +141,7 @@
Y = scenehorizontalScrol.Bottom,
};
functionSceneAutoBodyView.AddChidren(logicScrolView);
-
+
logicScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
bool no = false;
//鏄剧ず榛樿妯℃澘鐨勭晫闈簨浠�
@@ -261,8 +248,8 @@
logicScrolView.EndHeaderRefreshing();
};
- //鑷姩鍖�
- Read(logicScrolView, no);
+ //鑷姩鍖�
+ Read(logicScrolView, no);
}
/// <summary>
@@ -272,47 +259,59 @@
private static async void Read(VerticalRefreshLayout logicScrolView, bool no)
{
CommonPage.Loading.Start();
- if (Common.Logic.LogicList.Count == 0)
+ try
{
- var Idlist1 = await Send.GetLogicId(0);//
- var Idlist2 = await Send.GetLogicId(2);//闂ㄩ攣甯稿紑妯″紡
- if (Idlist1.Count != 0)
+ if (!Config.Instance.Home.IsVirtually)//铏氭嫙鐨勪笉鑾峰彇缃戝叧閫昏緫鍒楄〃
{
- var listlogic1 = await Send.ReadList(Idlist1.Count, 0);
- for (int j = 0; j < listlogic1.Count; j++)
+ if (Common.Logic.LogicList.Count == 0)
{
- var logic = listlogic1[j];
- if (logic.LogicType != 0)
+ var Idlist1 = await Send.GetLogicId(0);//
+ var Idlist2 = await Send.GetLogicId(2);//闂ㄩ攣甯稿紑妯″紡
+ if (Idlist1.Count != 0)
{
- continue;
+ var listlogic1 = await Send.ReadList(Idlist1.Count, 0);
+ for (int j = 0; j < listlogic1.Count; j++)
+ {
+ var logic = listlogic1[j];
+ if (logic.LogicType != 0)
+ {
+ continue;
+ }
+ Common.Logic.LogicList.Add(logic);
+ }
}
- Common.Logic.LogicList.Add(logic);
+ if (Idlist2.Count != 0)
+ {
+ var listlogic2 = await Send.ReadList(Idlist2.Count, 2);
+ for (int j = 0; j < listlogic2.Count; j++)
+ {
+ var logic = listlogic2[j];
+ if (logic.LogicType != 2)
+ {
+ continue;
+ }
+ Common.Logic.LogicList.Add(logic);
+ }
+ }
}
}
- if (Idlist2.Count != 0)
- {
- var listlogic2 = await Send.ReadList(Idlist2.Count, 2);
- for (int j = 0; j < listlogic2.Count; j++)
- {
- var logic = listlogic2[j];
- if (logic.LogicType != 2)
- {
- continue;
- }
- Common.Logic.LogicList.Add(logic);
- }
- }
+ }
+ catch (Exception e)
+ {
+ var dd = e.Message;
}
//鑷姩鍖�
Automationview(logicScrolView, no);
CommonPage.Loading.Hide();
}
+ static RowLayout selectedRow = new RowLayout() { Tag = "0" };//璁板綍宸︽粦鐘舵��
/// <summary>
/// 鍔犺浇鑷姩鍖栧垪琛ㄧ晫闈�
/// </summary>
/// <param name="refresview">Refresview.</param>
private static async void Automationview(VerticalRefreshLayout refresview, bool no)
{
+
refresview.RemoveAll();
if (Common.Logic.LogicList.Count == 0 && no == false)
{
@@ -320,7 +319,7 @@
refresview.BackgroundColor = 0x00000000;
var noFrameLayout = new FrameLayout
{
- Height = Application.GetRealHeight(434 + 200 + 32 + 294-55),
+ Height = Application.GetRealHeight(434 + 200 + 32 + 294 - 55),
//BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
refresview.AddChidren(noFrameLayout);
@@ -328,9 +327,9 @@
var noIconBtn = new Button
{
- Y = Application.GetRealHeight(294-55),
- Width = Application.GetMinRealAverage(756),
- Height = Application.GetMinRealAverage(434),
+ Y = Application.GetRealHeight(294 - 55),
+ Width = Application.GetMinRealAverage(757),
+ Height = Application.GetMinRealAverage(435),
UnSelectedImagePath = "Item/NoFunction.png",
X = Application.GetRealWidth(104),
};
@@ -367,7 +366,7 @@
int i = 1;//灞�閮ㄥ彉閲忥紝榛樿鏄涓�鏉¢�昏緫;
foreach (var logic in Common.Logic.LogicList)
{
-
+
var fLayout = new FrameLayout
{
Height = Application.GetRealHeight(190 + 30),
@@ -375,7 +374,7 @@
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
};
refresview.AddChidren(fLayout);
-
+
var logicRowlayout = new RowLayout
{
Height = Application.GetRealHeight(190 + 30),
@@ -383,17 +382,27 @@
LineColor = ZigbeeColor.Current.LogicBackgroundColor,
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
SubViewWidth = Application.GetRealWidth(184),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛�
+ Tag = i.ToString(),
};
fLayout.AddChidren(logicRowlayout);
+ //宸︽粦鑿滃崟浜嬩欢
+ logicRowlayout.OpenMenuAction += () =>
+ {
+ if (selectedRow.Tag.ToString() != logicRowlayout.Tag.ToString())
+ { //淇濈暀宸︽粦鍙湁涓�涓�;
+ selectedRow.HideMenu();//
+ }
+ selectedRow = logicRowlayout;
+ };
if (i == 1)
{
//瀹炵幇android鏄剧ず閫昏緫鍒楄〃鐨勫渾瑙�;
fLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
logicRowlayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
- i = 2;
+
}
-
+ i++;
var logicnameBtn = new Button
{
Height = Application.GetRealHeight(58),
@@ -434,7 +443,10 @@
logic.IsEnable = 0;
StatusColor(logic, logicRowlayout, 0);
}
- Send.LogicControlSwitch(logic);
+ if (!Config.Instance.Home.IsVirtually)
+ {
+ Send.LogicControlSwitch(logic);
+ }
//Logic.Send.AddModifyLogic(logic);
};
if (logic.IsEnable == 1)
@@ -455,14 +467,27 @@
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
};
logicRowlayout.AddRightView(edit);
+ if (logic.LogicType == 2)
+ {
+ edit.TextID = MyInternationalizationString.look;
+ }
edit.MouseUpEventHandler += (sender, e) =>
{
Common.Logic.CurrentLogic = logic;
- var logicCommunalPage = new LogicCommunalPage();
- HomePage.Instance.AddChidren(logicCommunalPage);
- HomePage.Instance.PageIndex += 1;
- logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview, no); });
-
+ if (Common.Logic.CurrentLogic.LogicType == 2)
+ {
+ var oneLogic = new OneLogic();
+ UserView.HomePage.Instance.AddChidren(oneLogic);
+ UserView.HomePage.Instance.PageIndex += 1;
+ oneLogic.Show(true);
+ }
+ else
+ {
+ var logicCommunalPage = new LogicCommunalPage();
+ HomePage.Instance.AddChidren(logicCommunalPage);
+ HomePage.Instance.PageIndex += 1;
+ logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview, no); });
+ }
};
///鍒犻櫎
@@ -477,13 +502,16 @@
{
var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm,
Language.StringByID(MyInternationalizationString.doyouwanttodelete),
- Language.StringByID(MyInternationalizationString.confrim));
- alert.Show();
- alert.ConfirmClickEvent += () =>
+ Language.StringByID(MyInternationalizationString.confrim));
+ alert.Show();
+ alert.ConfirmClickEvent += () =>
{
Common.Logic.LogicList.Remove(logic);
Automationview(refresview, no);
- Send.DelLogic(logic.LogicId);
+ if (!Config.Instance.Home.IsVirtually)
+ {
+ Send.DelLogic(logic.LogicId);
+ }
};
};
@@ -496,6 +524,8 @@
BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
fLayout.AddChidren(line);
+
+
}
}
@@ -534,8 +564,8 @@
indexlist.Add(linkType);
}
}
- //鎺掑垪鍥炬爣椤哄簭;
- if (indexlist.Contains("0")|| indexlist.Contains("8"))
+ //鎺掑垪鍥炬爣椤哄簭;
+ if (indexlist.Contains("0") || indexlist.Contains("8"))
{
iconIndexlist.Add("0");
}
@@ -654,91 +684,111 @@
}
}
}
-
#endregion
/// <summary>
- /// 闂ㄩ攣鍙栨秷璁剧疆鐢ㄧ殑鏂规硶
+ /// 闂ㄩ攣澶辨晥璁剧疆鐢ㄧ殑鏂规硶(鐩稿綋涓�涓叧闂父寮�妯″紡鎸夐挳,鍒嗙被-鑷姩鍖�-涓嶉渶瑕佹樉绀鸿鑷姩鍖�)
/// </summary>
/// <param name="timeVlaue">鏃堕棿鍊�</param>
/// <param name="common">璁惧</param>
/// <returns></returns>
- public static void LockAddModifyLogic(int timeVlaue, CommonDevice common)
+ public static async System.Threading.Tasks.Task<bool> LockAddModifyLogic(int timeVlaue, CommonDevice common)
{
-
+ //璇诲彇绯荤粺褰撳墠鏃堕棿锛氭椂-鍒�
+ var h = DateTime.Now.ToString("HH");
+ var m = DateTime.Now.ToString("mm");
Dictionary<string, string> timeConditionsInfo = new Dictionary<string, string>();
timeConditionsInfo.Add("Type", "0");
timeConditionsInfo.Add("IsValid", "1");
timeConditionsInfo.Add("DateType", "0");
timeConditionsInfo.Add("RemindTime", "0");
timeConditionsInfo.Add("EnDelay", "0");
- timeConditionsInfo.Add("DelayTime", "0");
- timeConditionsInfo.Add("StartHour", timeVlaue.ToString());
- timeConditionsInfo.Add("StartMin", "0");
+ timeConditionsInfo.Add("DelayTime", "0");
+ timeConditionsInfo.Add("StartHour", h);
+ timeConditionsInfo.Add("StartMin", m);
+ timeConditionsInfo.Add("DoorLockOpenDelayTime", timeVlaue.ToString());
Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
actionsInfo.Add("LinkType", 8);
actionsInfo.Add("DeviceAddr", common.DeviceAddr);
actionsInfo.Add("Epoint", common.DeviceEpoint);
- actionsInfo.Add("PassData", "055704010112");//榛樿闂ㄩ攣甯稿紑
+ actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
Common.Logic currentLogic = new Common.Logic();
currentLogic.IsEnable = 1;//榛樿涓哄紑
currentLogic.TimeAttribute.Repeat = 0;//鎵ц涓�娆�
- currentLogic.LogicType = 2;//鏍囪閫昏緫绫诲瀷
+ currentLogic.LogicType = 3;//鏍囪閫昏緫绫诲瀷
currentLogic.LogicName = Language.StringByID(R.MyInternationalizationString.openmode);
currentLogic.Conditions.Add(timeConditionsInfo);
currentLogic.Actions.Add(actionsInfo);
- //淇敼鎴栬�呮坊鍔犳槸鏍规嵁閫昏緫id鍊硷紙0鏂板锛�1锛屼慨鏀癸級
- Send.AddModifyLogic(currentLogic);
+ var logicIfon = await Send.AddModifyLogic(currentLogic);
+ if (logicIfon != null && logicIfon.LogicId != 0)
+ {
+ //娣诲姞闂ㄩ攣澶辨晥鏃堕棿鐨勫巻鍙茶褰�
+ UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog((DoorLock)common, 9003, timeVlaue.ToString());
+ return true;//琛ㄧず娣诲姞鎴愬姛;
+ }
+ return false;//琛ㄧず娣诲姞澶辫触;
}
- ///<summary>
- /// 闂ㄩ攣鍒犻櫎閫昏緫
- /// </summary>
- public static async void LockDelLogic(CommonDevice common)
- {
- int logicId = 0;
- var Idlist = await Send.GetLogicId(2);
- if (Idlist.Count != 0)
- { //鍏堝幓璇诲彇缃戝叧鐪嬫槸鍚﹀瓨鍦ㄦ暟鎹�;
- var listlogic = await Send.ReadList(Idlist.Count, 2);
- for (int j = 0; j < listlogic.Count; j++)
- {
- var logic = listlogic[j];
- foreach (var actions in logic.Actions)
- {
- var linkType = actions["LinkType"].ToString();
- if (linkType != "8")
- {
- //鐢ㄦ埛鏈夊彲鑳藉湪鑷姩鍖栭偅閲屽啀娆$紪杈�;
- //蹇呴』杩囨护鎺変笉闇�瑕佺殑淇℃伅(杈撳嚭鍔熻兘寤舵椂:鏄病鏈塂eviceAddr鍜孍point),鍚﹀垯鏈夊紓甯�;
- continue;
- }
- var obj1 = actions["DeviceAddr"].ToString();
- var obj2 = actions["Epoint"].ToString();
- if (common.DeviceAddr == obj1 && common.DeviceEpoint.ToString() == obj2)
- {
- logicId = logic.LogicId;
- break;
- //鎵惧埌璺冲嚭寰幆浣�
- }
- }
- if (logicId != 0)
- {
- break;
- //鎵惧埌璺冲嚭寰幆浣�
- }
+ ///<summary>
+ /// s-one闂ㄩ攣鏄惁瀛樺湪鑷姩鍖栫殑鏂规硶;
+ /// 娉ㄦ剰(鍙傛暟:2-甯稿紑鑷姩鍖�;3-澶辨晥鏃堕棿鑷姩鍖�);
+ /// 杩斿洖鍊硷細0涓嶅瓨鍦�;鍏跺畠鍊奸兘瀛樺湪;
+ /// </summary>
+ public static async System.Threading.Tasks.Task<int> Exist(int valueInt)
+ {
+ int exist = 0;
+ var Idlist = await Send.GetLogicId(valueInt);
+ if (Idlist.Count != 0)
+ {
+ //榛樿鍙栫涓�涓�昏緫ID
+ exist = Idlist[0];
+
+ }
+ return exist;
+ }
+
+ ///<summary>
+ ///鑾峰彇閫昏緫淇℃伅
+ /// 杩斿洖鍊硷細null涓嶅瓨鍦�;鍏跺畠鍊奸兘瀛樺湪;
+ /// </summary>
+ public static async System.Threading.Tasks.Task<Common.Logic> GetLogicIfon()
+ {
+ Common.Logic logic = null;
+ var Idlist = await Send.GetLogicId(3);
+ if (Idlist.Count != 0)
+ {
+ //榛樿鍙栫涓�涓�昏緫ID(鏃舵晥鎬у彧鏈変竴鏉¢�昏緫)
+ int exist = Idlist[0];
+ logic = await Send.GetLogic(exist, 3);
+ }
+ return logic;
+ }
+
+ ///<summary>
+ ///鍒犻櫎鎵�鏈夋椂鏁堟�ц嚜鍔ㄥ寲
+ /// 杩斿洖鍊硷細true鎴愬姛;false澶辫触;
+ /// </summary>
+ public static async System.Threading.Tasks.Task<bool> GetLogicAll()
+ {
+ bool _if = false;
+ var Idlist = await Send.GetLogicId(3);
+ if (Idlist.Count != 0)
+ {
+ _if = true;
+
+ for (int i = 0; i < Idlist.Count; i++)
+ {
+ int id = Idlist[i];
+ //鏈潵鍙湁涓�鏉℃椂鏁堟�ц嚜鍔ㄥ寲锛�
+ //闃叉鐗规畩鎯呭喌,鎵惧埌灏卞垹闄ゆ帀;
+ Send.DelLogic(id);
}
}
- if (logicId == 0)
- {
- //娌℃湁鎵惧埌logicId鍒犻櫎娌℃湁鎰忎箟;
- return;
- }
- Send.DelLogic(logicId);
+ return _if;
}
-
+
}
}
--
Gitblit v1.8.0