From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs | 486 ++++++++++++++++++++++++++--------------------------- 1 files changed, 238 insertions(+), 248 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs index f66abcf..68da839 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs @@ -5,7 +5,7 @@ using ZigBee.Device; namespace Shared.Phone.UserCenter.DoorLock { - public class MemberFrozenPage : DoorLockCommonLayout, ZigBee.Common.IStatus + public class MemberFrozenPage : DoorLockCommonLayout { /// <summary> /// 鏋勯�犲嚱鏁� @@ -18,12 +18,24 @@ BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor; } - #region 鈼� 鍙橀噺鐢虫槑__________________________ + #region 鍙橀噺鐢虫槑 + /// <summary> + /// 褰撳墠闂ㄩ攣 + /// </summary> ZigBee.Device.DoorLock doorLock; + /// <summary> + /// 褰撳墠鎴愬憳瀵硅薄v + /// </summary> Shared.Phone.UserCenter.MemberInfoRes curAccountObj; + /// <summary> + /// 鍒锋柊View + /// </summary> VerticalRefreshLayout bodyView; #endregion + /// <summary> + /// 鍒濆鍖栨暟鎹俊鎭� + /// </summary> void ReadDoorLockUserInfo() { System.Threading.Tasks.Task.Run(async () => @@ -64,8 +76,8 @@ }); } - /// <summary> - /// UI鏄剧ず + /// <summary> + /// UI鏄剧ず /// </summary> public void Show() { @@ -100,7 +112,9 @@ ReadDoorLockUserInfo(); }; } - + /// <summary> + /// 涓儴甯冨眬 + /// </summary> public async void MidRefresh() { bodyView.RemoveAll(); @@ -135,8 +149,8 @@ var btnRight = new Button() { - Height = Application.GetRealHeight(60), - Width = Application.GetRealWidth(60), + Height = Application.GetMinRealAverage(60), + Width = Application.GetMinRealAverage(60), X = Application.GetRealWidth(72), Y = Application.GetRealHeight(32), UnSelectedImagePath = "DoorLock/RightIcon.png", @@ -162,8 +176,8 @@ btnText.Text = Language.StringByID(R.MyInternationalizationString.FrozenUser); btnRight.X = Application.GetRealWidth(50); btnRight.Y = Application.GetRealHeight(32); - btnRight.Height = Application.GetRealHeight(63); - btnRight.Width = Application.GetRealWidth(104); + btnRight.Height = Application.GetMinRealAverage(63); + btnRight.Width = Application.GetMinRealAverage(104); btnRight.UnSelectedImagePath = "DoorLock/Switch.png"; btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; var result = doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark]; @@ -183,8 +197,8 @@ btnText.Text = Language.StringByID(R.MyInternationalizationString.TempUnlockPermission); btnRight.X = Application.GetRealWidth(50); btnRight.Y = Application.GetRealHeight(32); - btnRight.Height = Application.GetRealHeight(63); - btnRight.Width = Application.GetRealWidth(104); + btnRight.Height = Application.GetMinRealAverage(63); + btnRight.Width = Application.GetMinRealAverage(104); btnRight.UnSelectedImagePath = "DoorLock/Switch.png"; btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; line2.Visible = false; @@ -261,7 +275,10 @@ } } - //鍐荤粨璐︽埛 + /// <summary> + /// 鍐荤粨璐︽埛 + /// </summary> + /// <param name="isFreeze"></param> void FreezeUser(bool isFreeze) { var dialog = new Dialog { }; @@ -280,30 +297,30 @@ alert.Show(); //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� alert.ConfirmClickEvent += () => - { - System.Threading.Tasks.Task.Run(async () => - { - int successConunt = 0; - int operateConunt = -1; - Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); - try - { - var doorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark); - if (curAccountDoorLockUserList.Count != 0) - { - //淇敼浜戠瀛樺偍淇℃伅 - operateConunt = curAccountDoorLockUserList.Count; + { + System.Threading.Tasks.Task.Run(async () => + { + int successConunt = 0; + int operateConunt = -1; + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); + try + { + var doorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark); + if (curAccountDoorLockUserList.Count != 0) + { + //淇敼浜戠瀛樺偍淇℃伅 + operateConunt = curAccountDoorLockUserList.Count; var tempGroupId = new List<List<int>>(); var tempUserIdList = new List<int> { }; - foreach (var curDoorLockUser in curAccountDoorLockUserList) - { - // 璐︽埛涓病鏈夐棬閿佺敤鎴� - if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId)) - { - } - else - { + foreach (var curDoorLockUser in curAccountDoorLockUserList) + { + // 璐︽埛涓病鏈夐棬閿佺敤鎴� + if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId)) + { + } + else + { if (tempUserIdList.Count == 9) { tempGroupId.Add(tempUserIdList); @@ -314,16 +331,16 @@ } tempGroupId.Add(tempUserIdList); //鎵归噺鍐荤粨闂ㄩ攣涓殑璐︽埛 - ZigBee.Device.DoorLock.AccessType accessType; - if (isFreeze) - { - accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers; - } - else - { - accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers; - } - //鍐荤粨/瑙e喕鐢ㄦ埛 + ZigBee.Device.DoorLock.AccessType accessType; + if (isFreeze) + { + accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers; + } + else + { + accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers; + } + //鍐荤粨/瑙e喕鐢ㄦ埛 int count1 = tempGroupId.Count; if (tempGroupId.Count == 1) { @@ -346,11 +363,11 @@ { break; } - var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType); - var resultData = await doorLock.DefaultControlAsync(passData); - if (resultData != null && resultData.defaultControlResponseData != null) - { - if (resultData.defaultControlResponseData.status == 32) + var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType); + var resultData = await doorLock.DefaultControlAsync(passData); + if (resultData != null && resultData.defaultControlResponseData != null) + { + if (resultData.defaultControlResponseData.status == 32) { count2++; } @@ -377,88 +394,46 @@ foreach (var curDoorLockUser in curAccountDoorLockUserList) { if (isFreeze) - { - var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData(); - if (UserCenterResourse.UserInfo.AuthorityNo != 1) - { - refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - refreshDoorLockData.IsOtherAccountCtrl = true; - } - if (doorLock.DeviceAddr != null) - { - refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - } - - refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode; - refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId; - refreshDoorLockData.PrimaryId = curDoorLockUser.Id; - refreshDoorLockData.IsFreezeUser = true; - refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark]; - //鍐荤粨浜戠 - var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData); - if (result != null) - { - if (result.StateCode == "Success") - { - successConunt++; - } - else - { - Application.RunOnMainThread(() => - { - if (isFreeze) - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - } - else - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - } - return; - }); - } - } - else + { + var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); - }); + refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + refreshDoorLockData.IsOtherAccountCtrl = true; } - } - else - { - var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData(); - if (UserCenterResourse.UserInfo.AuthorityNo != 1) - { - refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - refreshDoorLockData.IsOtherAccountCtrl = true; - } - if (doorLock.DeviceAddr != null) - { - refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - } - - refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode; - refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId; - refreshDoorLockData.PrimaryId = curDoorLockUser.Id; - refreshDoorLockData.IsFreezeUser = false; + if (doorLock.DeviceAddr != null) + { + refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + + refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode; + refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId; + refreshDoorLockData.PrimaryId = curDoorLockUser.Id; + refreshDoorLockData.IsFreezeUser = true; refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark]; - //瑙e喕浜戠 - var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData); - if (result != null) - { - if (result.StateCode == "Success") - { - successConunt++; - } - else - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - }); - } + //鍐荤粨浜戠 + var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData); + if (result != null) + { + if (result.StateCode == "Success") + { + successConunt++; + } + else + { + Application.RunOnMainThread(() => + { + if (isFreeze) + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + } + else + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + } + return; + }); + } } else { @@ -466,70 +441,112 @@ { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); }); - } - } + } + } + else + { + var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + refreshDoorLockData.IsOtherAccountCtrl = true; + } + if (doorLock.DeviceAddr != null) + { + refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + + refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode; + refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId; + refreshDoorLockData.PrimaryId = curDoorLockUser.Id; + refreshDoorLockData.IsFreezeUser = false; + refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark]; + //瑙e喕浜戠 + var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData); + if (result != null) + { + if (result.StateCode == "Success") + { + successConunt++; + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + }); + } + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); + }); + } + } } } - else - { - Application.RunOnMainThread(() => - { - if (isFreeze) - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); - } - else - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); - } - }); - } - } - else - { - //娣诲姞浜戠瀛樺偍淇℃伅 - //鍐荤粨/瑙e喕浜戠 - var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData(); - if (UserCenterResourse.UserInfo.AuthorityNo != 1) - { - addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - addLockInfo.IsOtherAccountCtrl = true; - } - addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark; - if (doorLock.DeviceAddr != null) - { - addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - } - addLockInfo.EntryTime = System.DateTime.Now; - if (isFreeze) - { - addLockInfo.IsFreezeUser = true; - } - else - { - addLockInfo.IsFreezeUser = false; - } + else + { + Application.RunOnMainThread(() => + { + if (isFreeze) + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); + } + else + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); + } + }); + } + } + else + { + //娣诲姞浜戠瀛樺偍淇℃伅 + //鍐荤粨/瑙e喕浜戠 + var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + addLockInfo.IsOtherAccountCtrl = true; + } + addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark; + if (doorLock.DeviceAddr != null) + { + addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + addLockInfo.EntryTime = System.DateTime.Now; + if (isFreeze) + { + addLockInfo.IsFreezeUser = true; + } + else + { + addLockInfo.IsFreezeUser = false; + } addLockInfo.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark]; - var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo); + var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo); if (result != null) { - if (result.StateCode == "Success") - { - operateConunt = 0; - } - else - { - Application.RunOnMainThread(() => - { - if (isFreeze) - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - } - else - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - } - return; + if (result.StateCode == "Success") + { + operateConunt = 0; + } + else + { + Application.RunOnMainThread(() => + { + if (isFreeze) + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + } + else + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + } + return; }); } } @@ -539,39 +556,46 @@ { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - }); - } - } - } - catch { } - finally - { - if (operateConunt == successConunt) - { - if (isFreeze) - { - doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true; - } - else - { - doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false; - } - doorLock.ReSave(); - } - Application.RunOnMainThread(() => - { - MidRefresh(); - CommonPage.Loading.Hide(); - }); - } - }); + }); + } + } + } + catch { } + finally + { + if (operateConunt == successConunt) + { + if (isFreeze) + { + doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true; + } + else + { + doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false; + } + doorLock.ReSave(); + } + Application.RunOnMainThread(() => + { + MidRefresh(); + CommonPage.Loading.Hide(); + }); + } + }); }; } - //鏄惁缁欏瓙璐︽埛鎷ユ湁杩滅▼寮�閿佺殑鏉′欢 + /// <summary> + /// 鏄惁缁欏瓙璐︽埛鎷ユ湁杩滅▼寮�閿佺殑鏉′欢 + /// </summary> + /// <param name="hasAccess"></param> void HasRemoteUnlockAccessMethod(bool hasAccess) { string msg = Language.StringByID(R.MyInternationalizationString.SureGiveAccessToSubaccount); + if (!hasAccess) + { + msg = Language.StringByID(R.MyInternationalizationString.SureCancelAccessToSubaccount); + } var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); alert.Show(); //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� @@ -763,39 +787,5 @@ }); }; } - - #region 鈼� 鎺ュ彛瀹炵幇__________________________ - /// <summary> - /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange() - /// </summary> - /// <returns>The changed.</returns> - /// <param name="common">Common.</param> - public void Changed(CommonDevice common) - { - - } - /// <summary> - /// 澶勭悊鍙樺寲浜嬩欢 - /// </summary> - /// <param name="common"></param> - /// <param name="typeTag"></param> - public void DeviceInfoChange(CommonDevice common, string typeTag) - { - } - /// <summary> - /// Changeds the IL ogic status. - /// </summary> - /// <param name="logic">Logic.</param> - public void ChangedILogicStatus(ZigBee.Device.Logic logic) - { - } - /// <summary> - /// Changeds the IS cene status. - /// </summary> - /// <param name="scene">Scene.</param> - public void ChangedISceneStatus(Scene scene) - { - } - #endregion } } -- Gitblit v1.8.0