using System; using System.Collections.Generic; using Shared.Common; using ZigBee.Device; namespace Shared.Phone.UserCenter.DoorLock { public class UndistributeDoorlockUserPage : DoorLockCommonLayout, ZigBee.Common.IStatus { /// /// 构造函数 /// /// public UndistributeDoorlockUserPage(ZigBee.Device.DoorLock doorLock, List localAccountList) { this.doorLock = doorLock; this.localAccountList = localAccountList; BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor; } #region ◆ 变量申明__________________________ ZigBee.Device.DoorLock doorLock; FrameLayout bottomFrameLayout; string currentType = string.Empty; List localAccountList; VerticalScrolViewLayout bodyView; #endregion void ReadDoorLockUserInfo() { System.Threading.Tasks.Task.Run(async () => { Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); try { var getDoorLockInfo = await doorLock.GetDoorlockUserInfoAsync(); if (getDoorLockInfo != null && getDoorLockInfo.doorLockUserDetailData != null) { var dataList = getDoorLockInfo.doorLockUserDetailData.UserObjList; foreach (var doorData in dataList) { var localDoorLockObj1 = new ZigBee.Device.DoorLock.LocaDoorLockObj() { UserID = doorData.UserId, UnlockType = doorData.UserType }; if ((doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj1.UserID)) == false) { doorLock.localDoorLockUserList.Add(localDoorLockObj1.UserID, localDoorLockObj1); } } // 读取云端门锁设备中的信息 var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { }; foreach (var curAccountObj in doorLock.localAllAccountList) { if (UserCenterResourse.UserInfo.AuthorityNo != 1) { localDoorLockObj.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); localDoorLockObj.IsOtherAccountCtrl = true; } localDoorLockObj.CloudAccountId = curAccountObj.SubAccountDistributedMark; if (doorLock.DeviceAddr != null) { localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; } var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj); if (getDoorLockInfoList != null) { foreach (var curDoorLockUser in getDoorLockInfoList.PageData) { if (curDoorLockUser.DoorLockLocalUserId == null || curDoorLockUser.DoorLockLocalUserId == "") { continue; } if (doorLock.localDoorLockUserList.ContainsKey(int.Parse(curDoorLockUser.DoorLockLocalUserId))) { var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId); doorLockObj.UnlockType = curDoorLockUser.OpenLockMode; doorLockObj.PrimaryId = curDoorLockUser.Id; doorLockObj.EntryTime = curDoorLockUser.EntryTime; doorLockObj.UserName = curDoorLockUser.UserIdRemarks; doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId; doorLock.localDoorLockUserList[int.Parse(curDoorLockUser.DoorLockLocalUserId)] = doorLockObj; } else { if (curDoorLockUser.DoorLockLocalUserId != null) { //门锁中没有,云端有用户ID,后台删除云端这些ID 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.DoorLockLocalUserId; deleteDoorLockData.PrimaryId = curDoorLockUser.Id; deleteDoorLockData.DelDoorLockDelType = 2; var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLock", deleteDoorLockData); int i = 0; } } } } else { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); return; }); } } } else { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); }); } } catch { } finally { Application.RunOnMainThread(() => { MidFrameLayoutContent(); CommonPage.Loading.Hide(); }); } }); } /// /// UI显示 /// public void Show() { this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.UndistributedUnlockMethod)); this.btnTitleLine.Visible = false; EventHandler eHandlerBack = (sender, e) => { RemoveFromParent(); this.btnTip.Visible = false; }; this.btnBack.MouseUpEventHandler += eHandlerBack; this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; this.MidFrameLayout(this); ReadDoorLockUserInfo(); } 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.Center, Text = Language.StringByID(R.MyInternationalizationString.LockMethod), TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, TextSize = 12, }; midTopFrameLayout.AddChidren(btnAllMethod); 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); btnNext.MouseUpEventHandler += (sender, e) => { SideslipFramelayout(); }; var btnLine = new Button { Y = midTopFrameLayout.Bottom, Height = 1, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine, }; this.midFrameLayout.AddChidren(btnLine); bodyView = new VerticalScrolViewLayout() { Y = midTopFrameLayout.Bottom, Height = Application.GetRealHeight(1921 - 184 - 115 - 1), }; this.midFrameLayout.AddChidren(bodyView); RefreshList(); } void RefreshList() { bodyView.RemoveAll(); foreach (var curUserId in doorLock.localDoorLockUserList.Keys) { var curDoorLockUser = doorLock.localDoorLockUserList[curUserId]; if (curDoorLockUser.ConnectedAccount != "") { continue; } if (curDoorLockUser.UserID > 245) { continue; } var RowView = new FrameLayout() { Height = Application.GetRealHeight(161), BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, }; bodyView.AddChidren(RowView); var btnDistributeUnlockIconFrameLayout = new FrameLayout() { Height = Application.GetRealHeight(84), Width = Application.GetRealWidth(84), X = Application.GetRealWidth(58), Y = Application.GetRealHeight(43), }; RowView.AddChidren(btnDistributeUnlockIconFrameLayout); var btnDistributeUnlockIcon = new Button() { Height = Application.GetRealHeight(84), Width = Application.GetRealWidth(84), UnSelectedImagePath = "DoorLock/DistributeUnlockIcon.png", }; btnDistributeUnlockIconFrameLayout.AddChidren(btnDistributeUnlockIcon); var btnText = new Button() { X = Application.GetRealWidth(176), Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(300), TextAlignment = TextAlignment.CenterLeft, TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, Gravity = Gravity.CenterVertical, }; RowView.AddChidren(btnText); var line2 = new Button() { Y = RowView.Height - 1, X = Application.GetRealWidth(58), Width = Application.GetRealWidth(965), Height = 1, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, }; RowView.AddChidren(line2); #region 数据处理 switch (curDoorLockUser.UnlockType) { case 0: if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null) { btnText.Text = curDoorLockUser.UserName; } else { btnText.Text = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID; } break; case 3: if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null) { btnText.Text = curDoorLockUser.UserName; } else { btnText.Text = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID; } break; case 15: if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null) { btnText.Text = curDoorLockUser.UserName; } else { btnText.Text = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID; } break; } EventHandler eHandler = (sender, e) => { MatchUsersFrameLayout(curDoorLockUser); }; btnDistributeUnlockIcon.MouseUpEventHandler += eHandler; btnDistributeUnlockIconFrameLayout.MouseUpEventHandler += eHandler; RowView.MouseUpEventHandler += eHandler; btnText.MouseUpEventHandler += eHandler; #endregion } } //本地账户 void MatchUsersFrameLayout(ZigBee.Device.DoorLock.LocaDoorLockObj curDoorLockUser) { #region UI FrameLayout flMain = new FrameLayout { BackgroundColor = 0x0f000000 }; this.midFrameLayout.AddChidren(flMain); flMain.MouseUpEventHandler += (sender11, e11) => { flMain.RemoveFromParent(); bottomFrameLayout.RemoveAll(); }; bottomFrameLayout = new FrameLayout() { Height = Application.GetRealHeight(100), Y = Application.GetRealHeight(930), Radius = 17, BackgroundColor = ZigbeeColor.Current.XMWhite, }; flMain.AddChidren(bottomFrameLayout); var bottomFrameLayout1 = new FrameLayout() { Height = Application.GetRealHeight(806 - 50), Y = Application.GetRealHeight(930 + 48), BackgroundColor = ZigbeeColor.Current.XMWhite, }; flMain.AddChidren(bottomFrameLayout1); var bottomFrameLayout2 = new FrameLayout() { Height = Application.GetRealHeight(806), Y = Application.GetRealHeight(930), }; 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(446), Y = Application.GetRealHeight(35), Height = Application.GetRealHeight(63), Width = Application.GetRealWidth(284), Text = Language.StringByID(R.MyInternationalizationString.MatchPerson), TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextSize = 16, }; matchUsersFrameLayout.AddChidren(btnMatchUser); var btnFinish = new Button { X = Application.GetRealWidth(919), Y = Application.GetRealHeight(40), Height = Application.GetRealHeight(58), Width = Application.GetRealWidth(101), Text = Language.StringByID(R.MyInternationalizationString.Complete), TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextSize = 14, }; matchUsersFrameLayout.AddChidren(btnFinish); var btnTopLine = new FrameLayout() { Height = Application.GetRealHeight(5), Y = Application.GetRealHeight(138), BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3, }; 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.GetRealWidth(60), Height = Application.GetRealHeight(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 (currentAccount.UserName != "" && currentAccount.UserName != null) { btnUserName.Text = currentAccount.UserName; } else { btnUserName.Text = currentAccount.Account; } EventHandler eHandler = (sender, e) => { if (doorLock.IsFreezeAccount[currentAccount.SubAccountDistributedMark] == true) { new Tip() { MaxWidth = 150, Text = btnUserName.Text + Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); 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 += async (sender, e) => { if (curAccountId == "") { flMain.RemoveFromParent(); bottomFrameLayout.RemoveAll(); } 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 (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null) { addLockInfo.UserIdRemarks = curDoorLockUser.UserName; } else { addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID; } break; case 3: if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null) { addLockInfo.UserIdRemarks = curDoorLockUser.UserName; } else { addLockInfo.UserIdRemarks = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID; } break; case 15: if (curDoorLockUser.UserName != "" && curDoorLockUser.UserName != null) { 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 { }; if (resultList != null) { foreach (var a in resultList.Keys) { uList.Add(a); } } var d = uList.Find((value) => { return value == curDoorLockUser.UserID; }); if (d != null) { RefreshList(); flMain.RemoveFromParent(); bottomFrameLayout.RemoveAll(); } else { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); } } else { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); flMain.RemoveFromParent(); bottomFrameLayout.RemoveAll(); } } else { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); flMain.RemoveFromParent(); bottomFrameLayout.RemoveAll(); } } }; } // 侧边导航栏 void SideslipFramelayout() { 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); Button oldbutton = null; Button oldbuttonText = null; for (var i = 0; i < 4; i++) { var rowFrameLayout = new RowLayout() { Height = Application.GetRealHeight(150), }; sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout); var btnAllMethod = new Button() { Width = Application.GetRealWidth(81), Height = Application.GetRealHeight(81), X = Application.GetRealWidth(81), Y = Application.GetRealHeight(55), }; rowFrameLayout.AddChidren(btnAllMethod); var btnMethodText = new Button() { Width = Application.GetRealWidth(311), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(173), Y = Application.GetRealHeight(69), TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextSize = 14, TextAlignment = TextAlignment.CenterLeft, }; rowFrameLayout.AddChidren(btnMethodText); 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; btnAllMethod.IsSelected = true; oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; // 类型区分 if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod)) { RefreshList(); } if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock)) { DisplayByType(0); } if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock)) { DisplayByType(15); } if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock)) { DisplayByType(3); } } dialog.Close(); }; rowFrameLayout.MouseUpEventHandler += hander; btnAllMethod.MouseUpEventHandler += hander; btnMethodText.MouseUpEventHandler += hander; switch (i) { case 0: btnAllMethod.UnSelectedImagePath = "DoorLock/AllMethod.png"; btnAllMethod.SelectedImagePath = "DoorLock/AllMethodOn.png"; btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AllMethod); break; case 1: btnAllMethod.UnSelectedImagePath = "DoorLock/Password.png"; btnAllMethod.SelectedImagePath = "DoorLock/PasswordOn.png"; btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.PasswordUnlock); break; case 2: btnAllMethod.UnSelectedImagePath = "DoorLock/Fingerprint.png"; btnAllMethod.SelectedImagePath = "DoorLock/FingerprintOn.png"; btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.FingerprintUnlock); break; case 3: btnAllMethod.UnSelectedImagePath = "DoorLock/proximityCard.png"; btnAllMethod.SelectedImagePath = "DoorLock/proximityCardOn.png"; btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock); break; } if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod) && i == 0) { btnAllMethod.IsSelected = true; btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbutton = btnAllMethod; oldbuttonText = btnMethodText; } if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.PasswordUnlock) && i == 1) { btnAllMethod.IsSelected = true; btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbutton = btnAllMethod; oldbuttonText = btnMethodText; } if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.FingerprintUnlock) && i == 2) { btnAllMethod.IsSelected = true; btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbutton = btnAllMethod; oldbuttonText = btnMethodText; } if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.ProximithCardUnlock) && i == 3) { btnAllMethod.IsSelected = true; btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbutton = btnAllMethod; oldbuttonText = btnMethodText; } } } // 通过类型筛选显示 void DisplayByType(int unlockMethod) { bodyView.RemoveAll(); foreach (var curUserId in doorLock.localDoorLockUserList.Keys) { var curDoorLockUser = doorLock.localDoorLockUserList[curUserId]; if (curDoorLockUser.ConnectedAccount != "" || curDoorLockUser.UnlockType != unlockMethod) { continue; } var RowView = new FrameLayout() { Height = Application.GetRealHeight(161), BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, }; bodyView.AddChidren(RowView); var btnDistributeUnlockIconFrameLayout = new FrameLayout() { Height = Application.GetRealHeight(84), Width = Application.GetRealWidth(84), X = Application.GetRealWidth(58), Y = Application.GetRealHeight(43), }; RowView.AddChidren(btnDistributeUnlockIconFrameLayout); var btnDistributeUnlockIcon = new Button() { Height = Application.GetRealHeight(84), Width = Application.GetRealWidth(84), UnSelectedImagePath = "DoorLock/DistributeUnlockIcon.png", }; btnDistributeUnlockIconFrameLayout.AddChidren(btnDistributeUnlockIcon); var btnText = new Button() { X = Application.GetRealWidth(176), Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(300), TextAlignment = TextAlignment.CenterLeft, TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, Gravity = Gravity.CenterVertical, }; RowView.AddChidren(btnText); var line2 = new Button() { Y = RowView.Height - 1, X = Application.GetRealWidth(58), Width = Application.GetRealWidth(965), Height = 1, BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, }; RowView.AddChidren(line2); #region 数据处理 switch (curDoorLockUser.UnlockType) { case 0: if (curDoorLockUser.UserName != "") { btnText.Text = curDoorLockUser.UserName; } else { btnText.Text = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + curDoorLockUser.UserID; } break; case 3: if (curDoorLockUser.UserName != "") { btnText.Text = curDoorLockUser.UserName; } else { btnText.Text = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + curDoorLockUser.UserID; } break; case 15: if (curDoorLockUser.UserName != "") { btnText.Text = curDoorLockUser.UserName; } else { btnText.Text = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + +curDoorLockUser.UserID; } break; } EventHandler eHandler = (sender, e) => { MatchUsersFrameLayout(curDoorLockUser); }; btnDistributeUnlockIcon.MouseUpEventHandler += eHandler; btnDistributeUnlockIconFrameLayout.MouseUpEventHandler += eHandler; RowView.MouseUpEventHandler += eHandler; btnText.MouseUpEventHandler += eHandler; #endregion } } #region ◆ 接口实现__________________________ /// /// 处理变化事件 --将弃用 改用DeviceInfoChange() /// /// The changed. /// Common. public void Changed(CommonDevice common) { } /// /// 处理变化事件 /// /// /// public void DeviceInfoChange(CommonDevice common, string typeTag) { } /// /// Changeds the IL ogic status. /// /// Logic. public void ChangedILogicStatus(ZigBee.Device.Logic logic) { } /// /// Changeds the IS cene status. /// /// Scene. public void ChangedISceneStatus(Scene scene) { } #endregion } }