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
{
///
/// 构造函数
///
///
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;
///
/// 当前成员对象v
///
Shared.Phone.UserCenter.MemberInfoRes curAccountObj;
///
/// 刷新View
///
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);
var result2 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj?.SubAccountDistributedMark);
if (result2 == true)
{
doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true;
}
else
{
doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false;
}
var result3 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark);
if (result3 == true)
{
doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true;
}
else
{
doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false;
}
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
MidRefresh();
bodyView.EndHeaderRefreshing();
});
}
});
}
///
/// 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();
};
}
///
/// 中部布局
///
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 = doorLock.IsFreezeAccount[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 = doorLock.HasRemoteUnlockAccess[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)
{
if (!btnRight.IsSelected)
{
FreezeUser(true);
}
else
{
FreezeUser(false);
}
}
else if (currentIndex == 2)
{
if (!btnRight.IsSelected)
{
HasRemoteUnlockAccessMethod(true);
}
else
{
HasRemoteUnlockAccessMethod(false);
}
}
};
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;
}
}
}
///
/// 冻结账户
///
///
void FreezeUser(bool isFreeze)
{
var dialog = new Dialog { };
string textFreeze = "";
if (isFreeze)
{
textFreeze = Language.StringByID(R.MyInternationalizationString.SureToFreezeAccount);
}
else
{
textFreeze = Language.StringByID(R.MyInternationalizationString.SureToUnFreeze);
}
string msg = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter);
var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, textFreeze, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
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;
var tempGroupId = new List>();
var tempUserIdList = new List { };
foreach (var curDoorLockUser in curAccountDoorLockUserList)
{
// 账户中没有门锁用户
if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId))
{
}
else
{
if (tempUserIdList.Count == 9)
{
tempGroupId.Add(tempUserIdList);
tempUserIdList = new List();
}
tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId));
}
}
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;
if (tempGroupId.Count == 1)
{
foreach (var a in tempGroupId)
{
if (a.Count == 0)
{
count1 = 0;
break;
}
}
}
int count2 = 0;
int tempCount = 0;
for (int i = 0; i < tempGroupId.Count; i++)
{
var tempUserIdList1 = tempGroupId[i];
if (tempUserIdList1.Count == 0)
{
break;
}
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(1000);
}
else
{
Application.RunOnMainThread(() =>
{
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
});
return;
}
tempCount++;
}
// 批量冻结门锁中的账户后,准备冻结云端账户
if (count2 == count1)
{
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
{
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)
{
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
{
//添加云端存储信息
//冻结/解冻云端
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();
});
}
});
};
}
///
/// 是否给子账户拥有远程开锁的条件
///
///
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();
//使用确认型弹框时,的回调函数
alert.ConfirmClickEvent += () =>
{
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();
});
}
});
};
}
}
}