From 4dce704aaf8587cf3f91cf88f2208315a03c4cbb Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 08 四月 2020 13:54:58 +0800
Subject: [PATCH] 先上传一个版本

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs |  107 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 67 insertions(+), 40 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
index d29988a..50ddc77 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
+++ b/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);
-                //璋冪敤鑷姩鍖栨帴鍙h缃け鏁堟椂闂�
+                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;

--
Gitblit v1.8.0