黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs
@@ -5,12 +5,12 @@
namespace Shared.Phone.UserCenter.DoorLock
{
    public class AddUnLockMethodTip : DoorLockCommonLayout, ZigBee.Common.IStatus
    public class AddUnLockMethodTip : DoorLockCommonLayout
    {
        /// 构造函数
        /// </summary>
        /// <param name="doorLock"></param>
        public AddUnLockMethodTip(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj, string entryType)
        public AddUnLockMethodTip(ZigBee.Device.DoorLock doorLock, MemberInfoRes accountObj, string entryType)
        {
            this.doorLock = doorLock;
            this.curAccountObj = accountObj;
@@ -18,11 +18,23 @@
            BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
        }
        #region ◆ 变量申明__________________________
        #region 变量申明
        /// <summary>
        /// 当前门锁
        /// </summary>
        ZigBee.Device.DoorLock doorLock;
        Shared.Phone.UserCenter.MemberInfoRes curAccountObj;
        /// <summary>
        /// 当前账户
        /// </summary>
        MemberInfoRes curAccountObj;
        /// <summary>
        /// 当前类型
        /// </summary>
        string currentType = string.Empty;
        Action<string, string> action;//接收通知
        /// <summary>
        /// 接收通知
        /// </summary>
        Action<string, string> action;
        #endregion
@@ -40,7 +52,7 @@
            {
                currentTitle = Language.StringByID(R.MyInternationalizationString.AddFingerprint);
            }
            else
            else if (currentType == "proximity")
            {
                currentTitle = Language.StringByID(R.MyInternationalizationString.AddIcCard);
            }
@@ -48,11 +60,6 @@
            EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
            {
                if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null)
                {
                    doorLock.Gateway.GwResDataAction -= action;
                }
                this.RemoveFromParent();
            };
            this.btnBack.MouseUpEventHandler += eHandlerBack;
@@ -62,6 +69,21 @@
            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
@@ -77,9 +99,9 @@
            {
                X = Application.GetRealWidth(446),
                Y = Application.GetRealHeight(330),
                Height = Application.GetRealHeight(81 / 2),
                Height = Application.GetRealHeight(76 / 2),
                Width = Application.GetRealWidth(407),
                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
                TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
                TextSize = 10,
                TextAlignment = TextAlignment.CenterLeft,
            };
@@ -89,9 +111,9 @@
            {
                X = Application.GetRealWidth(446),
                Y = btnPicTip1.Bottom,
                Height = Application.GetRealHeight(81 / 2),
                Height = Application.GetRealHeight(76 / 2),
                Width = Application.GetRealWidth(207),
                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
                TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
                TextSize = 10,
                TextAlignment = TextAlignment.CenterLeft,
            };
@@ -101,9 +123,9 @@
            {
                X = Application.GetRealWidth(294),
                Y = Application.GetRealHeight(1089),
                Height = Application.GetRealHeight(173 / 2),
                Height = Application.GetRealHeight(100 / 2),
                Width = Application.GetRealWidth(488),
                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
                TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
                Gravity = Gravity.CenterHorizontal,
                TextSize = 14,
            };
@@ -112,10 +134,10 @@
            var btnPicTip4 = new Button
            {
                X = Application.GetRealWidth(397),
                Y = btnPicTip3.Bottom,
                Y = btnPicTip3.Y + Application.GetRealHeight(50),
                Width = Application.GetRealWidth(288),
                Height = Application.GetRealHeight(173 / 2),
                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
                Height = Application.GetRealHeight(100 / 2),
                TextColor = Shared.Common.ZigbeeColor.Current.XMGray2,
                Gravity = Gravity.CenterHorizontal,
                TextSize = 14,
            };
@@ -127,7 +149,7 @@
                Y = Application.GetRealHeight(1388),
                Height = Application.GetRealHeight(49),
                Width = Application.GetRealWidth(685),
                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
                Gravity = Gravity.CenterHorizontal,
                TextSize = 12,
            };
@@ -142,8 +164,9 @@
                Text = Language.StringByID(R.MyInternationalizationString.NextStepXm),
                TextColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                Gravity = Gravity.CenterHorizontal,
                Radius = 10,
                TextSize = 20,
                Radius = (uint)Application.GetRealHeight(127 / 2),
                TextSize = 16,
                IsBold = true,
                Enable = false,
                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect,
            };
@@ -178,7 +201,7 @@
                btnPicTip1.X = Application.GetRealWidth(450);
                btnPicTip5.Text = Language.StringByID(R.MyInternationalizationString.EntryTip);
            }
            else
            else if (currentType == "proximity")
            {
                topMidFrameLayout.BackgroundImagePath = "DoorLock/AddIcCardTipPic.png";
                btnPicTip3.Width = Application.GetRealWidth(495);
@@ -214,21 +237,41 @@
                    var ProgrammingEventNotificationData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.DoorLock.DoorLockProgrammingEventNotificationCommand>(jObjectdata["Data"].ToString());
                    if (ProgrammingEventNotificationData != null)
                    {
                        doorLock.doorLockProgrammingEventNotificationCommand = ProgrammingEventNotificationData;
                        var localDoorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { };
                        localDoorLockObj.UserID = ProgrammingEventNotificationData.UserID;
                        localDoorLockObj.UnlockType = ProgrammingEventNotificationData.ProgramEventSoure;
                        //var entryTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocalTime(ProgrammingEventNotificationData.ZigbeeLocalTime);
                        localDoorLockObj.EntryTime = System.DateTime.Now; //entryTime;
                        if (!doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj.UserID))
                        int curMethod = -1;
                        if (currentType == "password")
                        {
                            doorLock.localDoorLockUserList.Add(ProgrammingEventNotificationData.UserID, localDoorLockObj);
                            curMethod = 0;
                        }
                        Application.RunOnMainThread(() =>
                        else if (currentType == "fingerprint")
                        {
                            nextBtn.Enable = true;
                            nextBtn.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                        });
                            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;
                            });
                        }
                    }
                }
            };
@@ -247,40 +290,5 @@
                entryStatusPage.Show();
            };
        }
        #region ◆ 接口实现__________________________
        /// <summary>
        /// 处理变化事件 --将弃用 改用DeviceInfoChange()
        /// </summary>
        /// <returns>The changed.</returns>
        /// <param name="common">Common.</param>
        public void Changed(CommonDevice common)
        {
        }
        /// <summary>
        /// 处理变化事件
        /// </summary>
        /// <param name="common"></param>
        /// <param name="typeTag"></param>
        public void DeviceInfoChange(CommonDevice common, string typeTag)
        {
        }
        /// <summary>
        /// Changeds the IL ogic status.
        /// </summary>
        /// <param name="logic">Logic.</param>
        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
        {
        }
        /// <summary>
        /// Changeds the IS cene status.
        /// </summary>
        /// <param name="scene">Scene.</param>
        public void ChangedISceneStatus(Scene scene)
        {
        }
        #endregion
    }
}