From 5da99fed2eb0d08b6338064da5f998891252c7b8 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期一, 18 五月 2020 16:39:59 +0800 Subject: [PATCH] 2020-05-18-2 --- ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs | 383 ++++++++++++++++++++++++++++++------------------------ 1 files changed, 210 insertions(+), 173 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs index 54c93b3..435cff9 100644 --- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs @@ -3,7 +3,6 @@ using Shared.Common; using Shared.R; using Shared; -using Shared.Phone.UserCenter.DoorLock; namespace Shared.Phone.Device.Logic { @@ -14,23 +13,27 @@ { Tag = "SoneLogic"; soneLogicList = this; + } /// 缁欏緪姊呭埛鏂扮晫闈㈢敤鐨� public Action<bool> action; ///绗簩鍧楃涓�绾х埗鎺т欢 FrameLayout fLayout = new FrameLayout(); - ///甯稿紑妯″紡鍥炬爣 - Button modeIconBtn = new Button(); - ///绗簩鍧楃浜岀骇鐖舵帶浠� - FrameLayout modeFl = new FrameLayout(); - Button button1 = new Button(); - Button button2= new Button(); ///绗笁鍧楃涓�绾х埗鎺т欢 FrameLayout listLogicFl = new FrameLayout(); ///甯稿紑鑷姩鍖栧垪琛ㄤ笂涓嬫粦鍔ㄧ殑鎺т欢 VerticalRefreshLayout verticalRefresh = new VerticalRefreshLayout(); + /// <summary> + /// 璁板綍閫昏緫id + /// </summary> + public int logicId = 0; + /// <summary> + /// 璁板綍閫変腑鏃堕棿 + /// </summary> + public int timeValue = 0; public async void Show() { + #region 鐣岄潰鐨勫竷灞�浠g爜 UserView.HomePage.Instance.ScrollEnabled = false;//閿佷綇宸︽粦 TopView view = new TopView(); @@ -56,6 +59,24 @@ }; 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"]); + } + catch { } + } + } #region 甯稿紑妯″紡鍥炬爣 鏃舵晥鎬у父寮�璁剧疆 ///绗簩鍧楃涓�绾х埗鎺т欢 @@ -66,33 +87,8 @@ BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; middle.AddChidren(fLayout); - ///甯稿紑妯″紡鍥炬爣 - modeIconBtn = new Button - { - X = Application.GetRealWidth(395), - Y = Application.GetRealHeight(92), - Width = Application.GetMinRealAverage(294), - Height = Application.GetMinRealAverage(294), - }; - fLayout.AddChidren(modeIconBtn); - ///绗簩鍧楃浜岀骇鐖舵帶浠� - modeFl = new FrameLayout - { - }; - fLayout.AddChidren(modeFl); - - button1 = new Button - { - }; - modeFl.AddChidren(button1); - - button2 = new Button - { - }; - modeFl.AddChidren(button2); ModeView(); #endregion - #region 甯稿紑鑷姩鍖� ///绗笁鍧楃涓�绾х埗鎺т欢 listLogicFl = new FrameLayout @@ -137,7 +133,7 @@ UnSelectedImagePath = "ZigeeLogic/add.png", }; addLogicfL.AddChidren(addIconBtn); - + ///鍔犲ぇ鐐瑰嚮鐑敭 var addIconclickBtn = new Button { Width = Application.GetRealWidth(90 + 69 + 63), @@ -168,6 +164,10 @@ 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(); @@ -176,6 +176,7 @@ 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; @@ -202,7 +203,7 @@ Read(true); #endregion - DoorLockCommonInfo.LogicAction = (_bool) => + UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = (_bool) => { try @@ -220,36 +221,46 @@ /// <summary> /// 甯稿紑妯″紡寮�鍏冲垏鎹㈠浘鏍囩晫闈� /// </summary> - public async void ModeView() + public void ModeView() { - + + fLayout.RemoveAll(); + ///甯稿紑妯″紡鍥炬爣 + Button modeIconBtn = new Button + { + X = Application.GetRealWidth(395), + Y = Application.GetRealHeight(92), + Width = Application.GetMinRealAverage(294), + Height = Application.GetMinRealAverage(294), + }; + fLayout.AddChidren(modeIconBtn); if (Send.CurrentDoorLock.IsDoorLockNormallyMode) { - /// 鏌ユ壘鏄惁瀛樺湪鏃舵晥鎬ц嚜鍔ㄥ寲锛涙湁鐨勮瘽灏辫繑鍥炶嚜鍔ㄥ寲瀵硅薄; - var logic = await SkipView.GetLogicIfon(); - fLayout.Height = Application.GetRealHeight(780);//鏀瑰彉楂樺害 + fLayout.Height = Application.GetRealHeight(780);//鏀瑰彉楂樺害 modeIconBtn.UnSelectedImagePath = "ZigeeLogic/openMode.png";//鏀瑰彉鍥炬爣鐘舵�� - modeFl.Y = modeIconBtn.Bottom + Application.GetRealHeight(64); - modeFl.X = Application.GetRealWidth(0); - modeFl.Height = Application.GetRealHeight(127 + 199); - modeFl.Width = Application.GetRealHeight(1080); - modeFl.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; - modeFl.SetCornerWithSameRadius(Application.GetRealHeight(0), HDLUtils.RectCornerBottomLeft); - + ///绗簩绾х埗鎺т欢 + var openModeFl = new FrameLayout + { + Y = Application.GetRealHeight(455), + Height = Application.GetRealHeight(127 + 199), + Width = Application.GetRealWidth(1080), + }; + fLayout.AddChidren(openModeFl); ///鍏抽棴鏃舵晥鎬ц嚜鍔ㄥ寲 - button1.Y = Application.GetRealHeight(0); - button1.X = Application.GetRealWidth(86); - button1.Width = Application.GetRealWidth(907); - button1.Height = Application.GetRealHeight(127); - button1.Radius = (uint)Application.GetRealHeight(58); - button1.BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor; - button1.TextAlignment = TextAlignment.Center; - button1.TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor; - button1.TextID = MyInternationalizationString.closeUp; - button1.TextSize = 16; - - button1.MouseUpEventHandler = async (sender, e) => + Button closeBtn = new Button + { + X = Application.GetRealWidth(86), + Height = Application.GetRealHeight(127), + Width = Application.GetRealWidth(907), + Radius = (uint)Application.GetRealHeight(58), + BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor, + TextID = MyInternationalizationString.closeUp, + TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, + TextSize = 16, + }; + openModeFl.AddChidren(closeBtn); + closeBtn.MouseUpEventHandler += async (sender, e) => { CommonPage.Loading.Start(); try @@ -257,11 +268,11 @@ var result = await UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock); if (result) { - if (logic != null) + if (logicId != 0) { + ///鏈夊彲鑳藉彧鏈夊父寮�妯″紡锛屾病鏈夋椂鏁堟�ц嚜鍔ㄥ寲 - ///娌℃湁鍒ゆ柇鐨勮瘽锛岄�昏緫浼氫负绌猴紝鎶涘嚭寮傚父; - Send.DelLogic(logic.LogicId); + Send.DelLogic(logicId); } Send.CurrentDoorLock.IsDoorLockNormallyMode = false; ModeView(); @@ -281,132 +292,151 @@ }); } }; - if (logic != null) + + ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢 + var timeTextBtn = new Button { - ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢 - button2.Y = Application.GetRealHeight(127 + 69); - button2.X = Application.GetRealWidth(125); - button2.Width = Application.GetRealWidth(634 + 200); - button2.Height = Application.GetRealHeight(60); - button2.UnSelectedImagePath = "ZigeeLogic/1234.png"; - button2.TextSize = 15; - button2.TextColor = ZigbeeColor.Current.LogicTextBlackColor; + Y = Application.GetRealHeight(127 + 69), + X = Application.GetRealWidth(125), + Width = Application.GetRealWidth(634 + 200), + Height = Application.GetRealHeight(60), + TextSize = 15, + TextColor = ZigbeeColor.Current.LogicTextBlackColor, + }; + if (logicId != 0) + { + openModeFl.AddChidren(timeTextBtn); ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈� var y = DateTime.Now.Year.ToString();//閭d竴骞� var m = DateTime.Now.Month.ToString();//閭d竴鏈� var d = DateTime.Now.ToString("dd");//閭d竴澶� - var h = int.Parse(DateTime.Now.ToString("HH"));//褰撳墠绯荤粺鏃堕棿 - var timeInt = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]); - int dayInt = (h + timeInt) / 24;//绠楀嚭鍑犲ぉ鍚庢墽琛� - int hour = (h + timeInt) % 24;//绠楀嚭鍑犲ぉ鍚庨偅涓椂闂存墽琛� + 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;//鍒嗛挓 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.executeSone); - button2.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5; + string text5 = Language.StringByID(MyInternationalizationString.hour1); + string text6 = Language.StringByID(MyInternationalizationString.executeSone); + // timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6; + timeTextBtn.Text = text1 + m + text3 + days.ToString() + text4 + hour.ToString() + text5 + minute.ToString() + text6; } - else { - button2.Y = Application.GetRealHeight(0); - button2.X = Application.GetRealWidth(0); - button2.Width = Application.GetRealWidth(0); - button2.Height = Application.GetRealHeight(0); - } - + } else { fLayout.Height = Application.GetRealHeight(645);//鏀瑰彉楂樺害 modeIconBtn.UnSelectedImagePath = "ZigeeLogic/noMode.png";//鏀瑰彉鍥炬爣鐘舵�� - modeFl.Y = modeIconBtn.Bottom + Application.GetRealHeight(92); - modeFl.X = Application.GetRealWidth(58); - modeFl.Height = Application.GetRealHeight(138); - modeFl.Width = Application.GetRealHeight(1022); - modeFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor; + ///绗簩绾х埗鎺т欢 + var modeFl = new FrameLayout + { + Y = Application.GetRealHeight(478), + X = Application.GetRealWidth(58), + Height = Application.GetRealHeight(138), + Width = Application.GetRealWidth(1022), + BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, + }; + fLayout.AddChidren(modeFl); modeFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); - ///鏃舵晥鎬у父寮�璁剧疆鏄剧ず鏂囨湰鎺т欢 - button1.Y = Application.GetRealHeight(40); - button1.X = Application.GetRealWidth(58); - button1.Width = Application.GetRealWidth(600); - button1.Height = Application.GetRealHeight(60); - button1.Radius = (uint)Application.GetRealHeight(0); - button1.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor; - button1.TextAlignment = TextAlignment.CenterLeft; - button1.TextColor = ZigbeeColor.Current.LogicTextBlackColor; - // Text = "鏃舵晥鎬у父寮�璁剧疆", - button1.TextID = MyInternationalizationString.timeSetSone; - button1.TextSize = 15; - - - ///涓嬩竴绾ц彍鍗曞浘鏍囨帶浠� - button2.Width = Application.GetMinRealAverage(104); - button2.Height = Application.GetMinRealAverage(104); - button2.X = Application.GetRealWidth(861); - button2.Y = Application.GetRealHeight(17); - button2.UnSelectedImagePath = "ZigeeLogic/nextIconSone.png"; - button2.TextSize = 15; - button2.TextColor = ZigbeeColor.Current.LogicTextBlackColor; - button2.Text =""; - button2.MouseUpEventHandler = (sender, e) => + var modeTextBtn = new Button { - 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();//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫 - var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫 - if (!addResult) - { - ///鍙璇村鏋滃父寮�妯″紡寮�锛屽垱寤鸿嚜鍔ㄥ寲澶辫触锛岄偅涔堝皢瑕佸彂涓�鏉″父寮�妯″紡鍏抽棴鍛戒护; - UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock); - ///鎻愮ず澶辫触 - LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed)); - return; - } - Send.CurrentDoorLock.IsDoorLockNormallyMode = true; - ModeView(); - - - } - } - catch - { - - } - finally - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - - }); - } - }); - - }); - + Y = Application.GetRealHeight(40), + X = Application.GetRealWidth(58), + Width = Application.GetRealWidth(600), + Height = Application.GetRealHeight(60), + TextSize = 15, + TextColor = ZigbeeColor.Current.LogicTextBlackColor, + TextAlignment = TextAlignment.CenterLeft, + // Text = "鏃舵晥鎬у父寮�璁剧疆", + TextID = MyInternationalizationString.timeSetSone, }; - } + modeFl.AddChidren(modeTextBtn); + ///涓嬩竴绾ц彍鍗曞浘鏍囨帶浠� + var nextIconBtn = new Button + { + Width = Application.GetMinRealAverage(104), + Height = Application.GetMinRealAverage(104), + X = Application.GetRealWidth(861), + Y = Application.GetRealHeight(17), + 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.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; + 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; @@ -438,9 +468,12 @@ { continue; } - Common.Logic.SoneLogicList.Add(logic); + if (SkipView.ExistLogic(logic, Send.CurrentDoorLock)) + { + Common.Logic.SoneLogicList.Add(logic); + } } - } + } } } catch (Exception e) @@ -455,8 +488,10 @@ } } - - RowLayout selectedRow = new RowLayout() { Tag = "0" };//璁板綍宸︽粦鐘舵�� + /// <summary> + /// 璁板綍宸︽粦鐘舵�� + /// </summary> + RowLayout selectedRow = new RowLayout() { Tag = "0" }; int a = 1; /// <summary> /// 鍔犺浇鑷姩鍖栧垪琛� @@ -466,6 +501,10 @@ verticalRefresh.RemoveAll(); foreach (var logic in Common.Logic.SoneLogicList) { + if (!SkipView.ExistLogic(logic, Send.CurrentDoorLock)) + { + continue; + } #region 鑷姩鍖栧竷灞�View ///鑷姩鍖栫埗鎺т欢 var fLayoutLogic = new FrameLayout @@ -556,10 +595,7 @@ TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, }; logicRow.AddRightView(edit); - if (logic.LogicType == 2) - { - edit.TextID = MyInternationalizationString.look; - } + ///鍒犻櫎 var del = new Button { @@ -592,6 +628,7 @@ else { //閫昏緫鍏� + logic.IsEnable = 0; typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png"; typeBjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; } @@ -625,6 +662,6 @@ }; } } - + } } -- Gitblit v1.8.0