From 6bca8fcd37a48808a0b9c9342fc1be0adddfece6 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期五, 08 五月 2020 17:46:44 +0800 Subject: [PATCH] 请合并最新代码,优化绑定信息 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs | 261 ++++++++++++++++++++++----------------------------- 1 files changed, 112 insertions(+), 149 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs index fdac3f9..90e4420 100644 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs @@ -41,13 +41,19 @@ /// <summary> /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡 /// </summary> - private bool HaveLogicNormallyOpenMode = false; + private bool haveLogicNormallyOpenMode = false; + + /// <summary> + /// 闂ㄩ攣娣卞害鎺у埗涓婃姤绐楀彛鏄惁寮瑰嚭 + /// </summary> + public static bool canShowDialog = true; + /// <summary> /// 褰撳墠鐢甸噺 /// </summary> bool canVolume = false; /// <summary> - /// 淇濈暀涓婁竴娆¢煶閲� + /// 鏄惁鏀寔甯稿紑 /// </summary> bool canOpenNormallyMode = false; /// <summary> @@ -218,7 +224,7 @@ ClickHandle(); - if (doorLock.IsOnline == 1) + if (Common.LocalDevice.Current.CheckDeviceIsOnline(doorLock) == true) { ReadDoorLockUserInfo(); } @@ -605,15 +611,18 @@ { return; } - string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) + if (doorLock.IsDoorLockNormallyMode) { - if (doorLock.IsDoorLockNormallyMode[key] == true) - { - if (canOpenNormallyMode) + if (canOpenNormallyMode) + { + Application.RunOnMainThread(() => { - Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); }); - } + Action<bool> action = (obj) => + { + UpdateNomallyOpenStatus(); + }; + DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action); + }); } } } @@ -685,19 +694,17 @@ { tempRes = false; } - - NormallyOpenModeValue(tempRes); - + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes); Application.RunOnMainThread(async () => { - var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(); + var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2); if (resTemp == 1) { - HaveLogicNormallyOpenMode = true; + haveLogicNormallyOpenMode = true; } else if (resTemp == 0) { - HaveLogicNormallyOpenMode = false; + haveLogicNormallyOpenMode = false; } }); } @@ -790,13 +797,11 @@ //璁剧疆 EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) => { - //鎵撳紑鍏朵粬鐣岄潰鏃跺墠绉婚櫎 - RemoveFromParent(); var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(currentRoom, doorLock); Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting); Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; functionSetting.Show(); - + canShowDialog = false; functionSetting.devicNameAction += (deviceRename) => { if (!string.IsNullOrEmpty(deviceRename)) @@ -827,6 +832,7 @@ //鍘嗗彶璁板綍 ---- stan var form = new DeviceDoorLock.DoorLockHistoryLogForm(); form.AddForm(this.doorLock.DeviceAddr); + canShowDialog = false; }; btnRecordFrameLayout.MouseDownEventHandler += handerRecord; btnRecord.MouseDownEventHandler += handerRecord; @@ -850,20 +856,18 @@ //寮�閿佷簨浠� EventHandler<MouseEventArgs> hander1 = async (sender, e) => { - - string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) + if (doorLock.IsDoorLockNormallyMode) { - if (doorLock.IsDoorLockNormallyMode[key] == true) + if (canOpenNormallyMode) { - if (canOpenNormallyMode) - { - NomallyOpenModeInvalidDialog(false); - } - else + Application.RunOnMainThread(() => { - OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus); - } + Action<bool> action = (obj) => + { + UpdateNomallyOpenStatus(); + }; + DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action); + }); } else { @@ -887,13 +891,16 @@ { if (canOpenNormallyMode) { - var key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) + if (doorLock.IsDoorLockNormallyMode) { - if (doorLock.IsDoorLockNormallyMode[key] == true) + Application.RunOnMainThread(() => { - NomallyOpenModeInvalidDialog(); - } + Action<bool> action = (obj) => + { + UpdateNomallyOpenStatus(); + }; + DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action); + }); } } else @@ -1036,90 +1043,54 @@ } #endregion - #region 甯稿紑妯″紡 - /// <summary> - /// 闂ㄩ攣甯稿紑妯″紡鍊� - /// </summary> - public void NormallyOpenModeValue(bool value) - { - string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) - { - doorLock.IsDoorLockNormallyMode[key] = value; - } - else - { - doorLock.IsDoorLockNormallyMode.Add(key, value); - } - } - + #region 甯稿紑妯″紡 /// <summary> /// 甯稿紑妯″紡澶勭悊 /// </summary> private async void NomallyOpenDialog() { - if (!btnNormallyOpen.IsSelected) + #region 鍚庣画鐗堟湰 + if (UserCenterResourse.UserInfo.AuthorityNo != 1) { - if (UserCenterResourse.UserInfo.AuthorityNo != 1) - { - this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate)); - return; - } + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate)); + return; + } - if (!UserCenterResourse.AccountOption.DoorUnLockByRemote) - { - SystemSecondAuthentication(); - return; - } + if (!UserCenterResourse.AccountOption.DoorUnLockByRemote) + { + SystemSecondAuthentication(); + return; + } - action = () => - { - string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n"); - var confirm = Language.StringByID(R.MyInternationalizationString.Confrim); - var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm); - alert.Show(); - - alert.ConfirmClickEvent += async () => - { - Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); - var result = await doorLock.SetNormallyOpenModeFuncAsync(true); - if (result == null || result.defaultControlResponseData == null) - { - string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); - this.ShowTipMsg(msg0); - return; - } - if (result.defaultControlResponseData.status != 0) - { - string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed); - this.ShowTipMsg(msg1); - return; - } - else - { - //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰� - HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9001, string.Empty); - - //姣忔閲嶆柊璁剧疆甯稿紑锛岄粯璁ゆ椂闂撮兘鏄�12灏忔椂 - DoorLockCommonInfo.NormallyOpenModeInvalidTime = 12; - NormallyOpenModeValue(true); - Application.RunOnMainThread(() => - { - UpdateNomallyOpenStatus(); - CommonPage.Loading.Hide(); - }); - - //甯稿紑妯″紡寮�鍚彁绀� - AlreadyOpenNormallyMode(); - } - }; + action = () => + { + //绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥�� + if (doorLock == null) + { + ///闃叉鎶涘紓甯� + return; + } + ///澶囨敞锛歐JC鐨� + Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock; + ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱 + Common.Logic.LogicDviceList.Clear(); + if (Common.Logic.LogicDviceList.Count == 0) + { + Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray()); + } + var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList(); + UserView.HomePage.Instance.AddChidren(addLogicPage); + UserView.HomePage.Instance.PageIndex += 1; + addLogicPage.Show(); + addLogicPage.action += (w) => + { + doorLock.IsDoorLockNormallyMode = w; + ///鐣欑粰寰愭鐢ㄧ殑 + UpdateNomallyOpenStatus(); }; - HdlCheckLogic.Current.CheckSecondarySecurity(action); - } - else - { - NomallyOpenModeInvalidDialog(); - } + }; + HdlCheckLogic.Current.CheckSecondarySecurity(action); + #endregion } /// <summary> @@ -1127,6 +1098,11 @@ /// </summary> public void NomallyOpenModeInvalidDialog(bool IsFromReport = false) { + if (!canShowDialog) + { + return; + } + if (UserCenterResourse.UserInfo.AuthorityNo != 1) { this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate)); @@ -1135,7 +1111,7 @@ string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n"); var confirm = Language.StringByID(R.MyInternationalizationString.SureCancel); var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.NomallyOpenMode, msg, confirm); - if (HaveLogicNormallyOpenMode) + if (haveLogicNormallyOpenMode) { //鏈夐�昏緫璁剧疆鐨勫脊绐� alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm); @@ -1146,14 +1122,14 @@ { if (IsFromReport) { - //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷 - NormallyOpenModeValue(false); + //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷 + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); Application.RunOnMainThread(() => { UpdateNomallyOpenStatus(); }); //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫 - if (HaveLogicNormallyOpenMode) + if (haveLogicNormallyOpenMode) { var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3); //if (resTemp == 3) @@ -1165,8 +1141,8 @@ } else { - //app榛樿鈥滃父寮�妯″紡鈥濊繕鏄紑鍚� - NormallyOpenModeValue(true); + //app榛樿鈥滃父寮�妯″紡鈥濊繕鏄紑鍚� + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); Application.RunOnMainThread(() => { UpdateNomallyOpenStatus(); @@ -1181,7 +1157,7 @@ //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑� Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); //鍏堝垹闄ゅ凡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫 - if (HaveLogicNormallyOpenMode) + if (haveLogicNormallyOpenMode) { var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3); //if (resTemp == 3) @@ -1195,11 +1171,11 @@ var result = await doorLock.SetNormallyOpenModeFuncAsync(true); if (result == null || result.defaultControlResponseData == null) { - string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); - this.ShowTipMsg(msg0); - NormallyOpenModeValue(false); Application.RunOnMainThread(() => { + string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); + this.ShowTipMsg(msg0); + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); UpdateNomallyOpenStatus(); }); return; @@ -1208,7 +1184,7 @@ { string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed); this.ShowTipMsg(msg1); - NormallyOpenModeValue(false); + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); Application.RunOnMainThread(() => { UpdateNomallyOpenStatus(); @@ -1217,8 +1193,8 @@ } else { - //淇濇寔鈥滃父寮�鎴愬姛鈥� - NormallyOpenModeValue(true); + //淇濇寔鈥滃父寮�鎴愬姛鈥� + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); Application.RunOnMainThread(() => { UpdateNomallyOpenStatus(); @@ -1237,8 +1213,8 @@ } else { - //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥� - NormallyOpenModeValue(true); + //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥� + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); Application.RunOnMainThread(() => { UpdateNomallyOpenStatus(); @@ -1250,15 +1226,15 @@ { if (IsFromReport) { - //涓婃姤闂ㄩ攣鈥滃父寮�妯″紡鈥濆凡缁忓彇娑堬紝鐜板湪app纭鈥滃父寮�妯″紡鈥濆彇娑� - NormallyOpenModeValue(false); + //涓婃姤闂ㄩ攣鈥滃父寮�妯″紡鈥濆凡缁忓彇娑堬紝鐜板湪app纭鈥滃父寮�妯″紡鈥濆彇娑� + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); Application.RunOnMainThread(() => { UpdateNomallyOpenStatus(); }); //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫 - if (HaveLogicNormallyOpenMode) + if (haveLogicNormallyOpenMode) { var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3); //if (resTemp == 3) @@ -1290,14 +1266,14 @@ //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰� HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9002, string.Empty); - //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� - NormallyOpenModeValue(false); + //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); Application.RunOnMainThread(() => { UpdateNomallyOpenStatus(); }); //鍒犻櫎璁剧疆甯稿紑妯″紡鍒涘缓鐨勯�昏緫 - if (HaveLogicNormallyOpenMode) + if (haveLogicNormallyOpenMode) { var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3); //鍥犱负鐩墠鏈哄埗闂锛岄�昏緫缁忓父澶辫触锛屾墍浠ヤ笉鎻愮ず锛屽悗鏈熸満鍒惰鏀癸紝閲嶆柊鍋氫竴涓繖涓晫闈� @@ -1367,19 +1343,6 @@ alertTimeInValidSetting.InvalidTimeAction += async (obj) => { - Regex rg = new Regex("^[0-9]+$"); - if (!rg.IsMatch(obj)) - { - //蹇呴』鏄暟瀛� - string msg0 = Language.StringByID(R.MyInternationalizationString.NormallyOpenModeInvalidTimeTip); - this.ShowTipMsg(msg0); - - string msgTimeInValidSetting2 = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime); - var timeConfrim2 = Language.StringByID(R.MyInternationalizationString.Confrim); - var alertTimeInValidSetting2 = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting2, timeConfrim2); - alertTimeInValidSetting2.Show(); - return; - } //甯稿紑妯″紡澶辨晥鏃堕棿璁剧疆鎴愬姛 var temp = int.Parse(obj); DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp; @@ -1389,8 +1352,8 @@ { //榛樿鍒涘缓甯稿紑妯″紡澶辫触 string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed); - this.ShowTipMsg(msg0); - + var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim)); + alert.Show(); //浜屾鍔犺浇寮圭獥 甯稿紑妯″紡寮�鍚彁绀� NomallyOpenModeInvalidTimeDialog(); } @@ -1407,8 +1370,7 @@ btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0); return; } - string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - if (doorLock.IsDoorLockNormallyMode[key] == true) + if (doorLock.IsDoorLockNormallyMode) { btnNormallyOpen.IsSelected = true; btnDoorLockPic.IsSelected = true; @@ -1416,7 +1378,7 @@ btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen); } - else if (doorLock.IsDoorLockNormallyMode[key] == false) + else if (!doorLock.IsDoorLockNormallyMode) { btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose); btnDoorLockPic.IsSelected = false; @@ -1505,6 +1467,7 @@ CommonPage.Instance.IsDrawerLockMode = false; } ZbGateway.StatusList.Remove(this); + DoorLockCommonInfo.LogicAction = null; base.RemoveFromParent(); } #endregion -- Gitblit v1.8.0