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