From 652243206427f35a256400a149a1734085824cb9 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期三, 02 九月 2020 17:35:03 +0800 Subject: [PATCH] 2020-09-02-4 --- 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