using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using Shared.Common;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.DoorLock
|
{
|
public class UnLockMethod : DoorLockCommonLayout, ZigBee.Common.IStatus
|
{
|
/// <summary>
|
/// 处理变化事件
|
/// </summary>
|
/// <param name="common"></param>
|
/// <param name="typeTag"></param>
|
public void DeviceInfoChange(CommonDevice tempDevice, string typeTag)
|
{
|
if (typeTag == "DoorLockProgrammingEventNotificationCommand" && tempDevice != null)
|
{
|
if (tempDevice != null)
|
{
|
if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
|
&& tempDevice.DeviceAddr == doorLock.DeviceAddr)
|
{
|
var doorLock = tempDevice as ZigBee.Device.DoorLock;
|
if (doorLock.doorLockProgrammingEventNotificationCommand != null)
|
{
|
}
|
}
|
}
|
}
|
}
|
/// 构造函数
|
/// </summary>
|
/// <param name="doorLock"></param>
|
public UnLockMethod(ZigBee.Device.DoorLock doorLock, MemberInfoRes accountObj)
|
{
|
this.doorLock = doorLock;
|
this.curAccountObj = accountObj;
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
|
}
|
|
#region 变量申明
|
/// <summary>
|
/// 当前门锁
|
/// </summary>
|
ZigBee.Device.DoorLock doorLock;
|
/// <summary>
|
/// 刷新View
|
/// </summary>
|
VerticalListRefreshControl bodyView;
|
/// <summary>
|
/// 当前选择的方式
|
/// </summary>
|
Button currentMethod;
|
/// <summary>
|
/// 当前账户
|
/// </summary>
|
MemberInfoRes curAccountObj;
|
/// <summary>
|
/// 数据为空,UI显示的空图片
|
/// </summary>
|
Button entryStatusPic;
|
/// <summary>
|
/// 数据为空,UI显示的文本提示
|
/// </summary>
|
Button btnPicTip;
|
/// <summary>
|
/// 数据为空,UI显示的文本提示
|
/// </summary>
|
Button btnPicTip1;
|
/// <summary>
|
/// //是否二次删除
|
/// </summary>
|
bool isSecondDel;
|
/// <summary>
|
/// 空数据显示布局
|
/// </summary>
|
FrameLayout blankFrameLayout;
|
#endregion
|
|
/// <summary>
|
/// 读取门锁存储的最新数据
|
/// </summary>
|
void ReadDoorLockUserInfo()
|
{
|
System.Threading.Tasks.Task.Run(async () =>
|
{
|
try
|
{
|
//☆マーク☆
|
//var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock);
|
//if (doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] == true)
|
//{
|
// //数据如果在门锁上面是空的时候,数据也是没有的
|
// 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(() =>
|
{
|
// 类型区分
|
TypeRefresh();
|
CommonPage.Loading.Hide();
|
bodyView.EndHeaderRefreshing();
|
});
|
}
|
});
|
}
|
|
/// <summary>
|
/// UI显示
|
/// </summary>
|
public void Show()
|
{
|
UserView.HomePage.Instance.ScrollEnabled = false;
|
doorLock.currentUserDisplayMethod = "";
|
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.LockMethod));
|
this.btnTitleLine.Visible = false;
|
EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
|
{
|
this.RemoveFromParent();
|
};
|
this.btnBack.MouseUpEventHandler += eHandlerBack;
|
this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
|
this.MidFrameLayout(this);
|
|
var btnAddFrameLayout = new FrameLayout
|
{
|
X = Application.GetRealWidth(953 - 116),
|
Height = Application.GetRealHeight(72),
|
Width = Application.GetRealWidth(72),
|
};
|
this.titleFrameLayout.AddChidren(btnAddFrameLayout);
|
|
var btnAdd = new Button
|
{
|
Height = Application.GetRealHeight(69),
|
Width = Application.GetRealWidth(69),
|
UnSelectedImagePath = "DoorLock/AddIcon.png",
|
};
|
btnAddFrameLayout.AddChidren(btnAdd);
|
if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
|
{
|
btnAdd.Width = 0;
|
}
|
btnAdd.MouseDownEventHandler += (sender, e) =>
|
{
|
//☆マーク☆
|
//if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == true)
|
//{
|
// new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
|
//}
|
//else
|
//{
|
// var addUnLockMethod = new Shared.Phone.UserCenter.DoorLock.AddUnLockMethod(doorLock, curAccountObj);
|
// Shared.Phone.UserView.HomePage.Instance.AddChidren(addUnLockMethod);
|
// Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
|
// addUnLockMethod.Show();
|
//}
|
};
|
if (HdlUserCenterResourse.ResidenceOption.AuthorityNo == 3)
|
{
|
btnAddFrameLayout.Width = 0;
|
}
|
else
|
{
|
btnAddFrameLayout.Width = Application.GetRealWidth(72);
|
}
|
|
MidFrameLayoutContent();
|
//☆マーク☆
|
//if (doorLock.IsFailedToGetDoorLockInfo[curAccountObj.SubAccountDistributedMark] == true)
|
//{
|
// CommonPage.Loading.Start("Loading...");
|
// ReadDoorLockUserInfo();
|
//}
|
//else
|
//{
|
// RefreshList();
|
//}
|
}
|
|
/// <summary>
|
/// 中部布局
|
/// </summary>
|
void MidFrameLayoutContent()
|
{
|
#region 开锁方式UI
|
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
|
{
|
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();
|
};
|
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);
|
#endregion
|
|
bodyView = new VerticalListRefreshControl(29)
|
{
|
Y = btnLine.Bottom,
|
Height = Application.GetRealHeight(1921 - 184 - 116),
|
};
|
this.midFrameLayout.AddChidren(bodyView);
|
bodyView.BeginHeaderRefreshingAction += () =>
|
{
|
bodyView.BeginHeaderRefreshing();
|
ReadDoorLockUserInfo();
|
};
|
BlankPicUI();
|
}
|
|
/// <summary>
|
/// 空数据UI显示
|
/// </summary>
|
void BlankPicUI()
|
{
|
blankFrameLayout = new FrameLayout
|
{
|
};
|
bodyView.AddChidren(blankFrameLayout);
|
|
entryStatusPic = new Button
|
{
|
X = Application.GetRealWidth(164),
|
Y = Application.GetRealHeight(377),
|
Height = Application.GetRealHeight(435),
|
Width = Application.GetRealHeight(757),
|
Visible = false,
|
UnSelectedImagePath = "DoorLock/UnLockBlankPic.png",
|
Gravity = Gravity.CenterHorizontal,
|
};
|
blankFrameLayout.AddChidren(entryStatusPic);
|
|
btnPicTip = new Button
|
{
|
X = Application.GetRealWidth(397),
|
Text = Language.StringByID(R.MyInternationalizationString.NoPasswordInformation),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
Gravity = Gravity.CenterHorizontal,
|
Visible = false,
|
Y = Application.GetRealHeight(844),
|
TextSize = 12,
|
};
|
blankFrameLayout.AddChidren(btnPicTip);
|
|
btnPicTip1 = new Button
|
{
|
X = Application.GetRealWidth(397),
|
Y = Application.GetRealHeight(844 + 49),
|
Text = Language.StringByID(R.MyInternationalizationString.NoPasswordInformation1),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
Gravity = Gravity.CenterHorizontal,
|
Visible = true,
|
TextSize = 12,
|
};
|
blankFrameLayout.AddChidren(btnPicTip1);
|
if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
|
{
|
btnPicTip1.Width = 0;
|
}
|
}
|
|
/// <summary>
|
/// 刷新列表
|
/// </summary>
|
/// <param name="gateway"></param>
|
/// <param name="key"></param>
|
public void RefreshList(int unlockMethod = -1)
|
{
|
bodyView.RemoveAll();
|
this.midFrameLayout.RemoveAll();
|
MidFrameLayoutContent();
|
var curAccountDoorLockUserList = new Dictionary<int, ZigBee.Device.DoorLock.LocaDoorLockObj>();
|
foreach (var curUserId in doorLock.localDoorLockUserList.Keys)
|
{
|
var curDoorLockUser = doorLock.localDoorLockUserList[curUserId];
|
//☆マーク☆
|
//if (string.IsNullOrEmpty(curDoorLockUser.ConnectedAccount) || curDoorLockUser.ConnectedAccount != curAccountObj.SubAccountDistributedMark)
|
//{
|
// continue;
|
//}
|
//else
|
//{
|
// curAccountDoorLockUserList.Add(curDoorLockUser.UserID, curDoorLockUser);
|
//}
|
}
|
|
if (curAccountDoorLockUserList.Count == 0)
|
{
|
entryStatusPic.Visible = true;
|
btnPicTip.Visible = true;
|
btnPicTip1.Visible = true;
|
blankFrameLayout.Visible = true;
|
entryStatusPic.Height = Application.GetRealHeight(435);
|
entryStatusPic.Width = Application.GetRealHeight(757);
|
btnPicTip.Height = Application.GetRealHeight(98 / 2);
|
btnPicTip1.Height = Application.GetRealHeight(98 / 2);
|
blankFrameLayout.Height = bodyView.Height;
|
}
|
else
|
{
|
entryStatusPic.Visible = false;
|
btnPicTip.Visible = false;
|
btnPicTip1.Visible = false;
|
blankFrameLayout.Visible = false;
|
entryStatusPic.Height = Application.GetRealHeight(0);
|
entryStatusPic.Width = Application.GetRealHeight(0);
|
btnPicTip.Height = Application.GetRealHeight(0);
|
btnPicTip1.Height = Application.GetRealHeight(0);
|
blankFrameLayout.Height = Application.GetRealHeight(0);
|
|
int i = 0;
|
foreach (var curUserId in curAccountDoorLockUserList.Keys)
|
{
|
var curDoorLockUser = curAccountDoorLockUserList[curUserId];
|
switch (unlockMethod)
|
{
|
case 0:
|
if (curDoorLockUser.UnlockType != unlockMethod)
|
{
|
continue;
|
}
|
break;
|
case 3:
|
if (curDoorLockUser.UnlockType != unlockMethod)
|
{
|
continue;
|
}
|
break;
|
case 15:
|
if (curDoorLockUser.UnlockType != unlockMethod)
|
{
|
continue;
|
}
|
break;
|
default:
|
break;
|
}
|
|
#region UI
|
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/DoorLockUserPic.png";
|
//上面门锁用户名称一行
|
var memberText = curAccountObj.ShowName;
|
|
//成员一行
|
var btnaa = rowFrameLayout.frameTable.AddBottomView(memberText, 800);
|
var btnDoorlockUser = new EditText()
|
{
|
Width = Application.GetRealWidth(800),
|
Height = Application.GetRealHeight(60),
|
X = btnaa.X,
|
Y = rowFrameLayout.chidrenYaxis + Application.GetRealHeight(12),
|
TextSize = 14,
|
PlaceholderTextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
rowFrameLayout.frameTable.AddChidren(btnDoorlockUser, ChidrenBindMode.NotBind);
|
rowFrameLayout.frameTable.AddBottomLine();
|
var btndelete = rowFrameLayout.AddDeleteControl();
|
btndelete.ButtonClickEvent += (sender, e) =>
|
{
|
string msg = Language.StringByID(R.MyInternationalizationString.SureToDelUnlockMethod);
|
var alert = new 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 (HdlUserCenterResourse.ResidenceOption.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.Code == HttpMessageEnum.A成功)
|
{
|
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();
|
TypeRefresh();
|
}
|
}
|
else
|
{
|
//开关图标
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
|
}
|
}
|
else
|
{
|
isSecondDel = true;
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
|
}
|
}
|
else
|
{
|
if (isSecondDel)
|
{
|
var deleteDoorLockData = new ZigBee.Device.DoorLock.DeleteDoorLockData();
|
if (HdlUserCenterResourse.ResidenceOption.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.Code == HttpMessageEnum.A成功)
|
{
|
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);
|
TypeRefresh();
|
}
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
|
}
|
}
|
else
|
{
|
isSecondDel = true;
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
|
}
|
}
|
else
|
{
|
if (curDoorLockUser.UserID < 10)
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.OnlyBeDeletedOnTheDevice), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
|
}
|
}
|
}
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
|
}
|
}
|
catch { }
|
finally
|
{
|
CommonPage.Loading.Hide();
|
}
|
};
|
};
|
#endregion
|
|
#region 数据处理
|
int currentIndex = i;
|
if (currentIndex == curAccountDoorLockUserList.Keys.Count - 1)
|
{
|
rowFrameLayout.LineColor = Shared.Common.ZigbeeColor.Current.XMWhite;
|
}
|
|
switch (curDoorLockUser.UnlockType)
|
{
|
case 0:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
btnDoorlockUser.Text = curDoorLockUser.UserName;
|
}
|
else
|
{
|
btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID;
|
}
|
break;
|
case 3:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
btnDoorlockUser.Text = curDoorLockUser.UserName;
|
}
|
else
|
{
|
btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID;
|
}
|
break;
|
case 15:
|
if (!string.IsNullOrEmpty(curDoorLockUser.UserName))
|
{
|
btnDoorlockUser.Text = curDoorLockUser.UserName;
|
}
|
else
|
{
|
btnDoorlockUser.Text = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID;
|
}
|
break;
|
}
|
|
|
Action<Shared.View> action = async (obj) =>
|
{
|
var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
|
if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
|
{
|
//☆マーク☆
|
//refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
refreshDoorLockData.IsOtherAccountCtrl = true;
|
}
|
if (doorLock.DeviceAddr != null)
|
{
|
refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
|
}
|
refreshDoorLockData.OpenLockMode = curDoorLockUser.UnlockType;
|
refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.UserID.ToString();
|
refreshDoorLockData.PrimaryId = curDoorLockUser.PrimaryId;
|
refreshDoorLockData.UserIdRemarks = btnDoorlockUser.Text;
|
var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
|
if (result != null)
|
{
|
if (result.Code == HttpMessageEnum.A成功)
|
{
|
if (doorLock.localDoorLockUserList.ContainsKey(curDoorLockUser.UserID))
|
{
|
doorLock.localDoorLockUserList.Remove(curDoorLockUser.UserID);
|
var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
|
localDoorLockObj.UserID = curDoorLockUser.UserID;
|
localDoorLockObj.UnlockType = curDoorLockUser.UnlockType;
|
localDoorLockObj.PrimaryId = curDoorLockUser.PrimaryId;
|
localDoorLockObj.EntryTime = curDoorLockUser.EntryTime;
|
localDoorLockObj.UserName = refreshDoorLockData.UserIdRemarks;
|
//☆マーク☆
|
//localDoorLockObj.ConnectedAccount = curAccountObj.SubAccountDistributedMark;
|
doorLock.localDoorLockUserList.Add(curDoorLockUser.UserID, localDoorLockObj);
|
TypeRefresh();
|
}
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ModigfyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
|
}
|
}
|
else
|
{
|
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDoorlockUser);
|
}
|
};
|
btnDoorlockUser.EditorEnterAction += action;
|
#endregion
|
i++;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 侧边导航栏
|
/// </summary>
|
void SideslipFramelayout()
|
{
|
#region sidelipFrameLayout UI
|
var dialog = new Dialog
|
{
|
};
|
dialog.Show();
|
|
var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
|
dialog.AddChidren(flMain);
|
flMain.MouseUpEventHandler += (sender11, e11) =>
|
{
|
dialog.Close();
|
};
|
|
var sidelipFrameLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(625),
|
Width = Application.GetRealWidth(449),
|
Y = Application.GetRealHeight(115 + 160),
|
X = Application.GetRealWidth(596),
|
BackgroundImagePath = "DoorLock/SideslipPic.png",
|
};
|
flMain.AddChidren(sidelipFrameLayout);
|
|
var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
|
{
|
Height = Application.GetRealHeight(600),
|
Y = Application.GetRealHeight(28),
|
};
|
sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
|
#endregion
|
|
Button oldbutton = null;
|
Button oldbuttonText = null;
|
for (var i = 0; i < 4; i++)
|
{
|
#region rowFrameLayout UI
|
var rowFrameLayout = new RowLayout()
|
{
|
Height = Application.GetRealHeight(150),
|
LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
|
X = Application.GetRealWidth(81),
|
};
|
sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout);
|
|
var btnAllMethod = new Button()
|
{
|
Width = Application.GetRealWidth(81),
|
Height = Application.GetRealHeight(81),
|
Y = Application.GetRealHeight(35),
|
};
|
rowFrameLayout.AddChidren(btnAllMethod);
|
|
var btnMethodText = new Button()
|
{
|
Width = Application.GetRealWidth(311),
|
Height = Application.GetRealHeight(58),
|
X = Application.GetRealWidth(92),
|
Y = Application.GetRealHeight(49),
|
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
|
TextSize = 14,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
rowFrameLayout.AddChidren(btnMethodText);
|
#endregion
|
|
#region 数据处理
|
EventHandler<MouseEventArgs> hander = (sender, e) =>
|
{
|
if (!btnAllMethod.IsSelected)
|
{
|
if (oldbutton != null)
|
{
|
oldbutton.IsSelected = false;
|
}
|
if (oldbuttonText != null)
|
{
|
oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
|
}
|
oldbutton = btnAllMethod;
|
oldbuttonText = btnMethodText;
|
doorLock.currentUserDisplayMethod = btnMethodText.Text;
|
doorLock.ReSave();
|
btnAllMethod.IsSelected = true;
|
oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
|
oldbuttonText.IsBold = true;
|
TypeRefresh();
|
}
|
dialog.Close();
|
};
|
rowFrameLayout.MouseUpEventHandler += hander;
|
btnAllMethod.MouseUpEventHandler += hander;
|
btnMethodText.MouseUpEventHandler += hander;
|
|
DisplayAllUnlockMethod(i, btnAllMethod, btnMethodText);
|
|
if (string.IsNullOrEmpty(doorLock.currentUserDisplayMethod) && i == 0)
|
{
|
CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText);
|
}
|
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod) && i == 0)
|
{
|
CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText);
|
}
|
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock) && i == 1)
|
{
|
CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText);
|
}
|
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock) && i == 2)
|
{
|
CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText);
|
}
|
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock) && i == 3)
|
{
|
CurrentSelectUnlockMethod(btnAllMethod, btnMethodText, oldbutton, oldbuttonText);
|
}
|
#endregion
|
}
|
}
|
|
/// <summary>
|
/// 类型区分
|
/// </summary>
|
void TypeRefresh()
|
{
|
if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock))
|
{
|
RefreshList(0);
|
}
|
else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock))
|
{
|
RefreshList(15);
|
}
|
else if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock))
|
{
|
RefreshList(3);
|
}
|
else
|
{
|
RefreshList();
|
}
|
}
|
|
/// <summary>
|
/// 重写移除方法
|
/// </summary>
|
public override void RemoveFromParent()
|
{
|
UserView.HomePage.Instance.ScrollEnabled = true;
|
ZbGateway.StatusList.Remove(this);
|
base.RemoveFromParent();
|
}
|
}
|
}
|