From 9904031f5291daaf56985146bb671f25e18ebbdf Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 02 四月 2020 19:51:31 +0800 Subject: [PATCH] 最新代码 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs | 379 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 233 insertions(+), 146 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs index ac08e64..d29988a 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs @@ -25,10 +25,6 @@ #region 鍙橀噺鐢虫槑 /// <summary> - /// IsDrawerLockMode - /// </summary> - public bool IsDrawerLockMode; - /// <summary> /// 褰撳墠闂ㄩ攣 /// </summary> ZigBee.Device.DoorLock doorLock; @@ -52,6 +48,10 @@ /// 淇濈暀涓婁竴娆¢煶閲� /// </summary> bool canOpenNormallyMode = false; + /// <summary> + /// IsDrawerLockMode[涓婚〉宸︽粦] + /// </summary> + public bool IsDrawerLockMode; /// <summary> /// 褰撳墠鐢甸噺 /// </summary> @@ -211,6 +211,12 @@ { ReadDoorLockUserInfo(); } + else + { + string msg1 = Language.StringByID(R.MyInternationalizationString.DoorLockOffLine); + this.ShowTipMsg(msg1); + return; + } } /// <summary> @@ -305,7 +311,10 @@ TextSize = 10, TextAlignment = TextAlignment.CenterLeft, }; - midTopFrameLayout.AddChidren(btnCurrentPowerText); + midTopFrameLayout.AddChidren(btnCurrentPowerText); +#if Android + btnCurrentPowerText.X = btnStatus.Right + Application.GetRealWidth(20); +#endif //闂ㄩ攣寮�/鍏冲浘鐗� btnDoorLockPic = new Button() @@ -517,13 +526,14 @@ }; flMain.AddChidren(progressBackground); + var progressValue = (currentVolume * (Convert.ToInt32(((float)100 / 15) * 100))) / 100; progressText = new Button() { Height = Application.GetRealHeight(58), Y = Application.GetRealHeight(89), TextColor = ZigbeeColor.Current.XMGray2, TextAlignment = TextAlignment.Center, - Text = currentVolume.ToString(), + Text = progressValue.ToString() + "%", }; diyImageVerticalSeekBar = new DiyImageVerticalSeekBar() @@ -539,7 +549,7 @@ ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor, ProgressTextSize = 12,//鏄剧ず鐧惧垎姣斿瓧浣撳ぇ灏� SeekBarViewHeight = Application.GetRealHeight(17),//杩涘害鏉$殑瀹藉害 - Progress = (currentVolume * (Convert.ToInt32(((float)100 / 15) * 100))) / 100, + Progress = progressValue, }; progressBackground.AddChidren(progressText); progressBackground.AddChidren(diyImageVerticalSeekBar); @@ -561,7 +571,7 @@ curVolume = comandValueTemp; } currentVolume = curVolume; - progressText.Text = curVolume.ToString(); + progressText.Text = e.ToString() + "%"; }; } @@ -582,7 +592,21 @@ var tempDoor = (ZigBee.Device.DoorLock)tempDevice; if (tempDoor.doorLockOperatingEventNotificationCommand != null) { - Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); }); + //闈炰富浜轰笉寮硅繖涓獥鍙� + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + return; + } + //闈炵鐞嗗憳鐨勫瘑鐮�,涓嶅脊杩欎釜绐楀彛 + if (tempDoor.doorLockOperatingEventNotificationCommand.UserID > 9) + { + return; + } + + if (canOpenNormallyMode) + { + Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); }); + } } } @@ -624,25 +648,102 @@ { CommonPage.Loading.Start(""); }); + //鏄惁鏀寔甯稿紑 canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock); + if (canOpenNormallyMode) + { + //鑾峰彇闂ㄩ攣甯稿紑妯″紡 + var resultRes = await DoorLockCommonInfo.GetNormallyOpenMode(doorLock); + if (resultRes == null) + { + Application.RunOnMainThread(() => + { + btnNormallyOpen.UnSelectedImagePath = "DoorLock/NormallyOpenOffline.png"; + btnNormallyOpen.Enable = false; + string msg = Language.StringByID(R.MyInternationalizationString.GetNormallyOpenModeFailed); + this.ShowTipMsg(msg); + }); + } + else + { + var tempRes = false; + if (resultRes == true) + { + tempRes = true; + } + else + { + tempRes = false; + } + + NormallyOpenModeValue(tempRes); + + Application.RunOnMainThread(() => + { + UpdateNomallyOpenStatus(); + }); + } + } + else + { + Application.RunOnMainThread(() => + { + btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0); + }); + } + //鏄惁鏀寔闊抽噺 canVolume = DoorLockCommonInfo.CanVolume(doorLock); + if (canVolume) + { + //璇诲彇闊抽噺 + var resultRes = await doorLock.GetVolumeAsync(); + if (resultRes == null || resultRes.volumeResponseData == null) + { + var listDevice = new List<CommonDevice> { }; + listDevice.Add(doorLock); + var devTemp = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice); + if (devTemp.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone) + { + Application.RunOnMainThread(() => + { + var volumeMsg = Language.StringByID(R.MyInternationalizationString.GetVolumeFailed); + this.ShowTipMsg(volumeMsg); + }); + } + } + else + { + volumeData = resultRes.volumeResponseData; + Application.RunOnMainThread(() => + { + UpdateVolume(); + }); + } + } + else + { + Application.RunOnMainThread(() => + { + btnVolumeFrameLayout.Width = Application.GetRealWidth(0); + btnPower.X = Application.GetRealWidth(444); + }); + } + //璇诲彇闂ㄩ攣鐢甸噺锛氱皣ID锛�1 灞炴�D 33 doorLock.ReadAttri(Cluster_ID.Power, AttriButeId.DoorLockPower); //涓婃姤鐢甸噺绛�1绉� System.Threading.Thread.Sleep(1000); - //鑾峰彇闂ㄩ攣甯稿紑妯″紡 - await DoorLockCommonInfo.GetNormallyOpenMode(doorLock); - //璇诲彇闊抽噺 - ReadVolume(); } - catch { } + catch (Exception ex) + { + var mess = ex.Message; + } finally { Application.RunOnMainThread(() => { - UpdateNomallyOpenStatus(); CommonPage.Loading.Hide(); }); } @@ -732,15 +833,13 @@ //寮�閿佷簨浠� EventHandler<MouseEventArgs> hander1 = async (sender, e) => { - if (DoorLockCommonInfo.IsDoorLockNormallyMode == true) - { - string msg0 = Language.StringByID(R.MyInternationalizationString.CurrentNormallyOpenMode); - this.ShowTipMsg(msg0); - } - else - { - OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus); - } + //甯稿紑妯″紡涓�,鐐瑰嚮寮�閿佹棤鏁� + if (btnNormallyOpen.IsSelected == true) + { + this.ShowMassage(ShowMsgType.Remind, "褰撳墠鐘舵�佷负甯稿紑妯″紡"); + return; + } + OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus); }; openFrameLayout.MouseUpEventHandler += hander1; btnDoorOpenPic.MouseUpEventHandler += hander1; @@ -748,9 +847,16 @@ //鍏抽攣浜嬩欢 EventHandler<MouseEventArgs> hander2 = (sender, e) => { - if (DoorLockCommonInfo.IsDoorLockNormallyMode == true) + if (canOpenNormallyMode) { - NomallyOpenModeInvalidDialog(); + var key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) + { + if (doorLock.IsDoorLockNormallyMode[key] == true) + { + NomallyOpenModeInvalidDialog(); + } + } } else { @@ -768,11 +874,6 @@ { VolumeDialog(progressText, diyImageVerticalSeekBar); } - else - { - var volumeMsg = Language.StringByID(R.MyInternationalizationString.NoSupport); - this.ShowTipMsg(volumeMsg); - } }; btnVolumeFrameLayout.MouseDownEventHandler += handerVolume; btnVolume.MouseDownEventHandler += handerVolume; @@ -781,16 +882,8 @@ //甯稿紑妯″紡鐐瑰嚮浜嬩欢 EventHandler<MouseEventArgs> handerNormallyOpen = (sender, e) => { - if (canOpenNormallyMode) - { - btnNormallyOpen.IsSelected = !btnNormallyOpen.IsSelected; - NomallyOpenDialog(); - } - else - { - var volumeMsg = Language.StringByID(R.MyInternationalizationString.NoSupport); - this.ShowTipMsg(volumeMsg); - } + NomallyOpenDialog(); + }; btnNormallyOpenFrameLayout.MouseUpEventHandler += handerNormallyOpen; btnNormallyOpen.MouseUpEventHandler += handerNormallyOpen; @@ -831,39 +924,7 @@ } #endregion - #region 闊抽噺 - /// <summary> - /// 璇诲彇闊抽噺 - /// </summary> - private async void ReadVolume() - { - //鑾峰彇闂ㄩ攣闊抽噺 - if (!canVolume) - { - return; - } - var resultRes = await doorLock.GetVolumeAsync(); - - if (resultRes == null || resultRes.volumeResponseData == null) - { - var listDevice = new List<CommonDevice> { }; - listDevice.Add(doorLock); - var devTemp = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice); - if (devTemp.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone) - { - var volumeMsg = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); - this.ShowTipMsg(volumeMsg); - } - } - else - { - volumeData = resultRes.volumeResponseData; - Application.RunOnMainThread(() => - { - UpdateVolume(); - }); - } - } + #region 闊抽噺 /// <summary> /// 鏇存柊闊抽噺 /// </summary> @@ -923,12 +984,12 @@ return; } Application.RunOnMainThread(() => - { - var volumeMsg = Language.StringByID(R.MyInternationalizationString.SetVolumeSuccess); - this.ShowTipMsg(volumeMsg); - oldVolume = currentVolume; - CommonPage.Loading.Hide(); - }); + { + var volumeMsg = Language.StringByID(R.MyInternationalizationString.SetVolumeSuccess); + this.ShowTipMsg(volumeMsg); + oldVolume = currentVolume; + CommonPage.Loading.Hide(); + }); } catch (Exception ex) { @@ -938,13 +999,29 @@ } #endregion - #region 甯稿紑妯″紡 + #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); + } + } + /// <summary> /// 甯稿紑妯″紡澶勭悊 /// </summary> private async void NomallyOpenDialog() { - if (btnNormallyOpen.IsSelected) + if (!btnNormallyOpen.IsSelected) { if (UserCenterResourse.UserInfo.AuthorityNo != 1) { @@ -964,10 +1041,7 @@ var confirm = Language.StringByID(R.MyInternationalizationString.Confrim); var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm); alert.Show(); - alert.CancelClickEvent += () => - { - btnNormallyOpen.IsSelected = false; - }; + alert.ConfirmClickEvent += async () => { Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); @@ -976,19 +1050,19 @@ { string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); this.ShowTipMsg(msg0); - btnNormallyOpen.IsSelected = false; return; } if (result.defaultControlResponseData.status != 0) { string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed); this.ShowTipMsg(msg1); - btnNormallyOpen.IsSelected = false; return; } else { - DoorLockCommonInfo.IsDoorLockNormallyMode = true; + //姣忔閲嶆柊璁剧疆甯稿紑锛岄粯璁ゆ椂闂撮兘鏄�12灏忔椂 + DoorLockCommonInfo.NormallyOpenModeInvalidTime = 12; + NormallyOpenModeValue(true); UpdateNomallyOpenStatus(); CommonPage.Loading.Hide(); @@ -997,9 +1071,12 @@ var doorLockInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockInValidSetting); var alertNomallyModeIsTurnOn = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.DoorLockLogic, msgNomallyModeIsTurnOn, doorLockInValidSetting); alertNomallyModeIsTurnOn.Show(); + alertNomallyModeIsTurnOn.LogicClickEvent += () => { - //鑷姩鍖� + //鑷姩鍖� + Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2); + }; alertNomallyModeIsTurnOn.InvalidClickEvent += async () => { @@ -1021,6 +1098,11 @@ /// </summary> public void NomallyOpenModeInvalidDialog(bool IsFromReport = false) { + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + //this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess)); + return; + } 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); @@ -1030,49 +1112,63 @@ alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm); } alert.Show(); + alert.MsgControlClickEvent += async () => + { + if (IsFromReport) + { + //鍙栨秷甯稿紑 + NormallyOpenModeValue(false); + UpdateNomallyOpenStatus(); + } + else + { + //淇濇寔甯稿紑 + NormallyOpenModeValue(true); + UpdateNomallyOpenStatus(); + } + }; alert.CancelClickEvent += async () => - { - //淇濇寔甯稿紑 - if (IsFromReport) - { - 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); - btnNormallyOpen.IsSelected = false; - DoorLockCommonInfo.IsDoorLockNormallyMode = false; - return; - } - if (result.defaultControlResponseData.status != 0) - { - string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed); - this.ShowTipMsg(msg1); - btnNormallyOpen.IsSelected = false; - DoorLockCommonInfo.IsDoorLockNormallyMode = false; - return; - } - else - { - DoorLockCommonInfo.IsDoorLockNormallyMode = true; - btnNormallyOpen.IsSelected = true; - UpdateNomallyOpenStatus(); - CommonPage.Loading.Hide(); - } - } - else - { - btnNormallyOpen.IsSelected = true; - } - }; + { + //淇濇寔甯稿紑 + if (IsFromReport) + { + 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); + NormallyOpenModeValue(false); + UpdateNomallyOpenStatus(); + return; + } + if (result.defaultControlResponseData.status != 0) + { + string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed); + this.ShowTipMsg(msg1); + NormallyOpenModeValue(false); + UpdateNomallyOpenStatus(); + return; + } + else + { + NormallyOpenModeValue(true); + UpdateNomallyOpenStatus(); + CommonPage.Loading.Hide(); + } + } + else + { + NormallyOpenModeValue(true); + UpdateNomallyOpenStatus(); + } + }; alert.ConfirmClickEvent += async () => { //纭鍙栨秷甯稿紑 if (IsFromReport) { - DoorLockCommonInfo.IsDoorLockNormallyMode = false; - btnNormallyOpen.IsSelected = false; + NormallyOpenModeValue(true); UpdateNomallyOpenStatus(); } else @@ -1083,22 +1179,22 @@ { string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); this.ShowTipMsg(msg0); - btnNormallyOpen.IsSelected = true; return; } if (result.defaultControlResponseData.status != 0) { string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed); this.ShowTipMsg(msg1); - btnNormallyOpen.IsSelected = true; return; } else { - DoorLockCommonInfo.IsDoorLockNormallyMode = false; + NormallyOpenModeValue(false); UpdateNomallyOpenStatus(); string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess); this.ShowTipMsg(msg2); + Shared.Phone.Device.Logic.SkipView.LockCloseLogic(doorLock); + // } } }; @@ -1114,10 +1210,7 @@ var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim); var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim); alertTimeInValidSetting.Show(); - alertTimeInValidSetting.CancelClickEvent += () => - { - btnNormallyOpen.IsSelected = true; - }; + alertTimeInValidSetting.InvalidTimeAction += (obj) => { Regex rg = new Regex("^[0-9]+$"); @@ -1135,7 +1228,8 @@ } var temp = int.Parse(obj); DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp; - btnNormallyOpen.IsSelected = true; + Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime,doorLock); + //璋冪敤鑷姩鍖栨帴鍙h缃け鏁堟椂闂� }; } /// <summary> @@ -1145,11 +1239,11 @@ { if (!canOpenNormallyMode) { - btnNormallyOpen.UnSelectedImagePath = "DoorLock/NormallyOpenOffline.png"; - btnNormallyOpen.Enable = false; + btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0); return; } - if (DoorLockCommonInfo.IsDoorLockNormallyMode == true) + string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + if (doorLock.IsDoorLockNormallyMode[key] == true) { btnNormallyOpen.IsSelected = true; btnDoorLockPic.IsSelected = true; @@ -1157,19 +1251,12 @@ btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen); } - else if (DoorLockCommonInfo.IsDoorLockNormallyMode == false) + else if (doorLock.IsDoorLockNormallyMode[key] == false) { btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose); btnDoorLockPic.IsSelected = false; btnNormallyOpen.IsSelected = false; progressButton.Y = Application.GetRealHeight(347); - } - else - { - btnNormallyOpen.UnSelectedImagePath = "DoorLock/NormallyOpenOffline.png"; - btnNormallyOpen.Enable = false; - string msg = Language.StringByID(R.MyInternationalizationString.GetNormallyOpenModeFailed); - this.ShowTipMsg(msg); } } #endregion -- Gitblit v1.8.0