From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期二, 21 七月 2020 09:46:53 +0800 Subject: [PATCH] 请合并最新多功能面板代码 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 294 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs new file mode 100755 index 0000000..123a88f --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs @@ -0,0 +1,294 @@ +锘縰sing System; +using Newtonsoft.Json.Linq; +using Shared.Common; +using ZigBee.Device; + +namespace Shared.Phone.UserCenter.DoorLock +{ + public class AddUnLockMethodTip : DoorLockCommonLayout + { + /// 鏋勯�犲嚱鏁� + /// </summary> + /// <param name="doorLock"></param> + public AddUnLockMethodTip(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> + Action<string, string> action; + + #endregion + + /// <summary> + /// UI鏄剧ず + /// </summary> + public void Show() + { + string currentTitle = ""; + if (currentType == "password") + { + currentTitle = Language.StringByID(R.MyInternationalizationString.AddPassword); + } + else if (currentType == "fingerprint") + { + currentTitle = Language.StringByID(R.MyInternationalizationString.AddFingerprint); + } + else if (currentType == "proximity") + { + currentTitle = Language.StringByID(R.MyInternationalizationString.AddIcCard); + } + this.TopFrameLayout(this, currentTitle); + + EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => + { + this.RemoveFromParent(); + }; + this.btnBack.MouseUpEventHandler += eHandlerBack; + this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; + this.MidFrameLayout(this); + + MidFrameLayoutContent(); + } + + /// <summary> + /// 閲嶅啓绉婚櫎鏂规硶 + /// </summary> + public override void RemoveFromParent() + { + if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null) + { + doorLock.Gateway.GwResDataAction -= action; + } + base.RemoveFromParent(); + } + + /// <summary> + /// 涓儴甯冨眬 + /// </summary> + public void MidFrameLayoutContent() + { + var topMidFrameLayout = new FrameLayout + { + X = Application.GetRealWidth(104), + Y = Application.GetRealHeight(112), + Height = Application.GetRealHeight(873), + Width = Application.GetRealWidth(876), + }; + this.midFrameLayout.AddChidren(topMidFrameLayout); + + var btnPicTip1 = new Button + { + X = Application.GetRealWidth(446), + Y = Application.GetRealHeight(330), + Height = Application.GetRealHeight(76 / 2), + Width = Application.GetRealWidth(407), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray2, + TextSize = 10, + TextAlignment = TextAlignment.CenterLeft, + }; + topMidFrameLayout.AddChidren(btnPicTip1); + + var btnPicTip2 = new Button + { + X = Application.GetRealWidth(446), + Y = btnPicTip1.Bottom, + Height = Application.GetRealHeight(76 / 2), + Width = Application.GetRealWidth(207), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray2, + TextSize = 10, + TextAlignment = TextAlignment.CenterLeft, + }; + topMidFrameLayout.AddChidren(btnPicTip2); + + var btnPicTip3 = new Button + { + X = Application.GetRealWidth(294), + Y = Application.GetRealHeight(1089), + Height = Application.GetRealHeight(100 / 2), + Width = Application.GetRealWidth(488), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray2, + Gravity = Gravity.CenterHorizontal, + TextSize = 14, + }; + this.midFrameLayout.AddChidren(btnPicTip3); + + var btnPicTip4 = new Button + { + X = Application.GetRealWidth(397), + Y = btnPicTip3.Y + Application.GetRealHeight(50), + Width = Application.GetRealWidth(288), + Height = Application.GetRealHeight(100 / 2), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray2, + Gravity = Gravity.CenterHorizontal, + TextSize = 14, + }; + this.midFrameLayout.AddChidren(btnPicTip4); + + var btnPicTip5 = new Button + { + X = Application.GetRealWidth(202), + Y = Application.GetRealHeight(1388), + Height = Application.GetRealHeight(49), + Width = Application.GetRealWidth(685), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + Gravity = Gravity.CenterHorizontal, + TextSize = 12, + }; + this.midFrameLayout.AddChidren(btnPicTip5); + + var nextBtn = new Button + { + X = Application.GetRealWidth(86), + Y = Application.GetRealHeight(1472), + Height = Application.GetRealHeight(127), + Width = Application.GetRealWidth(907), + Text = Language.StringByID(R.MyInternationalizationString.NextStepXm), + TextColor = Shared.Common.ZigbeeColor.Current.XMWhite, + Gravity = Gravity.CenterHorizontal, + Radius = (uint)Application.GetRealHeight(127 / 2), + TextSize = 16, + IsBold = true, + Enable = false, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect, + }; + this.midFrameLayout.AddChidren(nextBtn); + + if (currentType == "password") + { + topMidFrameLayout.BackgroundImagePath = "DoorLock/AddPasswordTicPic.png"; + btnPicTip1.Width = Application.GetRealWidth(307); + btnPicTip1.X = Application.GetRealWidth(500); + btnPicTip1.Y = Application.GetRealHeight(350); + btnPicTip2.X = Application.GetRealWidth(543); + btnPicTip2.Y = btnPicTip1.Bottom + Application.GetRealHeight(10); + btnPicTip2.Width = Application.GetRealWidth(207); + btnPicTip1.Text = Language.StringByID(R.MyInternationalizationString.EntryPasswordTip1); + btnPicTip2.Text = Language.StringByID(R.MyInternationalizationString.EntryPassword); + btnPicTip3.Text = Language.StringByID(R.MyInternationalizationString.EntryPasswordTip2); + btnPicTip4.Text = btnPicTip2.Text; + btnPicTip5.Text = Language.StringByID(R.MyInternationalizationString.EntryTip); + } + else if (currentType == "fingerprint") + { + topMidFrameLayout.BackgroundImagePath = "DoorLock/AddFingerprintTipPic.png"; + btnPicTip1.Text = Language.StringByID(R.MyInternationalizationString.EntryFingerprintTip1); + btnPicTip2.Text = Language.StringByID(R.MyInternationalizationString.EntryFingerprint); + btnPicTip3.Text = Language.StringByID(R.MyInternationalizationString.EntryFingerprintTip2); + btnPicTip4.Text = btnPicTip2.Text; + btnPicTip1.X = Application.GetRealWidth(486); + btnPicTip1.Y = Application.GetRealHeight(320); + btnPicTip2.X = Application.GetRealWidth(543); + btnPicTip2.Width = Application.GetRealWidth(207); + btnPicTip1.X = Application.GetRealWidth(450); + btnPicTip5.Text = Language.StringByID(R.MyInternationalizationString.EntryTip); + } + else if (currentType == "proximity") + { + topMidFrameLayout.BackgroundImagePath = "DoorLock/AddIcCardTipPic.png"; + btnPicTip3.Width = Application.GetRealWidth(495); + btnPicTip1.X = Application.GetRealWidth(440); + btnPicTip1.Y = Application.GetRealHeight(313); + btnPicTip2.X = Application.GetRealWidth(538); + btnPicTip2.Width = Application.GetRealWidth(207); + btnPicTip1.Text = Language.StringByID(R.MyInternationalizationString.EntryProximityTip1); + btnPicTip2.Text = Language.StringByID(R.MyInternationalizationString.EntryProximityCard); + btnPicTip3.Text = Language.StringByID(R.MyInternationalizationString.EntryProximityTip2); + btnPicTip4.Text = btnPicTip2.Text; + btnPicTip5.Text = Language.StringByID(R.MyInternationalizationString.EntryTip); + } + + action = (topic, data) => + { + var gatewayID = topic.Split('/')[0]; + var jObjectdata = JObject.Parse(data); + if (jObjectdata == null) + { + return; + } + if (topic == $"{gatewayID}/DoorLock/DoorLockOperatingEventNotificationCommand") + { + var OperatingEventNotificationDatad = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.DoorLock.DoorLockOperatingEventNotificationCommand>(jObjectdata["Data"].ToString()); + if (OperatingEventNotificationDatad != null) + { + doorLock.doorLockOperatingEventNotificationCommand = OperatingEventNotificationDatad; + } + } + if (topic == $"{gatewayID}/DoorLock/DoorLockProgrammingEventNotificationCommand") + { + var ProgrammingEventNotificationData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.DoorLock.DoorLockProgrammingEventNotificationCommand>(jObjectdata["Data"].ToString()); + if (ProgrammingEventNotificationData != null) + { + int curMethod = -1; + if (currentType == "password") + { + curMethod = 0; + } + else if (currentType == "fingerprint") + { + curMethod = 15; + } + else if (currentType == "proximity") + { + curMethod = 3; + } + else + { + return; + } + if (ProgrammingEventNotificationData.ProgramEventSoure == curMethod) + { + doorLock.doorLockProgrammingEventNotificationCommand = ProgrammingEventNotificationData; + var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; + localDoorLockObj.UserID = ProgrammingEventNotificationData.UserID; + localDoorLockObj.UnlockType = ProgrammingEventNotificationData.ProgramEventSoure; + localDoorLockObj.EntryTime = System.DateTime.Now; + //鍏堟殏鏃跺姞鍏ワ紝绛変簯绔坊鍔犲拰鑾峰彇鐪熸鎴愬姛鍚庢墠鐪熺殑鍔犲叆 + if (!doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj.UserID)) + { + doorLock.localDoorLockUserList.Add(ProgrammingEventNotificationData.UserID, localDoorLockObj); + } + Application.RunOnMainThread(() => + { + nextBtn.Enable = true; + nextBtn.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + }); + } + } + } + }; + + if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null) + { + doorLock.Gateway.GwResDataAction += action; + } + + nextBtn.MouseDownEventHandler += (sende, e) => + { + this.RemoveFromParent(); + var entryStatusPage = new Shared.Phone.UserCenter.DoorLock.EntryStatusPage(doorLock, curAccountObj, currentType); + Shared.Phone.UserView.HomePage.Instance.AddChidren(entryStatusPage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + entryStatusPage.Show(); + }; + } + } +} -- Gitblit v1.8.0