From 627093aca723d4bfb971b97c828e8b3a22dbda78 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 17 七月 2020 17:26:19 +0800
Subject: [PATCH] 2020-07-17-1
---
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs | 640 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 439 insertions(+), 201 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
old mode 100644
new mode 100755
index d616479..0aee184
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -8,23 +8,55 @@
{
public class SoneLogicList : FrameLayout
{
+ public static SoneLogicList soneLogicList;
public SoneLogicList()
{
Tag = "SoneLogic";
+ soneLogicList = this;
+
}
+ /// 缁欏緪姊呭埛鏂扮晫闈㈢敤鐨�
+ public Action<bool> action;
+ // 鍒锋柊涓婃姤鐣岄潰鐨凙ction
+ public Action<string, bool> updateCurrentDoorlockActionTemp;
+ ///绗簩鍧楃涓�绾х埗鎺т欢
+ FrameLayout fLayout = new FrameLayout();
+ ///绗笁鍧楃涓�绾х埗鎺т欢
+ FrameLayout listLogicFl = new FrameLayout();
+ ///甯稿紑鑷姩鍖栧垪琛ㄤ笂涓嬫粦鍔ㄧ殑鎺т欢
+ VerticalRefreshLayout verticalRefresh = new VerticalRefreshLayout();
+ /// <summary>
+ /// 璁板綍閫昏緫id
+ /// </summary>
+ public int logicId = 0;
+ /// <summary>
+ /// 璁板綍閫変腑鏃堕棿
+ /// </summary>
+ public int timeValue = 0;
+ /// <summary>
+ /// 璁板綍鏃堕棿鎴�
+ /// </summary>
+ public int timeLong = 0;
public async void Show()
{
+
#region 鐣岄潰鐨勫竷灞�浠g爜
UserView.HomePage.Instance.ScrollEnabled = false;//閿佷綇宸︽粦
TopView view = new TopView();
this.AddChidren(view.TopRowView());
- view.toptitleNameBtn.TextID = MyInternationalizationString.selection;
+ view.toptitleNameBtn.TextID = MyInternationalizationString.openmode;
view.clickBtn.MouseDownEventHandler += (sender, e) =>
{
- UserView.HomePage.Instance.ScrollEnabled = true;
- RemoveFromParent();
+ UserView.HomePage.Instance.ScrollEnabled = true;
+ //鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖
+ soneLogicList = null;
+ this.RemoveFromParent();
+ if (action != null)
+ {
+ action(Send.CurrentDoorLock.IsDoorLockNormallyMode);
+ }
};
-
+
var middle = new FrameLayout
{
Y = view.topRowLayout.Bottom,
@@ -33,34 +65,204 @@
};
this.AddChidren(middle);
#endregion
+ //鏄父寮�妯″紡鍐嶅幓璇诲彇
+ if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
+ {
+ //杩涙潵鏇存柊涓�娆�
+ //鏌ユ壘鏄惁瀛樺湪鏃舵晥鎬ц嚜鍔ㄥ寲锛涙湁鐨勮瘽灏辫繑鍥炶嚜鍔ㄥ寲瀵硅薄;
+ var logic = await SkipView.GetLogicIfon(Send.CurrentDoorLock);
+ if (logic != null)
+ {
+ try
+ {
+ //杩涙潵鏇存柊涓�娆″��
+ logicId = logic.LogicId;
+ timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600;
+ timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
+ }
+ catch { }
+ }
+ }
#region 甯稿紑妯″紡鍥炬爣 鏃舵晥鎬у父寮�璁剧疆
///绗簩鍧楃涓�绾х埗鎺т欢
- var fLayout = new FrameLayout
+ fLayout = new FrameLayout
{
Width = Application.GetRealWidth(1080),
Height = Application.GetRealHeight(829 - 184),
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
middle.AddChidren(fLayout);
+ #endregion
+
+ #region 甯稿紑鑷姩鍖�
+ ///绗笁鍧楃涓�绾х埗鎺т欢
+ listLogicFl = new FrameLayout
+ {
+ Y = fLayout.Bottom,
+ X = Application.GetRealWidth(58),
+ Height = middle.Height - fLayout.Height,
+ Width = Application.GetRealWidth(1022),
+ BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+ };
+ middle.AddChidren(listLogicFl);
+ listLogicFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
+ ModeView();
+ ///娣诲姞甯稿紑鑷姩鍖栫殑鐖舵帶浠�
+ var addLogicfL = new FrameLayout
+ {
+ Height = Application.GetRealHeight(187),
+ Width = Application.GetRealWidth(1080 - 58),
+ };
+ listLogicFl.AddChidren(addLogicfL);
+ ///甯稿紑鑷姩鍖栨樉绀烘枃鏈殑鎺т欢
+ var addTextBtn = new Button
+ {
+ Y = Application.GetRealHeight(46),
+ X = Application.GetRealWidth(58),
+ Width = Application.GetRealWidth(600),
+ Height = Application.GetRealHeight(95),
+ TextSize = 24,
+ TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+ TextAlignment = TextAlignment.CenterLeft,
+ //Text = "甯稿紑鑷姩鍖�",
+ TextID = MyInternationalizationString.openAutomationSone,
+ };
+ addLogicfL.AddChidren(addTextBtn);
+ ///娣诲姞鑷姩鍖栧浘鏍囩殑鎺т欢
+ var addIconBtn = new Button
+ {
+ Width = Application.GetMinRealAverage(69),
+ Height = Application.GetMinRealAverage(69),
+ X = Application.GetRealWidth(890),
+ Y = Application.GetRealHeight(60),
+ UnSelectedImagePath = "ZigeeLogic/add.png",
+ };
+ addLogicfL.AddChidren(addIconBtn);
+ ///鍔犲ぇ鐐瑰嚮鐑敭
+ var addIconclickBtn = new Button
+ {
+ Width = Application.GetRealWidth(90 + 69 + 63),
+ Height = Application.GetRealHeight(69),
+ X = Application.GetRealWidth(800),
+ Y = Application.GetRealHeight(60),
+ };
+ addLogicfL.AddChidren(addIconclickBtn);
+ addIconclickBtn.MouseUpEventHandler += (sender, e) =>
+ {
+
+ //璇诲彇绯荤粺褰撳墠鏃堕棿锛氭椂-鍒�
+ //璇诲彇绯荤粺褰撳墠鏃堕棿锛氭椂-鍒�
+ 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("DoorLockOpenDelayTime", "0");
+ timeConditionsInfo.Add("StartHour", h);
+ timeConditionsInfo.Add("StartMin", m);
+ Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
+ 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>();
+ accounts.Add("Type", "8");
+ accounts.Add("Option4", Send.CurrentDoorLock.DeviceAddr.ToString());//鐢ㄤ簬鍒ゆ柇璇嗗埆鏄摢涓棬閿�;
+ accounts.Add("Option2", Send.CurrentDoorLock.DeviceEpoint.ToString());
+ //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);
+ Common.Logic.CurrentLogic.Conditions.Add(timeConditionsInfo);//娣诲姞鏉′欢
+ Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//娣诲姞鐩爣
+ Common.Logic.CurrentLogic.Accounts.Add(accounts);
+ var oneLogic = new OneLogic();
+ UserView.HomePage.Instance.AddChidren(oneLogic);
+ UserView.HomePage.Instance.PageIndex += 1;
+ oneLogic.Show(false);
+
+ };
+
+ ///甯稿紑鑷姩鍖栧垪琛ㄤ笂涓嬫粦鍔ㄧ殑鎺т欢
+ verticalRefresh = new VerticalRefreshLayout
+ {
+
+ Y = addLogicfL.Bottom,
+ X = Application.GetRealWidth(46),
+ Height = listLogicFl.Height - addLogicfL.Height,
+ Width = listLogicFl.Width - Application.GetRealWidth(46),
+ };
+ listLogicFl.AddChidren(verticalRefresh);
+ verticalRefresh.BeginHeaderRefreshingAction += () =>
+ {
+ Common.Logic.SoneLogicList.Clear();
+ Read(false);
+ verticalRefresh.EndHeaderRefreshing();
+ };
+ Read(true);
+ #endregion
+
+ UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = (_bool) =>
+ {
+
+ try
+ {
+ Application.RunOnMainThread(() =>
+ {
+ Send.CurrentDoorLock.IsDoorLockNormallyMode = _bool;
+ ModeView();
+ });
+ }
+ 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>
+ /// 甯稿紑妯″紡寮�鍏冲垏鎹㈠浘鏍囩晫闈�
+ /// </summary>
+ public void ModeView()
+ {
+
+ fLayout.RemoveAll();
///甯稿紑妯″紡鍥炬爣
- var modeIconBtn = new Button
+ Button modeIconBtn = new Button
{
X = Application.GetRealWidth(395),
Y = Application.GetRealHeight(92),
Width = Application.GetMinRealAverage(294),
Height = Application.GetMinRealAverage(294),
- UnSelectedImagePath = "ZigeeLogic/noMode.png",
- SelectedImagePath = "ZigeeLogic/openMode.png",
};
fLayout.AddChidren(modeIconBtn);
- var logic = await SkipView.GetLogicIfon();
- if (logic != null)
+ if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
{
-
fLayout.Height = Application.GetRealHeight(780);//鏀瑰彉楂樺害
- modeIconBtn.IsSelected = true;//鏀瑰彉鍥炬爣鐘舵��
+ modeIconBtn.UnSelectedImagePath = "ZigeeLogic/openMode.png";//鏀瑰彉鍥炬爣鐘舵��
///绗簩绾х埗鎺т欢
var openModeFl = new FrameLayout
{
@@ -82,56 +284,99 @@
TextSize = 16,
};
openModeFl.AddChidren(closeBtn);
- closeBtn.MouseUpEventHandler += (sender,e) => {
-
-
- var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm,
- Language.StringByID(MyInternationalizationString.doyouwanttodelete),
- Language.StringByID(MyInternationalizationString.confrim));
- alert.Show();
- alert.ConfirmClickEvent += () =>
+ closeBtn.MouseUpEventHandler += async (sender, e) =>
+ {
+ CommonPage.Loading.Start();
+ try
{
- Send.DelLogic(logic.LogicId);
- this.RemoveFromParent();
- var soneLogicList = new SoneLogicList();
- UserView.HomePage.Instance.AddChidren(soneLogicList);
- UserView.HomePage.Instance.PageIndex += 1;
- soneLogicList.Show();
- };
+ var result = await UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
+ if (result)
+ {
+ if (logicId != 0)
+ {
+
+ ///鏈夊彲鑳藉彧鏈夊父寮�妯″紡锛屾病鏈夋椂鏁堟�ц嚜鍔ㄥ寲
+ Send.DelLogic(logicId);
+ }
+ Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
+ ModeView();
+ }
+ else
+ {
+ LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.closeFailed));
+ }
+ }
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+
+ });
+ }
};
- ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
- var timeTextBtn= new Button
+
+ if (logicId != 0)
{
- Y = Application.GetRealHeight(127 + 69),
- X = Application.GetRealWidth(225),
- Width = Application.GetRealWidth(634),
- Height = Application.GetRealHeight(60),
- TextSize = 15,
- TextColor = ZigbeeColor.Current.LogicTextBlackColor,
- Text = "鏃舵晥鎬у父寮�璁剧疆12:20",
- };
- openModeFl.AddChidren(timeTextBtn);
- ///鏃舵晥鎬у父寮�鍙湁涓�涓潯浠�;
- try
- {
- var y = DateTime.Now.ToString("yy");//閭d竴骞�
- var m = DateTime.Now.ToString("mm");//閭d竴鏈�
- var d = DateTime.Now.ToString("dd");//閭d竴澶�
- var h =int.Parse(DateTime.Now.ToString("HH"));//褰撳墠绯荤粺鏃堕棿
- var me = DateTime.Now.ToLongDateString();
- var timeInt = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
- int dayInt = (h + timeInt)/ 24;//绠楀嚭鍑犲ぉ鍚庢墽琛�
- int hour = (h + timeInt) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛�
- timeTextBtn.Text = "鏃舵晥鎬у父寮�璁剧疆" + y + "骞�" + m + "鏈�" + d + dayInt + "鍙�" + timeInt + "鏃�"+ "鎵ц";
+ ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
+ 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);
+ string year = "";
+ string month = "";
+ int days = 0;
+ int hour = 0;
+ int minute = 0;
+
+ if (timeLong != 0)
+ {
+ ///璇诲彇缃戝叧鏃堕棿锛�
+ var datetime = GetLocalTime(timeLong);
+ ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
+ 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
+ {
+ ///璇诲彇绯荤粺鏃堕棿
+ 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;//璁剧疆鏃堕棿+褰撳墠绯荤粺鏃堕棿鏄惁瓒呭嚭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;
}
- catch { }
+
}
else
{
fLayout.Height = Application.GetRealHeight(645);//鏀瑰彉楂樺害
- modeIconBtn.IsSelected = false;//鏀瑰彉鍥炬爣鐘舵��
+ modeIconBtn.UnSelectedImagePath = "ZigeeLogic/noMode.png";//鏀瑰彉鍥炬爣鐘舵��
///绗簩绾х埗鎺т欢
var modeFl = new FrameLayout
{
@@ -142,7 +387,6 @@
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
fLayout.AddChidren(modeFl);
- modeFl.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
modeFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
///鏃舵晥鎬у父寮�璁剧疆鏄剧ず鏂囨湰鎺т欢
var modeTextBtn = new Button
@@ -155,7 +399,8 @@
TextSize = 15,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
TextAlignment = TextAlignment.CenterLeft,
- Text = "鏃舵晥鎬у父寮�璁剧疆",
+ // Text = "鏃舵晥鎬у父寮�璁剧疆",
+ TextID = MyInternationalizationString.timeSetSone,
};
modeFl.AddChidren(modeTextBtn);
///涓嬩竴绾ц彍鍗曞浘鏍囨帶浠�
@@ -165,133 +410,101 @@
Height = Application.GetMinRealAverage(104),
X = Application.GetRealWidth(861),
Y = Application.GetRealHeight(17),
- UnSelectedImagePath = "ZigeeLogic/next.png",
+ UnSelectedImagePath = "ZigeeLogic/nextIconSone.png",
};
modeFl.AddChidren(nextIconBtn);
+
+ ///鍔犲ぇ鐐瑰嚮鐑敭
+ var clickBtn = new Button
+ {
+ Width = Application.GetRealWidth(104 + 161 + 30),
+ Height = Application.GetRealHeight(138),
+ X = Application.GetRealWidth(700),
+ };
+ 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.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
+ {
+
+ }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+
+ });
+ }
+ });
+
+ });
+
+ };
}
+ listLogicFl.Y = fLayout.Bottom;
+ listLogicFl.X = Application.GetRealWidth(58);
+ listLogicFl.Height = Application.GetRealHeight(Method.H - 184) - fLayout.Height;
+ listLogicFl.Width = Application.GetRealWidth(1022);
+ listLogicFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
- #endregion
-
- #region 甯稿紑鑷姩鍖�
- ///绗笁鍧楃涓�绾х埗鎺т欢
- var listLogicFl = new FrameLayout
- {
- Y = fLayout.Bottom,
- X = Application.GetRealWidth(58),
- Height = middle.Height - fLayout.Height,
- Width = Application.GetRealWidth(1022),
- BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
- };
- middle.AddChidren(listLogicFl);
- listLogicFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
-
- ///娣诲姞甯稿紑鑷姩鍖栫殑鐖舵帶浠�
- var addLogicfL = new FrameLayout
- {
- Height = Application.GetRealHeight(187),
- Width = Application.GetRealWidth(1080 - 58),
- };
- listLogicFl.AddChidren(addLogicfL);
- ///甯稿紑鑷姩鍖栨樉绀烘枃鏈殑鎺т欢
- var addTextBtn = new Button
- {
- Y = Application.GetRealHeight(46),
- X = Application.GetRealWidth(58),
- Width = Application.GetRealWidth(600),
- Height = Application.GetRealHeight(95),
- TextSize = 24,
- TextColor = ZigbeeColor.Current.LogicTextBlackColor,
- TextAlignment = TextAlignment.CenterLeft,
- Text = "甯稿紑鑷姩鍖�",
- };
- addLogicfL.AddChidren(addTextBtn);
- ///娣诲姞鑷姩鍖栧浘鏍囩殑鎺т欢
- var addIconBtn = new Button
- {
- Width = Application.GetMinRealAverage(69),
- Height = Application.GetMinRealAverage(69),
- X = Application.GetRealWidth(890),
- Y = Application.GetRealHeight(60),
- UnSelectedImagePath = "ZigeeLogic/add.png",
- };
- addLogicfL.AddChidren(addIconBtn);
- addIconBtn.MouseUpEventHandler += (sender, e) =>
- {
- ZigBee.Device.DoorLock doorLock = null;
- if (doorLock == null)
- {
- ///闃叉鎶涘紓甯�
- doorLock = new ZigBee.Device.DoorLock();
- }
- Send.CurrentDoorLock = doorLock;
- Common.Logic.LogicDviceList.Clear();
- if (Common.Logic.LogicDviceList.Count == 0)
- {
- Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
- }
- //璇诲彇绯荤粺褰撳墠鏃堕棿锛氭椂-鍒�
- //璇诲彇绯荤粺褰撳墠鏃堕棿锛氭椂-鍒�
- 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("DoorLockOpenDelayTime", "0");
- timeConditionsInfo.Add("StartHour", h);
- timeConditionsInfo.Add("StartMin", m);
- Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
- actionsInfo.Add("LinkType", 8);
- actionsInfo.Add("DeviceAddr", doorLock.DeviceAddr);
- actionsInfo.Add("Epoint", "200");
- actionsInfo.Add("PassData", "055704010113");//榛樿闂ㄩ攣甯稿叧
- //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);
- Common.Logic.CurrentLogic.Conditions.Add(timeConditionsInfo);//娣诲姞鏉′欢
- Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//娣诲姞鐩爣
- var oneLogic = new OneLogic();
- UserView.HomePage.Instance.AddChidren(oneLogic);
- UserView.HomePage.Instance.PageIndex += 1;
- oneLogic.Show(false);
-
- };
-
- ///甯稿紑鑷姩鍖栧垪琛ㄤ笂涓嬫粦鍔ㄧ殑鎺т欢
- var verticalRefresh = new VerticalRefreshLayout
- {
-
- Y = addLogicfL.Bottom,
- X = Application.GetRealWidth(46),
- Height = listLogicFl.Height - addLogicfL.Height,
- Width = listLogicFl.Width - Application.GetRealWidth(46),
- };
- listLogicFl.AddChidren(verticalRefresh);
- verticalRefresh.BeginHeaderRefreshingAction += () =>
- {
- Common.Logic.SoneLogicList.Clear();
- Read(verticalRefresh, false);
- verticalRefresh.EndHeaderRefreshing();
- };
- Read(verticalRefresh, true);
- #endregion
+ 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);
}
/// <summary>
/// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱
/// </summary>
- /// <param name="verticalRefresh"></param>
- private async void Read(VerticalRefreshLayout verticalRefresh, bool yes)
+ /// <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)
@@ -306,8 +519,11 @@
if (logic.LogicType != 2)
{
continue;
+ }
+ if (SkipView.ExistLogic(logic, Send.CurrentDoorLock))
+ {
+ Common.Logic.SoneLogicList.Add(logic);
}
- Common.Logic.SoneLogicList.Add(logic);
}
}
}
@@ -316,53 +532,65 @@
{
var dd = e.Message;
}
- //鑷姩鍖�
- RefreshView(verticalRefresh);
- if (yes)
+ finally
{
- CommonPage.Loading.Hide();
+ Application.RunOnMainThread(() =>
+ {
+ // if (yes)
+ // {
+ CommonPage.Loading.Hide();
+ // }
+ //鑷姩鍖�
+ RefreshView();
+ });
}
+
}
+ /// <summary>
+ /// 璁板綍宸︽粦鐘舵��
+ /// </summary>
+ RowLayout selectedRow = new RowLayout() { Tag = "0" };
+ int a = 1;
/// <summary>
/// 鍔犺浇鑷姩鍖栧垪琛�
/// </summary>
- /// <param name="verticalRefresh"></param>
- private void RefreshView(VerticalRefreshLayout verticalRefresh)
+ public void RefreshView()
{
verticalRefresh.RemoveAll();
- for (int i = 0; i < 6; i++)
- {
- Common.Logic.SoneLogicList.Add(new Common.Logic { LogicName = i.ToString() });
-
- }
foreach (var logic in Common.Logic.SoneLogicList)
{
+ if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock))
+ {
+ ///涓嶆槸璇ラ棬閿佽嚜鍔ㄥ寲灏变笉鏄剧ず鍑烘潵;
+ continue;
+ }
#region 鑷姩鍖栧竷灞�View
-
///鑷姩鍖栫埗鎺т欢
- var fLayout = new FrameLayout
+ var fLayoutLogic = new FrameLayout
{
Height = Application.GetRealHeight(184),
};
- verticalRefresh.AddChidren(fLayout);
+ verticalRefresh.AddChidren(fLayoutLogic);
///宸﹀彸鍙粦鍔ㄦ帶浠�
var logicRow = new RowLayout
{
LineColor = ZigbeeColor.Current.LogicBackgroundColor,
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
SubViewWidth = Application.GetRealWidth(184),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛�
+ Tag = a.ToString(),
};
- fLayout.AddChidren(logicRow);
+ fLayoutLogic.AddChidren(logicRow);
//宸︽粦鑿滃崟浜嬩欢
logicRow.OpenMenuAction += () =>
{
- //if (selectedRow.Tag.ToString() != logicRowlayout.Tag.ToString())
- //{ //淇濈暀宸︽粦鍙湁涓�涓�;
- // selectedRow.HideMenu();//
- //}
- //selectedRow = logicRowlayout;
+ if (selectedRow.Tag.ToString() != logicRow.Tag.ToString())
+ { //淇濈暀宸︽粦鍙湁涓�涓�;
+ selectedRow.HideMenu();//
+ }
+ selectedRow = logicRow;
};
+ a++;
///鏄剧ず閫昏緫鍚嶇О鐨勬帶浠�
var nameBtn = new Button
{
@@ -427,10 +655,7 @@
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
};
logicRow.AddRightView(edit);
- if (logic.LogicType == 2)
- {
- edit.TextID = MyInternationalizationString.look;
- }
+
///鍒犻櫎
var del = new Button
{
@@ -442,12 +667,12 @@
///绾跨殑鎺т欢
var line = new Button
{
- Y = fLayout.Height - 1,
+ Y = fLayoutLogic.Height - 1,
Height = 1,
Width = Application.GetRealWidth(976),
BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
- fLayout.AddChidren(line);
+ fLayoutLogic.AddChidren(line);
#endregion
///寮�鍏崇偣鍑讳簨浠�
switchBtn.MouseUpEventHandler += (sender1, e1) =>
@@ -463,6 +688,7 @@
else
{
//閫昏緫鍏�
+ logic.IsEnable = 0;
typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png";
typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
}
@@ -489,13 +715,25 @@
{
Common.Logic.SoneLogicList.Remove(logic);
//logicRow.Parent.RemoveFromParent();
- fLayout.RemoveFromParent();
+ fLayoutLogic.RemoveFromParent();
Send.DelLogic(logic.LogicId);
};
};
}
-
+ }
+ /// <summary>
+ /// 鏃堕棿鎴宠浆鎹㈡垚鏃堕棿鏍煎紡
+ /// </summary>
+ /// <param name="unixTimeStamp">鏃堕棿鎴�</param>
+ /// <returns></returns>
+ public DateTime GetLocalTime(int unixTimeStamp)
+ {
+ DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
+ long lTime = long.Parse(unixTimeStamp + "0000000");
+ TimeSpan toNow = new TimeSpan(lTime);
+ DateTime dtResult = dtStart.Add(toNow);
+ return dtResult;
}
}
--
Gitblit v1.8.0