using System;
|
using System.Collections.Generic;
|
using Shared.Common;
|
using ZigBee.Device;
|
namespace Shared.Phone.UserCenter.DoorLock
|
{
|
public class UndistributeDoorlockUserPage : DoorLockCommonLayout
|
{
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
/// <param name="doorLock"></param>
|
public UndistributeDoorlockUserPage(ZigBee.Device.DoorLock doorLock, List<Shared.Phone.UserCenter.MemberInfoRes> localAccountList)
|
{
|
this.doorLock = doorLock;
|
this.localAccountList = localAccountList;
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
|
}
|
|
#region 变量申明
|
/// <summary>
|
/// 当前门锁
|
/// </summary>
|
ZigBee.Device.DoorLock doorLock;
|
/// <summary>
|
/// 底部白色布局
|
/// </summary>
|
FrameLayout bottomFrameLayout;
|
/// <summary>
|
/// 当前类型
|
/// </summary>
|
string currentType = string.Empty;
|
/// <summary>
|
/// 本地账户列表
|
/// </summary>
|
List<Shared.Phone.UserCenter.MemberInfoRes> localAccountList;
|
/// <summary>
|
/// 滑动布局View
|
/// </summary>
|
VerticalListRefreshControl bodyView;
|
/// <summary>
|
/// 是否二次删除
|
/// </summary>
|
bool isSecondDel;
|
/// <summary>
|
/// 保存之前搜索到本地门锁用户列表
|
/// </summary>
|
Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj> oldLocalDoorLockUserList = new Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj>();
|
#endregion
|
|
/// <summary>
|
/// 获取所有账户的门锁用户列表
|
/// </summary>
|
void ReadDoorLockUserInfo()
|
{
|
System.Threading.Tasks.Task.Run(async () =>
|
{
|
try
|
{
|
var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock);
|
if (oldLocalDoorLockUserList.Count != 0)
|
{
|
//如果本次没有搜索到,提示网关没有回复
|
if (list.Count == 0)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
});
|
}
|
}
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
UndateUnlockMethodAction += (obj) =>
|
{
|
RefreshList(obj);
|
};
|
TypeRefresh(doorLock);
|
CommonPage.Loading.Hide();
|
bodyView.EndHeaderRefreshing();
|
});
|
}
|
});
|
}
|
|
/// <summary>
|
/// UI显示
|
/// </summary>
|
public void Show()
|
{
|
doorLock.currentUserDisplayMethod = "";
|
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.UndistributedUnlockMethod));
|
this.btnTitleLine.Visible = false;
|
EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
|
{
|
RemoveFromParent();
|
};
|
this.btnBack.MouseUpEventHandler += eHandlerBack;
|
this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
|
this.MidFrameLayout(this);
|
MidFrameLayoutContent();
|
if (doorLock.localDoorLockUserList.Count == 0)
|
{
|
CommonPage.Loading.Start("Loading...");
|
ReadDoorLockUserInfo();
|
}
|
else
|
{
|
RefreshList();
|
}
|
}
|
|
/// <summary>
|
/// 中部布局
|
/// </summary>
|
public void MidFrameLayoutContent()
|
{
|
var midTopFrameLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(115),
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTopFrameLayout,
|
};
|
this.midFrameLayout.AddChidren(midTopFrameLayout);
|
|
var btnAllMethod = new Button()
|
{
|
Height = Application.GetRealHeight(49),
|
Width = Application.GetRealWidth(141 + 100),
|
Y = Application.GetRealHeight(35),
|
X = Application.GetRealWidth(812 - 100),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
|
TextSize = 12,
|
IsBold = true,
|
};
|
midTopFrameLayout.AddChidren(btnAllMethod);
|
// 类型区分
|
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod))
|
{
|
btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.AllMethod);
|
}
|
else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock))
|
{
|
btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.PasswordUnlock);
|
}
|
else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock))
|
{
|
btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.FingerprintUnlock);
|
}
|
else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock))
|
{
|
btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock);
|
}
|
else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FaceIDUnlock))
|
{
|
btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.FaceIDUnlock);
|
}
|
else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.CalmFingerprintUnlock))
|
{
|
btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.CalmFingerprintUnlock);
|
}
|
else
|
{
|
btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.AllMethod);
|
}
|
|
var btnNext = new Button()
|
{
|
X = Application.GetRealWidth(953),
|
Y = Application.GetRealHeight(20),
|
Height = Application.GetRealHeight(69),
|
Width = Application.GetRealWidth(69),
|
UnSelectedImagePath = "DoorLock/UnLockSideslipIcon.png",
|
SelectedImagePath = "DoorLock/UnLockSideslipIcon.png",
|
};
|
midTopFrameLayout.AddChidren(btnNext);
|
EventHandler<MouseEventArgs> handerSideLip = (sender, e) =>
|
{
|
SideslipFramelayout(doorLock);
|
UndateUnlockMethodAction += (obj) =>
|
{
|
RefreshList(obj);
|
};
|
};
|
btnNext.MouseUpEventHandler += handerSideLip;
|
btnAllMethod.MouseUpEventHandler += handerSideLip;
|
|
var btnLine = new Button
|
{
|
Y = midTopFrameLayout.Bottom,
|
Height = 1,
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine,
|
};
|
this.midFrameLayout.AddChidren(btnLine);
|
|
bodyView = new VerticalListRefreshControl()
|
{
|
Y = btnLine.Bottom,
|
Height = Application.GetRealHeight(1921 - 184 - 115 - 1),
|
};
|
this.midFrameLayout.AddChidren(bodyView);
|
bodyView.BeginHeaderRefreshingAction += () =>
|
{
|
bodyView.BeginHeaderRefreshing();
|
ReadDoorLockUserInfo();
|
};
|
}
|
|
/// <summary>
|
/// 刷新列表
|
/// </summary>
|
void RefreshList(int unlockMethod = -1)
|
{
|
this.midFrameLayout.RemoveAll();
|
MidFrameLayoutContent();
|
bodyView.RemoveAll();
|
var curLocalDoorLockUserList = new Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj>();
|
|
foreach (var curUserId in doorLock.localDoorLockUserList.Keys)
|
{
|
var curDoorLockUser = doorLock.localDoorLockUserList[curUserId];
|
if (!string.IsNullOrEmpty(curDoorLockUser.ConnectedAccount))
|
{
|
continue;
|
}
|
if (curDoorLockUser.UserID > 245)
|
{
|
continue;
|
}
|
curLocalDoorLockUserList.Add(curUserId, curDoorLockUser);
|
}
|
|
int i = 0;
|
foreach (var curUserId in curLocalDoorLockUserList.Keys)
|
{
|
oldLocalDoorLockUserList = curLocalDoorLockUserList;
|
var curDoorLockUser = curLocalDoorLockUserList[curUserId];
|
switch (unlockMethod)
|
{
|
case 0:
|
if (curDoorLockUser.UnlockType != unlockMethod)
|
{
|
continue;
|
}
|
break;
|
case 3:
|
if (curDoorLockUser.UnlockType != unlockMethod)
|
{
|
continue;
|
}
|
break;
|
case 13:
|
if (curDoorLockUser.UnlockType != unlockMethod)
|
{
|
continue;
|
}
|
break;
|
case 14:
|
if (curDoorLockUser.UnlockType != unlockMethod)
|
{
|
continue;
|
}
|
break;
|
case 15:
|
if (curDoorLockUser.UnlockType != unlockMethod)
|
{
|
continue;
|
}
|
break;
|
default:
|
break;
|
}
|
|
var rowFrameLayout = new RowLayoutControl(bodyView.rowSpace / 2);
|
rowFrameLayout.BackgroundColor = ZigbeeColor.Current.XMWhite;
|
bodyView.AddChidren(rowFrameLayout);
|
rowFrameLayout.frameTable.UseClickStatu = false;
|
var btnicon = rowFrameLayout.frameTable.AddLeftIcon();
|
btnicon.UnSelectedImagePath = "DoorLock/DistributeUnlockIcon.png";
|
|
string cText = "";
|
switch (curDoorLockUser.UnlockType)
|
{
|
case 0:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
cText = curDoorLockUser.UserName;
|
}
|
else
|
{
|
cText = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID;
|
}
|
break;
|
case 3:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
cText = curDoorLockUser.UserName;
|
}
|
else
|
{
|
cText = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID;
|
}
|
break;
|
case 13:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
cText = curDoorLockUser.UserName;
|
}
|
else
|
{
|
cText = Language.StringByID(R.MyInternationalizationString.CalmFingerprintMark) + "ID" + +curDoorLockUser.UserID;
|
}
|
break;
|
case 14:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
cText = curDoorLockUser.UserName;
|
}
|
else
|
{
|
cText = Language.StringByID(R.MyInternationalizationString.FaceIDMark) + "ID" + +curDoorLockUser.UserID;
|
}
|
break;
|
case 15:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
cText = curDoorLockUser.UserName;
|
}
|
else
|
{
|
cText = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID;
|
}
|
break;
|
}
|
var btnText = rowFrameLayout.frameTable.AddLeftCaption(cText, 800);
|
|
//删除
|
var btndelete = rowFrameLayout.AddDeleteControl();
|
btndelete.ButtonClickEvent += (sender, e) =>
|
{
|
string msg = Language.StringByID(R.MyInternationalizationString.SureToDelUnlockMethod);
|
var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
|
alert.Show();
|
//使用确认型弹框时,的回调函数
|
alert.ConfirmClickEvent += async () =>
|
{
|
try
|
{
|
CommonPage.Loading.Start("");
|
var passData = doorLock.SetUserAccessData(curDoorLockUser.UserID, ZigBee.Device.DoorLock.AccessType.DelCurrentUser);
|
var resultData = await doorLock.DefaultControlAsync(passData);
|
if (resultData != null && resultData.defaultControlResponseData != null)
|
{
|
if (resultData.defaultControlResponseData.status == 0 || resultData.defaultControlResponseData.status == 2)
|
{
|
var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
|
if (UserCenterResourse.UserInfo.AuthorityNo != 1)
|
{
|
deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
deleteDoorLockData.IsOtherAccountCtrl = true;
|
}
|
if (doorLock.DeviceAddr != null)
|
{
|
deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
|
}
|
deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
|
deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
|
deleteDoorLockData.DelDoorLockDelType = 2;
|
var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
|
if (result != null)
|
{
|
if (result.StateCode == "Success")
|
{
|
isSecondDel = false;
|
if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
|
{
|
doorLock.localDoorLockAccountList.Remove(curDoorLockUser.ConnectedAccount);
|
var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
|
localDoorLockObj.UserID = curDoorLockUser.UserID;
|
doorLock.localDoorLockUserList.Remove(curUserId);
|
doorLock.ReSave();
|
UndateUnlockMethodAction += (obj) =>
|
{
|
RefreshList(obj);
|
};
|
TypeRefresh(doorLock);
|
}
|
}
|
else
|
{
|
//开关图标
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnText);
|
}
|
}
|
else
|
{
|
isSecondDel = true;
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnText);
|
}
|
}
|
else
|
{
|
if (isSecondDel)
|
{
|
var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
|
if (UserCenterResourse.UserInfo.AuthorityNo != 1)
|
{
|
deleteDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
deleteDoorLockData.IsOtherAccountCtrl = true;
|
}
|
if (doorLock.DeviceAddr != null)
|
{
|
deleteDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
|
}
|
deleteDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
|
deleteDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
|
deleteDoorLockData.DelDoorLockDelType = 2;
|
var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData);
|
if (result != null)
|
{
|
if (result.StateCode == "Success")
|
{
|
isSecondDel = false;
|
if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
|
{
|
doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID);
|
var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
|
localDoorLockObj.UserID = curDoorLockUser.UserID;
|
doorLock.localDoorLockUserList.Remove(curUserId);
|
UndateUnlockMethodAction += (obj) =>
|
{
|
RefreshList(obj);
|
};
|
TypeRefresh(doorLock);
|
}
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnText);
|
}
|
}
|
else
|
{
|
isSecondDel = true;
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnText);
|
}
|
}
|
else
|
{
|
if (curDoorLockUser.UserID < 10)
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.OnlyBeDeletedOnTheDevice), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnText);
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnText);
|
}
|
}
|
}
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
|
}
|
}
|
catch { }
|
finally
|
{
|
CommonPage.Loading.Hide();
|
}
|
};
|
};
|
|
var line2 = new Button()
|
{
|
Y = rowFrameLayout.Height - 1,
|
X = Application.GetRealWidth(176),
|
Width = Application.GetRealWidth(847),
|
Height = 1,
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
|
};
|
rowFrameLayout.AddChidren(line2);
|
|
#region 数据处理
|
int currentIndex = i;
|
if (currentIndex == curLocalDoorLockUserList.Keys.Count - 1)
|
{
|
line2.Visible = false;
|
}
|
|
|
EventHandler<MouseEventArgs> eHandler = (sender, e) =>
|
{
|
MatchUsersFrameLayout(curDoorLockUser);
|
};
|
rowFrameLayout.MouseUpEventHandler += eHandler;
|
btnText.MouseUpEventHandler += eHandler;
|
#endregion
|
i++;
|
}
|
}
|
|
/// <summary>
|
/// 分配本地账户
|
/// </summary>
|
void MatchUsersFrameLayout(ZigBee.Device.DoorLock.LocaDoorLockObj curDoorLockUser)
|
{
|
#region UI
|
FrameLayout flMain = new FrameLayout { BackgroundColor = 0x0f000000 };
|
this.AddChidren(flMain);
|
flMain.MouseUpEventHandler += (sender11, e11) =>
|
{
|
flMain.RemoveFromParent();
|
bottomFrameLayout.RemoveAll();
|
};
|
bottomFrameLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(100),
|
Y = Application.GetRealHeight(1253),
|
Radius = (uint)Application.GetRealHeight(100 / 2),
|
BackgroundColor = ZigbeeColor.Current.XMWhite,
|
};
|
flMain.AddChidren(bottomFrameLayout);
|
|
var bottomFrameLayout1 = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(668 - 60),
|
Y = Application.GetRealHeight(1253 + 58),
|
BackgroundColor = ZigbeeColor.Current.XMWhite,
|
};
|
flMain.AddChidren(bottomFrameLayout1);
|
|
var bottomFrameLayout2 = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(668),
|
Y = Application.GetRealHeight(1253),
|
};
|
flMain.AddChidren(bottomFrameLayout2);
|
|
var matchUsersFrameLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(138),
|
};
|
bottomFrameLayout2.AddChidren(matchUsersFrameLayout);
|
|
var btnCancel = new Button
|
{
|
X = Application.GetRealWidth(81),
|
Y = Application.GetRealHeight(40),
|
Height = Application.GetRealHeight(58),
|
Width = Application.GetRealWidth(101),
|
Text = Language.StringByID(R.MyInternationalizationString.Cancel),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
TextSize = 14,
|
};
|
matchUsersFrameLayout.AddChidren(btnCancel);
|
|
var btnMatchUser = new Button
|
{
|
X = Application.GetRealWidth(159),
|
Y = Application.GetRealHeight(35),
|
Height = Application.GetRealHeight(63),
|
Width = Application.GetRealWidth(762),
|
Text = Language.StringByID(R.MyInternationalizationString.MatchUser),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
|
TextSize = 16,
|
TextAlignment = TextAlignment.Center,
|
};
|
matchUsersFrameLayout.AddChidren(btnMatchUser);
|
|
var btnFinish = new Button
|
{
|
X = Application.GetRealWidth(921),
|
Y = Application.GetRealHeight(40),
|
Height = Application.GetRealHeight(58),
|
Width = Application.GetRealWidth(101 + 81),
|
Text = Language.StringByID(R.MyInternationalizationString.Complete),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
|
TextSize = 14,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
matchUsersFrameLayout.AddChidren(btnFinish);
|
|
var btnTopLine = new FrameLayout()
|
{
|
Height = 1,
|
Y = Application.GetRealHeight(138),
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
|
};
|
bottomFrameLayout2.AddChidren(btnTopLine);
|
|
var matchUserHorizontalScrolViewLayout = new VerticalScrolViewLayout()
|
{
|
Y = Application.GetRealHeight(207),
|
Height = Application.GetRealHeight(806 - 207),
|
};
|
bottomFrameLayout2.AddChidren(matchUserHorizontalScrolViewLayout);
|
|
Button oldbuttonChoose = null;
|
Button oldUserName = null;
|
string curAccountId = string.Empty;
|
for (int i = 0; i < localAccountList.Count; i++)
|
{
|
var currentAccount = localAccountList[i];
|
var rowFrameLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(127),
|
};
|
matchUserHorizontalScrolViewLayout.AddChidren(rowFrameLayout);
|
|
var btnUserName = new Button()
|
{
|
Width = Application.GetRealWidth(743),
|
Height = Application.GetRealHeight(58),
|
X = Application.GetRealWidth(81),
|
Y = Application.GetRealHeight(37),
|
TextSize = 14,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
};
|
rowFrameLayout.AddChidren(btnUserName);
|
|
var btnChoose = new Button()
|
{
|
Width = Application.GetMinRealAverage(60),
|
Height = Application.GetMinRealAverage(60),
|
X = Application.GetRealWidth(861 + 81),
|
Y = Application.GetRealHeight(35),
|
SelectedImagePath = "DoorLock/SelectedIcon.png",
|
Visible = false,
|
};
|
rowFrameLayout.AddChidren(btnChoose);
|
|
var btnLine = new FrameLayout()
|
{
|
Y = rowFrameLayout.Height - 1,
|
X = Application.GetRealWidth(58),
|
Width = Application.GetRealWidth(965),
|
Height = 1,
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
|
};
|
rowFrameLayout.AddChidren(btnLine);
|
#endregion
|
#region 数据处理
|
int currentIndex = i;
|
if (currentIndex == localAccountList.Count - 1)
|
{
|
btnLine.Visible = false;
|
}
|
|
if (!string.IsNullOrEmpty(currentAccount.UserName))
|
{
|
btnUserName.Text = currentAccount.UserName;
|
}
|
else
|
{
|
btnUserName.Text = currentAccount.Account;
|
}
|
|
EventHandler<MouseEventArgs> eHandler = (sender, e) =>
|
{
|
if (doorLock.IsFreezeAccount[currentAccount.SubAccountDistributedMark] == true)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
new Tip() { MaxWidth = 150, Text = btnUserName.Text + Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
});
|
return;
|
}
|
|
if (!btnChoose.IsSelected)
|
{
|
if (oldbuttonChoose != null)
|
{
|
oldbuttonChoose.IsSelected = false;
|
oldbuttonChoose.Visible = false;
|
}
|
|
if (oldUserName != null)
|
{
|
oldbuttonChoose.IsSelected = false;
|
oldUserName.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
|
}
|
oldbuttonChoose = btnChoose;
|
oldUserName = btnUserName;
|
oldbuttonChoose.IsSelected = true;
|
oldbuttonChoose.Visible = true;
|
oldUserName.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
|
curAccountId = currentAccount.SubAccountDistributedMark;
|
}
|
};
|
btnChoose.MouseUpEventHandler += eHandler;
|
rowFrameLayout.MouseUpEventHandler += eHandler;
|
btnUserName.MouseUpEventHandler += eHandler;
|
|
}
|
#endregion
|
btnCancel.MouseUpEventHandler += (sender, e) =>
|
{
|
flMain.RemoveFromParent();
|
bottomFrameLayout.RemoveAll();
|
};
|
|
btnFinish.MouseUpEventHandler += (sender, e) =>
|
{
|
System.Threading.Tasks.Task.Run(async () =>
|
{
|
try
|
{
|
Application.RunOnMainThread(() =>
|
{
|
CommonPage.Loading.Start("");
|
});
|
if (curAccountId == "")
|
{
|
Application.RunOnMainThread(() =>
|
{
|
flMain.RemoveFromParent();
|
bottomFrameLayout.RemoveAll();
|
CommonPage.Loading.Hide();
|
});
|
}
|
else
|
{
|
var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
|
if (UserCenterResourse.UserInfo.AuthorityNo != 1)
|
{
|
addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
addLockInfo.IsOtherAccountCtrl = true;
|
}
|
addLockInfo.CloudAccountId = curAccountId;
|
if (doorLock.DeviceAddr != null)
|
{
|
addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
|
}
|
addLockInfo.OpenLockMode = curDoorLockUser.UnlockType;
|
addLockInfo.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
|
switch (curDoorLockUser.UnlockType)
|
{
|
case 0:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
|
}
|
else
|
{
|
addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID;
|
}
|
break;
|
case 3:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
|
}
|
else
|
{
|
addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID;
|
}
|
break;
|
case 13:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
|
}
|
else
|
{
|
addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.CalmFingerprintMark) + "ID" + +curDoorLockUser.UserID;
|
}
|
break;
|
case 14:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
|
}
|
else
|
{
|
addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.FaceIDMark) + "ID" + +curDoorLockUser.UserID;
|
}
|
break;
|
case 15:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
addLockInfo.UserIdRemarks = curDoorLockUser.UserName;
|
}
|
else
|
{
|
addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID;
|
}
|
break;
|
}
|
addLockInfo.EntryTime = curDoorLockUser.EntryTime;
|
var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
|
if (result != null)
|
{
|
if (result.StateCode == "Success")
|
{
|
//存门锁信息
|
var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetCloudLocalDoorLocklist(doorLock, curAccountId);
|
var uList = new List<int> { };
|
if (resultList != null)
|
{
|
foreach (var a in resultList.Keys)
|
{
|
uList.Add(a);
|
}
|
}
|
var d = uList.Find((value) => { return value == curDoorLockUser.UserID; });
|
if (d != null)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.DistributeSuccess), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
UndateUnlockMethodAction += (obj) =>
|
{
|
RefreshList(obj);
|
};
|
TypeRefresh(doorLock);
|
CommonPage.Loading.Hide();
|
flMain.RemoveFromParent();
|
bottomFrameLayout.RemoveAll();
|
|
});
|
}
|
else
|
{
|
Application.RunOnMainThread(() =>
|
{
|
CommonPage.Loading.Hide();
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
});
|
}
|
}
|
else
|
{
|
Application.RunOnMainThread(() =>
|
{
|
CommonPage.Loading.Hide();
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
});
|
return;
|
}
|
}
|
else
|
{
|
Application.RunOnMainThread(() =>
|
{
|
CommonPage.Loading.Hide();
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(btnFinish);
|
});
|
return;
|
}
|
}
|
}
|
catch { }
|
});
|
};
|
}
|
}
|
}
|