New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using Newtonsoft.Json; |
| | | using Shared.Common; |
| | | using Shared.Phone.UserCenter.Device; |
| | | using ZigBee.Device; |
| | | |
| | | namespace Shared.Phone.UserCenter.DoorLock |
| | | { |
| | | public class EntryStatusPage : DoorLockCommonLayout |
| | | { |
| | | /// <summary> |
| | | /// 构造函数 |
| | | /// </summary> |
| | | /// <param name="doorLock"></param> |
| | | /// <param name="accountObj"></param> |
| | | /// <param name="entryType"></param> |
| | | public EntryStatusPage(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj, string entryType) |
| | | { |
| | | this.doorLock = doorLock; |
| | | this.curAccountObj = accountObj; |
| | | this.currentType = entryType; |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor; |
| | | } |
| | | |
| | | #region 变量申明 |
| | | /// <summary> |
| | | /// 当前门锁 |
| | | /// </summary> |
| | | ZigBee.Device.DoorLock doorLock; |
| | | /// <summary> |
| | | /// 当前账户 |
| | | /// </summary> |
| | | Shared.Phone.UserCenter.MemberInfoRes curAccountObj; |
| | | /// <summary> |
| | | /// 当前类型 |
| | | /// </summary> |
| | | string currentType = string.Empty; |
| | | /// <summary> |
| | | /// 底部布局 |
| | | /// </summary> |
| | | FrameLayout bottomFrameLayout; |
| | | #endregion |
| | | |
| | | /// <summary>
|
| | | /// UI显示 |
| | | /// </summary> |
| | | public void Show() |
| | | { |
| | | this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.AddNewUnlockMethod)); |
| | | |
| | | EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => |
| | | { |
| | | RemoveFromParent(); |
| | | }; |
| | | this.btnBack.MouseUpEventHandler += eHandlerBack; |
| | | this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; |
| | | this.MidFrameLayout(this); |
| | | |
| | | MidFrameLayoutContent(); |
| | | } |
| | | /// <summary> |
| | | /// 中部布局 |
| | | /// </summary> |
| | | public void MidFrameLayoutContent() |
| | | { |
| | | var entryStatusPic = new Button |
| | | { |
| | | X = Application.GetRealWidth(297), |
| | | Y = Application.GetRealHeight(268), |
| | | Height = Application.GetRealHeight(363), |
| | | Width = Application.GetRealWidth(452), |
| | | UnSelectedImagePath = "DoorLock/EntrySuccessIcon.png", |
| | | }; |
| | | this.midFrameLayout.AddChidren(entryStatusPic); |
| | | |
| | | var btnPicTip = new Button |
| | | { |
| | | X = Application.GetRealWidth(372), |
| | | Y = Application.GetRealHeight(634), |
| | | Height = Application.GetRealHeight(81), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextSize = 20, |
| | | IsBold = true, |
| | | }; |
| | | this.midFrameLayout.AddChidren(btnPicTip); |
| | | |
| | | if (currentType == "password") |
| | | { |
| | | btnPicTip.Text = Language.StringByID(R.MyInternationalizationString.EntryPasswordSuccess); |
| | | } |
| | | else if (currentType == "fingerprint") |
| | | { |
| | | btnPicTip.Text = Language.StringByID(R.MyInternationalizationString.EntryFingerprintSuccess); |
| | | } |
| | | else |
| | | { |
| | | btnPicTip.Text = Language.StringByID(R.MyInternationalizationString.EntryProximitySuccess); |
| | | } |
| | | |
| | | BottomFrameLayoutContent(); |
| | | } |
| | | /// <summary> |
| | | /// 底部布局 |
| | | /// </summary> |
| | | public void BottomFrameLayoutContent() |
| | | { |
| | | bottomFrameLayout = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(737), |
| | | Y = Application.GetRealHeight(999), |
| | | BackgroundColor = ZigbeeColor.Current.XMWhite, |
| | | }; |
| | | this.midFrameLayout.AddChidren(bottomFrameLayout); |
| | | |
| | | var passwordRemarkFrameLayout = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(965), |
| | | Height = Application.GetRealHeight(127), |
| | | X = Application.GetRealWidth(58), |
| | | Y = Application.GetRealHeight(81), |
| | | }; |
| | | bottomFrameLayout.AddChidren(passwordRemarkFrameLayout); |
| | | |
| | | var btnPasswordRemark = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(222), |
| | | Height = Application.GetRealHeight(58), |
| | | Y = Application.GetRealHeight(35), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 14, |
| | | }; |
| | | passwordRemarkFrameLayout.AddChidren(btnPasswordRemark); |
| | | |
| | | var btnPasswordRemarkContent = new EditText() |
| | | { |
| | | Width = Application.GetRealWidth(965 - 222), |
| | | Height = Application.GetRealHeight(58), |
| | | X = Application.GetRealWidth(223), |
| | | Y = Application.GetRealHeight(35), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 14, |
| | | PlaceholderTextColor = ZigbeeColor.Current.XMGray3, |
| | | TextColor = ZigbeeColor.Current.XMBlack |
| | | }; |
| | | passwordRemarkFrameLayout.AddChidren(btnPasswordRemarkContent); |
| | | |
| | | var btnLine = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(965), |
| | | Height = 1, |
| | | X = Application.GetRealWidth(58), |
| | | Y = Application.GetRealHeight(81 + 127), |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, |
| | | }; |
| | | bottomFrameLayout.AddChidren(btnLine); |
| | | |
| | | var personRemarkRemarkFrameLayout = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(965), |
| | | Height = Application.GetRealHeight(127), |
| | | X = Application.GetRealWidth(58), |
| | | Y = btnLine.Bottom + Application.GetRealHeight(2), |
| | | }; |
| | | bottomFrameLayout.AddChidren(personRemarkRemarkFrameLayout); |
| | | |
| | | var btnMatchPersonRemark = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(222), |
| | | Height = Application.GetRealHeight(58), |
| | | Y = Application.GetRealHeight(35), |
| | | Text = Language.StringByID(R.MyInternationalizationString.MatchPerson) + ":", |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 14, |
| | | }; |
| | | personRemarkRemarkFrameLayout.AddChidren(btnMatchPersonRemark); |
| | | |
| | | var btnMatchPersonContent = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(965 - 222), |
| | | Height = Application.GetRealHeight(58), |
| | | X = Application.GetRealWidth(223), |
| | | Y = Application.GetRealHeight(35), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 14, |
| | | }; |
| | | personRemarkRemarkFrameLayout.AddChidren(btnMatchPersonContent); |
| | | |
| | | var btnLine1 = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(965), |
| | | Height = 1, |
| | | X = Application.GetRealWidth(58), |
| | | Y = Application.GetRealHeight(81 + 127 + 12 + 127), |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, |
| | | }; |
| | | bottomFrameLayout.AddChidren(btnLine1); |
| | | |
| | | var completeBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(86), |
| | | Y = Application.GetRealHeight(472), |
| | | Height = Application.GetRealHeight(127), |
| | | Width = Application.GetRealWidth(907), |
| | | Text = Language.StringByID(R.MyInternationalizationString.DoorLockComplete), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMWhite, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack, |
| | | Radius = (uint)Application.GetRealHeight(127 / 2), |
| | | TextSize = 16, |
| | | IsBold = true, |
| | | }; |
| | | bottomFrameLayout.AddChidren(completeBtn); |
| | | |
| | | if (currentType == "password") |
| | | { |
| | | btnPasswordRemark.Text = Language.StringByID(R.MyInternationalizationString.PasswordRemark); |
| | | btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.Password) + "ID" + doorLock.doorLockProgrammingEventNotificationCommand.UserID; |
| | | } |
| | | else if (currentType == "fingerprint") |
| | | { |
| | | btnPasswordRemark.Text = Language.StringByID(R.MyInternationalizationString.FingerprintRemark); |
| | | btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.Fingerprint) + "ID" + doorLock.doorLockProgrammingEventNotificationCommand.UserID; |
| | | } |
| | | else |
| | | { |
| | | btnPasswordRemark.Text = Language.StringByID(R.MyInternationalizationString.ProximityRemark); |
| | | btnPasswordRemarkContent.PlaceholderText = Language.StringByID(R.MyInternationalizationString.IcCard) + "ID" + doorLock.doorLockProgrammingEventNotificationCommand.UserID; |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(curAccountObj.UserName)) |
| | | { |
| | | btnMatchPersonContent.Text = curAccountObj.UserName; |
| | | } |
| | | else |
| | | { |
| | | btnMatchPersonContent.Text = curAccountObj.Account; |
| | | } |
| | | |
| | | completeBtn.MouseDownEventHandler += async (sender, e) => |
| | | { |
| | | completeBtn.Enable = false; |
| | | if (doorLock.doorLockProgrammingEventNotificationCommand == null) |
| | | { |
| | | return; |
| | | } |
| | | var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData(); |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); |
| | | addLockInfo.IsOtherAccountCtrl = true; |
| | | } |
| | | |
| | | addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark; |
| | | if (doorLock.DeviceAddr != null) |
| | | { |
| | | addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | } |
| | | addLockInfo.OpenLockMode = doorLock.doorLockProgrammingEventNotificationCommand.ProgramEventSoure; |
| | | addLockInfo.DoorLockLocalUserId = doorLock.doorLockProgrammingEventNotificationCommand.UserID.ToString(); |
| | | addLockInfo.EntryTime = System.DateTime.Now; |
| | | if (!string.IsNullOrEmpty(btnPasswordRemarkContent.Text)) |
| | | { |
| | | addLockInfo.UserIdRemarks = btnPasswordRemarkContent.Text; |
| | | } |
| | | else |
| | | { |
| | | addLockInfo.UserIdRemarks = btnPasswordRemarkContent.PlaceholderText; |
| | | } |
| | | try |
| | | { |
| | | Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); |
| | | var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo); |
| | | if (result != null) |
| | | { |
| | | if (result.StateCode == "Success") |
| | | { |
| | | if (doorLock.localDoorLockUserList.ContainsKey(doorLock.doorLockProgrammingEventNotificationCommand.UserID)) |
| | | { |
| | | //存门锁信息 |
| | | var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetCloudLocalDoorLocklist(doorLock, curAccountObj.SubAccountDistributedMark); |
| | | if (resultList != null) |
| | | { |
| | | if (resultList.ContainsKey(doorLock.doorLockProgrammingEventNotificationCommand.UserID) == true) |
| | | { |
| | | var a = resultList[doorLock.doorLockProgrammingEventNotificationCommand.UserID]; |
| | | if (a?.ConnectedAccount == curAccountObj.SubAccountDistributedMark) |
| | | { |
| | | completeBtn.Enable = true; |
| | | this.RemoveFromParent(); |
| | | for (int i = UserView.HomePage.Instance.ChildrenCount - 1; i >= 0; i--) |
| | | { |
| | | var form = UserView.HomePage.Instance.GetChildren(i); |
| | | |
| | | if (form is UnLockMethod) |
| | | { |
| | | doorLock.currentUserDisplayMethod = ""; |
| | | ((UnLockMethod)form).RefreshList(); |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | form.RemoveFromParent(); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | completeBtn.Enable = true; |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnPasswordRemarkContent); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | completeBtn.Enable = true; |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnPasswordRemarkContent); |
| | | } |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | completeBtn.Enable = true; |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AddFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnPasswordRemarkContent); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | completeBtn.Enable = true; |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnPasswordRemarkContent); |
| | | } |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | CommonPage.Loading.Hide(); |
| | | } |
| | | }; |
| | | } |
| | | } |
| | | } |