黄学彪
2019-12-20 23fb45dd846ed8b62304c408c6bbe64265d4ac8b
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -21,8 +21,30 @@
        #region ◆ 变量申明__________________________
        ZigBee.Device.DoorLock doorLock;
        Shared.Phone.UserCenter.MemberInfoRes curAccountObj;
        VerticalScrolViewLayout bodyView;
        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();
                        bodyView.EndHeaderRefreshing();
                    });
                }
            });
        }
        /// <summary>
        /// UI显示 
@@ -47,22 +69,21 @@
            this.btnBack.MouseUpEventHandler += eHandlerBack;
            this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
            this.MidFrameLayout(this);
            this.titleFrameLayout.MouseUpEventHandler += (sender, e) =>
            {
                var userDoorLockPage = new UserDoorLockPage(doorLock, curAccountObj);
                Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage);
                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                userDoorLockPage.Show();
            };
            bodyView = new VerticalScrolViewLayout()
            bodyView = new VerticalRefreshLayout()
            {
            };
            this.midFrameLayout.AddChidren(bodyView);
            MidRefresh();
            ReadDoorLockUserInfo();
            bodyView.BeginHeaderRefreshingAction += () =>
            {
                bodyView.BeginHeaderRefreshing();
                ReadDoorLockUserInfo();
            };
        }
        public void MidRefresh()
        public async void MidRefresh()
        {
            bodyView.RemoveAll();
@@ -70,8 +91,8 @@
            {
                var RowView = new FrameLayout()
                {
                    Height = Application.GetRealHeight(127 + 20),
                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTopFrameLayout,
                    Height = Application.GetRealHeight(127 + 23),
                    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                };
                bodyView.AddChidren(RowView);
@@ -128,7 +149,8 @@
                    btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
                    btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
                    if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == true)
                    var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj.SubAccountDistributedMark);
                    if (result == true)
                    {
                        btnRight.IsSelected = true;
                    }
@@ -150,7 +172,8 @@
                        btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
                        line2.Visible = false;
                        if (doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] == true)
                        var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark);
                        if (result1 == true)
                        {
                            btnRight.IsSelected = true;
                        }
@@ -204,10 +227,23 @@
                        }
                    }
                };
                btnRightFrameLayout.MouseUpEventHandler += eHandler;
                btnRight.MouseUpEventHandler += eHandler;
                RowView.MouseUpEventHandler += eHandler;
                btnText.MouseUpEventHandler += eHandler;
                if (i == 0)
                {
                    btnRightFrameLayout.MouseUpEventHandler += eHandler;
                    btnRight.MouseUpEventHandler += eHandler;
                    RowView.MouseUpEventHandler += eHandler;
                    btnText.MouseUpEventHandler += eHandler;
                }
                else if (i == 1)
                {
                    btnRightFrameLayout.MouseUpEventHandler += eHandler;
                    btnRight.MouseUpEventHandler += eHandler;
                }
                else if (i == 2)
                {
                    btnRightFrameLayout.MouseUpEventHandler += eHandler;
                    btnRight.MouseUpEventHandler += eHandler;
                }
            }
        }
@@ -226,16 +262,18 @@
                     {
                         int successConunt = 0;
                         int operateConunt = -1;
                         Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
                         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> { };
                                 var tempUserObjList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { };
                                 foreach (var curDoorLockUser in curAccountDoorLockUserList)
                                 {
                                     // 账户中没有门锁用户
@@ -270,11 +308,11 @@
                                                     {
                                                         if (isFreeze)
                                                         {
                                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                             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.Up, CloseTime = 1 }.Show(this.btnTip);
                                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                                         }
                                                         return;
                                                     });
@@ -284,7 +322,7 @@
                                             {
                                                 Application.RunOnMainThread(() =>
                                                 {
                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                                 });
                                             }
                                         }
@@ -315,7 +353,7 @@
                                                 {
                                                     Application.RunOnMainThread(() =>
                                                     {
                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                                     });
                                                 }
                                             }
@@ -323,143 +361,182 @@
                                             {
                                                 Application.RunOnMainThread(() =>
                                                 {
                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                     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 (tempUserIdList.Count == 9)
                                         {
                                             tempGroupId.Add(tempUserIdList);
                                             tempUserIdList = new List<int>();
                                         }
                                         tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId));
                                         tempUserObjList.Add(curDoorLockUser);
                                     }
                                 }
                                 tempGroupId.Add(tempUserIdList);
                                 //批量冻结门锁中的账户
                                 ZigBee.Device.DoorLock.AccessType accessType;
                                 if (isFreeze)
                                 {
                                     accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers;
                                 }
                                 else
                                 {
                                     accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers;
                                 }
                                 //冻结/解冻用户
                                 int count1 = tempGroupId.Count;
                                 int count2 = 0;
                                 for (int i = 0; i < tempGroupId.Count; i++)
                                 {
                                     var tempUserIdList1 = tempGroupId[i];
                                     if (tempUserIdList1.Count == 0)
                                     {
                                         return;
                                     }
                                     var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType);
                                     var resultData = await doorLock.DefaultControlAsync(passData);
                                     if (resultData != null && resultData.defaultControlResponseData != null)
                                     {
                                         if (resultData.defaultControlResponseData.status == 32)
                                         {
                                             count2++;
                                         }
                                         else if (resultData.defaultControlResponseData.status == 33)
                                         {
                                             count2++;
                                         }
                                         System.Threading.Thread.Sleep(3000);
                                     }
                                     else
                                     {
                                         Application.RunOnMainThread(() =>
                                         {
                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                         });
                                         return;
                                     }
                                 }
                                 // 批量冻结门锁中的账户后,准备冻结云端账户
                                 if (count2 == count1)
                                 {
                                     foreach (var curDoorLockUser in tempUserObjList)
                                     {
                                         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
                                             {
                                                 Application.RunOnMainThread(() =>
                                                 {
                                                     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];
                                             //解冻云端
                                             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)
                                         {
                                             accessType = ZigBee.Device.DoorLock.AccessType.DisEnable;
                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                         }
                                         else
                                         {
                                             accessType = ZigBee.Device.DoorLock.AccessType.Enable;
                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                         }
                                         //冻结/解冻用户
                                         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.Up, CloseTime = 1 }.Show(this.btnTip);
                                                             }
                                                             else
                                                             {
                                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                             }
                                                             return;
                                                         });
                                                     }
                                                 }
                                                 else
                                                 {
                                                     Application.RunOnMainThread(() =>
                                                     {
                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
                                                     });
                                                 }
                                             }
                                             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.Up, CloseTime = 1 }.Show(this.btnTip);
                                                         });
                                                     }
                                                 }
                                                 else
                                                 {
                                                     Application.RunOnMainThread(() =>
                                                     {
                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
                                                     });
                                                 }
                                             }
                                             else
                                             {
                                                 Application.RunOnMainThread(() =>
                                                 {
                                                     if (isFreeze)
                                                     {
                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
                                                     }
                                                     else
                                                     {
                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
                                                     }
                                                     return;
                                                 });
                                             }
                                         }
                                         else
                                         {
                                             Application.RunOnMainThread(() =>
                                             {
                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(this.btnTip);
                                             });
                                         }
                                     }
                                         return;
                                     });
                                 }
                             }
                             else
@@ -500,11 +577,11 @@
                                         {
                                             if (isFreeze)
                                             {
                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                 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.Up, CloseTime = 1 }.Show(this.btnTip);
                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                             }
                                             return;
                                         });
@@ -514,7 +591,7 @@
                                 {
                                     Application.RunOnMainThread(() =>
                                     {
                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                     });
                                 }
@@ -612,7 +689,7 @@
                                            {
                                                Application.RunOnMainThread(() =>
                                                {
                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                                });
                                            }
                                        }
@@ -620,7 +697,7 @@
                                        {
                                            Application.RunOnMainThread(() =>
                                            {
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                            });
                                        }
                                    }
@@ -651,7 +728,7 @@
                                            {
                                                Application.RunOnMainThread(() =>
                                                {
                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                                });
                                            }
                                        }
@@ -659,7 +736,7 @@
                                        {
                                            Application.RunOnMainThread(() =>
                                            {
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                            });
                                        }
                                    }
@@ -702,11 +779,11 @@
                                        {
                                            if (hasAccess)
                                            {
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                                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.Up, CloseTime = 1 }.Show(this.btnTip);
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                            }
                                            return;
                                        });
@@ -716,7 +793,7 @@
                                {
                                    Application.RunOnMainThread(() =>
                                    {
                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip);
                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                    });
                                }
                            }
@@ -750,27 +827,6 @@
                    MidRefresh();
                }
            };
        }
        void ReadDoorLockUserInfo()
        {
            System.Threading.Tasks.Task.Run(async () =>
            {
                Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
                try
                {
                    await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocaDoorLocklist(doorLock, curAccountObj);
                }
                catch { }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        MidRefresh();
                        CommonPage.Loading.Hide();
                    });
                }
            });
        }
        #region ◆ 接口实现__________________________