From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码
---
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs | 812 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 812 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
new file mode 100644
index 0000000..dfa00d7
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
@@ -0,0 +1,812 @@
+锘縰sing 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, Shared.Phone.UserCenter.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>
+ Shared.Phone.UserCenter.MemberInfoRes curAccountObj;
+ /// <summary>
+ /// 鏁版嵁涓虹┖锛孶I鏄剧ず鐨勭┖鍥剧墖
+ /// </summary>
+ Button entryStatusPic;
+ /// <summary>
+ /// 鏁版嵁涓虹┖锛孶I鏄剧ず鐨勬枃鏈彁绀�
+ /// </summary>
+ Button btnPicTip;
+ /// <summary>
+ /// 鏁版嵁涓虹┖锛孶I鏄剧ず鐨勬枃鏈彁绀�
+ /// </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 (UserCenterResourse.UserInfo.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 (UserCenterResourse.UserInfo.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 寮�閿佹柟寮廢I
+ 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>
+ /// 绌烘暟鎹甎I鏄剧ず
+ /// </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 (UserCenterResourse.UserInfo.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 = "";
+ if (string.IsNullOrEmpty(curAccountObj.UserName))
+ {
+ memberText = curAccountObj.Account;
+ }
+ else
+ {
+ memberText = curAccountObj.UserName;
+ }
+ //鎴愬憳涓�琛�
+ 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 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();
+ 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 (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);
+ 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 (UserCenterResourse.UserInfo.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.StateCode == "Success")
+ {
+ 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.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();
+ }
+ }
+}
--
Gitblit v1.8.0