using System; using System.Collections.Generic; using Shared.Common; using Shared.Phone.UserCenter.Device; using ZigBee.Device; namespace Shared.Phone.UserCenter.DoorLock { public class MemberFrozenPage : DoorLockCommonLayout, ZigBee.Common.IStatus { /// /// 构造函数 /// /// public MemberFrozenPage(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj) { this.doorLock = doorLock; this.curAccountObj = accountObj; BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor; } #region ◆ 变量申明__________________________ ZigBee.Device.DoorLock doorLock; Shared.Phone.UserCenter.MemberInfoRes curAccountObj; VerticalRefreshLayout bodyView; #endregion void ReadDoorLockUserInfo() { System.Threading.Tasks.Task.Run(async () => { try { var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock); var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj.SubAccountDistributedMark); var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark); } catch { } finally { Application.RunOnMainThread(() => { MidRefresh(); }); } }); } /// /// UI显示 /// public void Show() { string accountTitle = ""; if (curAccountObj.UserName != null) { accountTitle = curAccountObj.UserName; } else { accountTitle = curAccountObj.Account; } this.TopFrameLayout(this, accountTitle); EventHandler eHandlerBack = (sender, e) => { RemoveFromParent(); }; this.btnBack.MouseUpEventHandler += eHandlerBack; this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; this.MidFrameLayout(this); bodyView = new VerticalRefreshLayout() { }; this.midFrameLayout.AddChidren(bodyView); MidRefresh(); bodyView.BeginHeaderRefreshingAction += () => { bodyView.BeginHeaderRefreshing(); ReadDoorLockUserInfo(); bodyView.EndHeaderRefreshing(); }; } public async void MidRefresh() { bodyView.RemoveAll(); for (int i = 0; i < 3; i++) { var RowView = new FrameLayout() { Height = Application.GetRealHeight(127 + 23), BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, }; bodyView.AddChidren(RowView); var btnText = new Button() { X = Application.GetRealWidth(58), Width = Application.GetRealWidth(300), TextAlignment = TextAlignment.CenterLeft, TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, Gravity = Gravity.CenterVertical, TextSize = 14, }; RowView.AddChidren(btnText); var btnRightFrameLayout = new FrameLayout() { Width = Application.GetRealWidth(204), X = Application.GetRealWidth(919 - 58), Y = Application.GetRealHeight(25), }; RowView.AddChidren(btnRightFrameLayout); var btnRight = new Button() { Height = Application.GetRealHeight(60), Width = Application.GetRealWidth(60), X = Application.GetRealWidth(72), Y = Application.GetRealHeight(32), UnSelectedImagePath = "DoorLock/RightIcon.png", }; btnRightFrameLayout.AddChidren(btnRight); var line2 = new Button() { Y = RowView.Height - 1, X = Application.GetRealWidth(58), Width = Application.GetRealWidth(962), Height = 1, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, }; RowView.AddChidren(line2); if (i == 0) { btnText.Text = Language.StringByID(R.MyInternationalizationString.LockMethod); } else if (i == 1) { 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.UnSelectedImagePath = "DoorLock/Switch.png"; btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj.SubAccountDistributedMark); if (result == true) { btnRight.IsSelected = true; } else { btnRight.IsSelected = false; } } else if (i == 2) { if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == false) { 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.UnSelectedImagePath = "DoorLock/Switch.png"; btnRight.SelectedImagePath = "DoorLock/SwitchOn.png"; line2.Visible = false; var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark); if (result1 == true) { btnRight.IsSelected = true; } else { btnRight.IsSelected = false; } } else { btnText.Width = 0; btnRight.Width = 0; line2.Width = 0; RowView.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; } } int currentIndex = i; EventHandler eHandler = (sender, e) => { if (currentIndex == 0) { var unLockMethod = new Shared.Phone.UserCenter.DoorLock.UnLockMethod(doorLock, curAccountObj); Shared.Phone.UserView.HomePage.Instance.AddChidren(unLockMethod); Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; unLockMethod.Show(); } else if (currentIndex == 1) { btnRight.IsSelected = !btnRight.IsSelected; if (btnRight.IsSelected) { FreezeUser(true); } else { FreezeUser(false); } } else if (currentIndex == 2) { btnRight.IsSelected = !btnRight.IsSelected; if (btnRight.IsSelected) { HasRemoteUnlockAccessMethod(true); } else { HasRemoteUnlockAccessMethod(false); } } }; btnRightFrameLayout.MouseUpEventHandler += eHandler; btnRight.MouseUpEventHandler += eHandler; RowView.MouseUpEventHandler += eHandler; btnText.MouseUpEventHandler += eHandler; } } //冻结账户 void FreezeUser(bool isFreeze) { var alert = new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.SureToFreezeAccount), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); alert.Show(); alert.ResultEventHandler += (sender1, e1) => { if (e1) { System.Threading.Tasks.Task.Run(async () => { int successConunt = 0; int operateConunt = -1; Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); 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; foreach (var curDoorLockUser in curAccountDoorLockUserList) { // 账户中没有门锁用户 if (curDoorLockUser.DoorLockLocalUserId == null || curDoorLockUser.DoorLockLocalUserId == "") { 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.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 { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.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.PrimaryId = curDoorLockUser.Id; refreshDoorLockData.IsFreezeUser = false; 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(() => { 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 = 1 }.Show(Common.CommonPage.Instance); }); } } } else { ZigBee.Device.DoorLock.AccessType accessType; if (isFreeze) { accessType = ZigBee.Device.DoorLock.AccessType.DisEnable; } else { accessType = ZigBee.Device.DoorLock.AccessType.Enable; } //冻结/解冻用户 var passData = doorLock.SetUserAccessData(int.Parse(curDoorLockUser.DoorLockLocalUserId), accessType); var resultData = await doorLock.DefaultControlAsync(passData); if (resultData != null && resultData.defaultControlResponseData != null) { if (resultData.defaultControlResponseData.status == 32) { 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 { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); }); } } else if (resultData.defaultControlResponseData.status == 33) { 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]; //解冻云端 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); } return; }); } } else { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance); }); } } } } else { //添加云端存储信息 //冻结/解冻云端 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); 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; }); } } else { Application.RunOnMainThread(() => { 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(); }); } }); } else { MidRefresh(); } }; } //是否给子账户拥有远程开锁的条件 void HasRemoteUnlockAccessMethod(bool hasAccess) { var alert = new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.SureGiveAccessToSubaccount), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); alert.Show(); alert.ResultEventHandler += (sender1, e1) => { if (e1) { System.Threading.Tasks.Task.Run(async () => { int successConunt = 0; int operateConunt = -1; Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); try { var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark); var uList = new List { }; if (resultList != null) { foreach (var a in resultList) { uList.Add(a.CloudAccountId); } } var d = uList.Find((value) => { return value == curAccountObj.SubAccountDistributedMark; }); if (d != null) { //修改云端存储信息 var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark); foreach (var curDoorLockUser in curAccountDoorLockUserList) { operateConunt = curAccountDoorLockUserList.Count; if (hasAccess) { 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.PrimaryId = curDoorLockUser.Id; refreshDoorLockData.IsFreezeUser = false; refreshDoorLockData.IsTempUnlockAuthority = true; // 授权 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.GiveAccessToSubaccountFailed), 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 = 1 }.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.PrimaryId = curDoorLockUser.Id; refreshDoorLockData.IsFreezeUser = false; refreshDoorLockData.IsTempUnlockAuthority = false; //取消权限 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.CancelAccessToSubaccountFailed), 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 = 1 }.Show(Common.CommonPage.Instance); }); } } } } else { //新增,且不冻结 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; addLockInfo.IsFreezeUser = false; if (hasAccess) { addLockInfo.IsTempUnlockAuthority = true; } else { addLockInfo.IsTempUnlockAuthority = false; } var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo); if (result != null) { if (result.StateCode == "Success") { operateConunt = 0; } else { Application.RunOnMainThread(() => { if (hasAccess) { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); } else { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); } return; }); } } else { Application.RunOnMainThread(() => { 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 (hasAccess) { doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true; } else { doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false; } doorLock.ReSave(); } Application.RunOnMainThread(() => { MidRefresh(); CommonPage.Loading.Hide(); }); } }); } else { MidRefresh(); } }; } #region ◆ 接口实现__________________________ /// /// 处理变化事件 --将弃用 改用DeviceInfoChange() /// /// The changed. /// Common. public void Changed(CommonDevice common) { } /// /// 处理变化事件 /// /// /// public void DeviceInfoChange(CommonDevice common, string typeTag) { } /// /// Changeds the IL ogic status. /// /// Logic. public void ChangedILogicStatus(ZigBee.Device.Logic logic) { } /// /// Changeds the IS cene status. /// /// Scene. public void ChangedISceneStatus(Scene scene) { } #endregion } }