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
{
///
/// 处理变化事件
///
///
///
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)
{
}
}
}
}
}
/// 构造函数
///
///
public UnLockMethod(ZigBee.Device.DoorLock doorLock, MemberInfoRes accountObj)
{
this.doorLock = doorLock;
this.curAccountObj = accountObj;
BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
}
#region 变量申明
///
/// 当前门锁
///
ZigBee.Device.DoorLock doorLock;
///
/// 刷新View
///
VerticalListRefreshControl bodyView;
///
/// 当前选择的方式
///
Button currentMethod;
///
/// 当前账户
///
MemberInfoRes curAccountObj;
///
/// 数据为空,UI显示的空图片
///
Button entryStatusPic;
///
/// 数据为空,UI显示的文本提示
///
Button btnPicTip;
///
/// 数据为空,UI显示的文本提示
///
Button btnPicTip1;
///
/// //是否二次删除
///
bool isSecondDel;
///
/// 空数据显示布局
///
FrameLayout blankFrameLayout;
#endregion
///
/// 读取门锁存储的最新数据
///
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();
});
}
});
}
///
/// UI显示
///
public void Show()
{
UserView.HomePage.Instance.ScrollEnabled = false;
doorLock.currentUserDisplayMethod = "";
this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.LockMethod));
this.btnTitleLine.Visible = false;
EventHandler 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();
//}
}
///
/// 中部布局
///
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 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();
}
///
/// 空数据UI显示
///
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;
}
}
///
/// 刷新列表
///
///
///
public void RefreshList(int unlockMethod = -1)
{
bodyView.RemoveAll();
this.midFrameLayout.RemoveAll();
MidFrameLayoutContent();
var curAccountDoorLockUserList = new Dictionary();
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 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++;
}
}
}
///
/// 侧边导航栏
///
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 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
}
}
///
/// 类型区分
///
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();
}
}
///
/// 重写移除方法
///
public override void RemoveFromParent()
{
UserView.HomePage.Instance.ScrollEnabled = true;
ZbGateway.StatusList.Remove(this);
base.RemoveFromParent();
}
}
}