黄学彪
2020-04-08 4dce704aaf8587cf3f91cf88f2208315a03c4cbb
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -14,12 +14,14 @@
        /// </summary>
        /// <param name="room"></param>
        /// <param name="doorLock"></param>
        public UserDoorLockPage(Shared.Common.Room room, CommonDevice doorLock)
        public UserDoorLockPage(Room room, CommonDevice doorLock)
        {
            //徐梅的门锁界面打开(网关全局接收时使用)
            ControlCommonResourse.IsDoorLockPageOpen = true;
            this.doorLock = doorLock as ZigBee.Device.DoorLock;
            currentRoom = room;
            deviceUI = doorLock;
            BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor;
            ZbGateway.StatusList.Add(this);
        }
@@ -168,6 +170,14 @@
        ///  当前音量
        /// </summary>
        int currentVolume = -1;
        /// <summary>
        /// waitClickTime
        /// </summary>
        DateTime waitClickTime = DateTime.MaxValue;
        /// <summary>
        /// IsClick
        /// </summary>
        bool IsClick = true;
        #endregion
        /// <summary>
@@ -590,22 +600,27 @@
            if (typeTag == "DoorLockProgrammingEventNotificationCommand" && tempDevice != null)
            {
                var tempDoor = (ZigBee.Device.DoorLock)tempDevice;
                if (tempDoor.doorLockOperatingEventNotificationCommand != null)
                if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
                                     && tempDevice.DeviceAddr == doorLock.DeviceAddr)
                {
                    //非主人不弹这个窗口
                    if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                    {
                        return;
                    }
                    //非管理员的密码,不弹这个窗口
                    if (tempDoor.doorLockOperatingEventNotificationCommand.UserID > 9)
                    {
                        return;
                    }
                    if (canOpenNormallyMode)
                    if (tempDoor.doorLockOperatingEventNotificationCommand != null)
                    {
                        Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); });
                        //非主人不弹这个窗口
                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                        {
                            return;
                        }
                        string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                        if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
                        {
                            if (doorLock.IsDoorLockNormallyMode[key] == true)
                            {
                                if (canOpenNormallyMode)
                                {
                                    Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); });
                                }
                            }
                        }
                    }
                }
            }
@@ -625,7 +640,6 @@
                                Application.RunOnMainThread(() =>
                                {
                                    currentPower = dataReport.AttriButeData;
                                    waitGetDoorLockPower = DateTime.MaxValue;
                                    UpdatePower();
                                });
                            }
@@ -678,7 +692,7 @@
                            }
                            NormallyOpenModeValue(tempRes);
                            HaveLogicNormallyOpenMode = await Shared.Phone.Device.Logic.SkipView.Exist();
                            Application.RunOnMainThread(() =>
                            {
                                UpdateNomallyOpenStatus();
@@ -816,15 +830,11 @@
                btnCollect.IsSelected = !btnCollect.IsSelected;
                if (btnCollect.IsSelected)
                {
                    HdlRoomLogic.Current.AddLoveDevice(deviceUI);//收藏
                    //Test
                    HaveLogicNormallyOpenMode = true;
                    HdlRoomLogic.Current.AddLoveDevice(deviceUI);//收藏
                }
                else
                {
                    HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//取消收藏
                    //Test
                    HaveLogicNormallyOpenMode = false;
                    HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//取消收藏
                }
            };
            btnCollectFrameLayout.MouseDownEventHandler += handerCollect;
@@ -833,13 +843,30 @@
            //开锁事件
            EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
            {
                //常开模式下,点击开锁无效
                if (btnNormallyOpen.IsSelected == true)
                {
                    this.ShowMassage(ShowMsgType.Remind, "当前状态为常开模式");
                    return;
                string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
                {
                    if (doorLock.IsDoorLockNormallyMode[key] == true)
                    {
                        if (canOpenNormallyMode)
                        {
                            NomallyOpenModeInvalidDialog(false);
                        }
                        else
                        {
                            OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
                        }
                    }
                    else
                    {
                        OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
                    }
                }
                OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
                else
                {
                    OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
                }
            };
            openFrameLayout.MouseUpEventHandler += hander1;
            btnDoorOpenPic.MouseUpEventHandler += hander1;
@@ -1072,11 +1099,12 @@
                            var alertNomallyModeIsTurnOn = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.DoorLockLogic, msgNomallyModeIsTurnOn, doorLockInValidSetting);
                            alertNomallyModeIsTurnOn.Show();
                            //点击自动化
                            alertNomallyModeIsTurnOn.LogicClickEvent += () =>
                            {
                                //自动化
                                Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2);
                                //逻辑调用前记得移除
                                ZbGateway.StatusList.Remove(this);
                                Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2, doorLock);
                            };
                            alertNomallyModeIsTurnOn.InvalidClickEvent += async () =>
                            {
@@ -1100,7 +1128,6 @@
        {
            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
            {
                //this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
                return;
            }
            string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n");
@@ -1168,7 +1195,7 @@
                //确认取消常开
                if (IsFromReport)
                {
                    NormallyOpenModeValue(true);
                    NormallyOpenModeValue(false);
                    UpdateNomallyOpenStatus();
                }
                else
@@ -1194,7 +1221,6 @@
                        string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
                        this.ShowTipMsg(msg2);
                        Shared.Phone.Device.Logic.SkipView.LockCloseLogic(doorLock);
                        //
                    }
                }
            };
@@ -1228,8 +1254,7 @@
                }
                var temp = int.Parse(obj);
                DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
                Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime,doorLock);
                //调用自动化接口设置失效时间
                Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
            };
        }
        /// <summary>
@@ -1274,10 +1299,10 @@
            btnDoorOpenPic.Enable = false;
            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
            {
                var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
                var result = await DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
                if (result == false)
                {
                    var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
                    var result1 = await DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
                    if (result1 == true)
                    {
                        RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
@@ -1333,6 +1358,8 @@
        /// </summary>
        public override void RemoveFromParent()
        {
            //徐梅的门锁界面关闭(网关全局接收时使用)
            ControlCommonResourse.IsDoorLockPageOpen = false;
            if (IsDrawerLockMode)
            {
                CommonPage.Instance.IsDrawerLockMode = false;