From ef0c6b76b06590b38f6e87d1e4efb35b81374502 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期一, 25 五月 2020 09:49:02 +0800 Subject: [PATCH] 请合并代码,优化逻辑执行提示和撤销门锁定时功能。 --- ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs | 97 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 73 insertions(+), 24 deletions(-) diff --git a/ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs index ea254b3..e84d61a 100644 --- a/ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs +++ b/ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs @@ -17,12 +17,29 @@ public UserDoorLockPage(Room room, CommonDevice doorLock) { //寰愭鐨勯棬閿佺晫闈㈡墦寮�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�) - ControlCommonResourse.IsDoorLockPageOpen = true; + //ControlCommonResourse.IsDoorLockPageOpen = true; this.doorLock = doorLock as ZigBee.Device.DoorLock; currentRoom = room; deviceUI = doorLock; BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor; ZbGateway.StatusList.Add(this); + Application.RunOnMainThread(() => + { + ControlCommonResourse.UpdateDoorLockStatusAction = (obj) => + { + UpdateNomallyOpenStatus(); + }; + + UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, status) => + { + var key = doorLock.DeviceAddr + doorLock.DeviceEpoint; + if (DoorlockKey == key) + { + DoorLockCommonInfo.NormallyOpenModeValue(this.doorLock, status); + UpdateNomallyOpenStatus(); + } + }; + }); } #region 鍙橀噺鐢虫槑 @@ -41,7 +58,7 @@ /// <summary> /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡 /// </summary> - private bool haveLogicNormallyOpenMode = false; + private bool haveLogicNormallyOpenMode = false; /// <summary> /// 褰撳墠鐢甸噺 @@ -183,7 +200,7 @@ #endregion /// <summary> - /// UI鏄剧ず + /// UI鏄剧ず /// </summary> public void Show() { @@ -508,7 +525,7 @@ TextAlignment = TextAlignment.CenterLeft, }; btnCurrentFrameLayout.AddChidren(btnCurrentRoomName); - #endregion + #endregion } #region 闊抽噺寮圭獥 @@ -563,7 +580,7 @@ ThumbImagePath = "DoorLock/UnLockButton.png",//杩涘害鏉℃寜閽浘鏍� ThumbImageHeight = Application.GetRealHeight(81),//杩涘害鏉℃寜閽浘鏍囩殑楂樺害锛堥粯璁ゆ鏂瑰舰锛氬鍜岄珮涓�鏍凤級 ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor, - ProgressTextSize = 12,//鏄剧ず鐧惧垎姣斿瓧浣撳ぇ灏� + ProgressTextSize = 12,//鏄剧ず鐧惧垎姣斿瓧浣撳ぇ灏� SeekBarViewHeight = Application.GetRealHeight(17),//杩涘害鏉$殑瀹藉害 Progress = currentVolume, }; @@ -620,6 +637,35 @@ } } } + + //缃戝叧鎵ц閫昏緫锛屽父寮�妯″紡澶辨晥涓婃姤 + //if (typeTag == "DoorLockAlarmsSendAlarmInform" && tempDevice != null) + //{ + // var doorL = (ZigBee.Device.DoorLock)tempDevice; + + // if (doorL.DeviceAddr + doorL.DeviceEpoint == doorLock.DeviceAddr + doorLock.DeviceEpoint) + // { + // //闈炰富浜轰笉寮硅繖涓獥鍙� + // if (UserCenterResourse.UserInfo.AuthorityNo != 1) + // { + // return; + // } + // if (doorLock.IsDoorLockNormallyMode) + // { + // if (canOpenNormallyMode) + // { + // Application.RunOnMainThread(() => + // { + // Action<bool> action = (obj) => + // { + // UpdateNomallyOpenStatus(); + // }; + // DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action); + // }); + // } + // } + // } + //} if (typeTag == "DeviceStatusReport" && tempDevice != null) { @@ -687,16 +733,17 @@ tempRes = false; } DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes); + Application.RunOnMainThread(async () => { var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3, doorLock); - if (resTemp == 1) - { - haveLogicNormallyOpenMode = true; - } - else if (resTemp == 0) + if (resTemp == 0) { haveLogicNormallyOpenMode = false; + } + else + { + haveLogicNormallyOpenMode = true; } }); } @@ -713,7 +760,7 @@ canVolume = DoorLockCommonInfo.CanVolume(doorLock); if (canVolume) { - //2銆佽鍙栭煶閲� + //2銆佽鍙栭煶閲� var resultRes = await doorLock.GetVolumeAsync(); if (resultRes == null || resultRes.volumeResponseData == null) { @@ -769,9 +816,9 @@ #endregion - #region 鍏叡浜嬩欢澶勭悊 + #region 鍏叡浜嬩欢澶勭悊 /// <summary> - /// 浜嬩欢澶勭悊 + /// 浜嬩欢澶勭悊 /// </summary> public void ClickHandle() { @@ -835,11 +882,11 @@ btnCollect.IsSelected = !btnCollect.IsSelected; if (btnCollect.IsSelected) { - HdlRoomLogic.Current.AddLoveDevice(deviceUI);//鏀惰棌 + HdlRoomLogic.Current.AddLoveDevice(deviceUI);//鏀惰棌 } else { - HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//鍙栨秷鏀惰棌 + HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//鍙栨秷鏀惰棌 } }; btnCollectFrameLayout.MouseDownEventHandler += handerCollect; @@ -960,7 +1007,7 @@ } #endregion - #region 闊抽噺 + #region 闊抽噺 /// <summary> /// 鏇存柊闊抽噺 /// </summary> @@ -1035,7 +1082,7 @@ } #endregion - #region 甯稿紑妯″紡 + #region 甯稿紑妯″紡 /// <summary> /// 甯稿紑妯″紡澶勭悊 /// </summary> @@ -1074,8 +1121,8 @@ UserView.HomePage.Instance.PageIndex += 1; addLogicPage.Show(); addLogicPage.action += (w) => - { - doorLock.IsDoorLockNormallyMode = w; + { + DoorLockCommonInfo.NormallyOpenModeValue(doorLock, w); UpdateNomallyOpenStatus(); //杩斿洖鎸夐敭娓呯┖褰撳墠閫昏緫瀹氫箟鐨凩ogicAction UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null; @@ -1083,9 +1130,9 @@ }; HdlCheckLogic.Current.CheckSecondarySecurity(action); - } - - /// <summary> + } + + /// <summary> /// 甯稿紑妯″紡鐘舵�佹洿鏂� /// </summary> private void UpdateNomallyOpenStatus() @@ -1113,7 +1160,7 @@ } #endregion - #region 寮�閿佸鐞� + #region 寮�閿佸鐞� /// <summary> /// 寮�閿佸鐞� /// </summary> @@ -1186,7 +1233,9 @@ public override void RemoveFromParent() { //寰愭鐨勯棬閿佺晫闈㈠叧闂�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�) - ControlCommonResourse.IsDoorLockPageOpen = false; + //ControlCommonResourse.IsDoorLockPageOpen = false; + ControlCommonResourse.UpdateDoorLockStatusAction = null; + UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction = null; if (IsDrawerLockMode) { CommonPage.Instance.IsDrawerLockMode = false; -- Gitblit v1.8.0