From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 17 十二月 2020 09:07:13 +0800
Subject: [PATCH] 新云端Ver1.3

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs |  185 ++++++++++++++++++++--------------------------
 1 files changed, 80 insertions(+), 105 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
index 0562afe..c9ef969 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -25,14 +25,9 @@
             ZbGateway.StatusList.Add(this);
             Application.RunOnMainThread(() =>
             {
-                ControlCommonResourse.UpdateDoorLockStatusAction = (obj) =>
-                {
-                    UpdateNomallyOpenStatus();
-                };
-
                 UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, status) =>
                 {
-                    var key = doorLock.DeviceAddr + doorLock.DeviceEpoint;
+                    var key = doorLock.DeviceAddr;
                     if (DoorlockKey == key)
                     {
                         DoorLockCommonInfo.NormallyOpenModeValue(this.doorLock, status);
@@ -56,9 +51,9 @@
         /// </summary>
         DateTime waitGetDoorLockPower = DateTime.MaxValue;
         /// <summary>
-        /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
+        /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
         /// </summary>
-        private bool haveLogicNormallyOpenMode = false;
+        private bool haveLogicNormallyOpenMode = false;
 
         /// <summary>
         /// 褰撳墠鐢甸噺
@@ -199,11 +194,11 @@
         bool IsClick = true;
         #endregion
 
-        /// <summary>
-        /// UI鏄剧ず 
+        /// <summary>
+        /// UI鏄剧ず 
         /// </summary>
         public void Show()
-        {
+        {
             this.TopFrameLayout(this, "");
             this.MidFrameLayout(this);
 
@@ -236,7 +231,7 @@
 
             ClickHandle();
 
-            if (Common.LocalDevice.Current.CheckDeviceIsOnline(doorLock) == true)
+            if (HdlDeviceCommonLogic.Current.CheckDeviceIsOnline(doorLock) == true)
             {
                 ReadDoorLockUserInfo();
             }
@@ -269,7 +264,7 @@
             btnDoorLockTitle.Y = Application.GetRealHeight(46);
             btnDoorLockTitle.TextSize = 15;
             btnDoorLockTitle.IsBold = true;
-            btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
+            btnDoorLockTitle.Text = HdlDeviceCommonLogic.Current.GetDeviceMacName(doorLock);
             btnDoorLockTitle.Width = btnDoorLockTitle.GetRealWidthByText();
             btnDoorLockTitle.TextAlignment = TextAlignment.Center;
             btnDoorLockTitle.Gravity = Gravity.CenterHorizontal;
@@ -310,9 +305,9 @@
                 UnSelectedImagePath = "Item/Collection.png",
                 SelectedImagePath = "Item/CollectionSelected.png"
             };
-            btnCollectFrameLayout.AddChidren(btnCollect);
-
-            //褰撳墠鐘舵��
+            btnCollectFrameLayout.AddChidren(btnCollect);
+
+            //褰撳墠鐘舵��
             btnStatus = new Button()
             {
                 Width = Application.GetRealWidth(132 + 351),
@@ -337,9 +332,9 @@
                 TextSize = 10,
                 TextAlignment = TextAlignment.CenterLeft,
             };
-            midTopFrameLayout.AddChidren(btnCurrentPowerText);
-#if Android
-            btnCurrentPowerText.X = btnStatus.Right + Application.GetRealWidth(20);
+            midTopFrameLayout.AddChidren(btnCurrentPowerText);
+#if Android
+            btnCurrentPowerText.X = btnStatus.Right + Application.GetRealWidth(20);
 #endif
 
             //闂ㄩ攣寮�/鍏冲浘鐗�
@@ -616,12 +611,12 @@
                     if (tempDoor.doorLockOperatingEventNotificationCommand != null)
                     {
                         //闈炰富浜轰笉寮硅繖涓獥鍙�
-                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                        {
-                            return;
+                        if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
+                        {
+                            return;
                         }
-                        if (doorLock.IsDoorLockNormallyMode)
-                        {
+                        if (doorLock.IsDoorLockNormallyMode)
+                        {
                             if (canOpenNormallyMode)
                             {
                                 Application.RunOnMainThread(() =>
@@ -637,35 +632,6 @@
                     }
                 }
             }
-
-            //缃戝叧鎵ц閫昏緫锛屽父寮�妯″紡澶辨晥涓婃姤
-            //if (typeTag == "DoorLockAlarmsSendAlarmInform" && tempDevice != null)
-            //{
-            //    var doorL = (ZigBee.Device.DoorLock)tempDevice;
-
-            //    if (doorL.DeviceAddr + doorL.DeviceEpoint == doorLock.DeviceAddr + doorLock.DeviceEpoint)
-            //    {
-            //        //闈炰富浜轰笉寮硅繖涓獥鍙�
-            //        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-            //        {
-            //            return;
-            //        }
-            //        if (doorLock.IsDoorLockNormallyMode)
-            //        {
-            //            if (canOpenNormallyMode)
-            //            {
-            //                Application.RunOnMainThread(() =>
-            //                {
-            //                    Action<bool> action = (obj) =>
-            //                    {
-            //                        UpdateNomallyOpenStatus();
-            //                    };
-            //                    DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action);
-            //                });
-            //            }
-            //        }
-            //    }
-            //}
 
             if (typeTag == "DeviceStatusReport" && tempDevice != null)
             {
@@ -734,18 +700,18 @@
                             }
                             DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
 
-                            //Application.RunOnMainThread(async () =>
-                            //{
-                            //var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3, doorLock);
-                            //if (resTemp == 1)
-                            //{
-                            //    haveLogicNormallyOpenMode = true;
-                            //}
-                            //else if (resTemp == 0)
-                            //{
-                            //    haveLogicNormallyOpenMode = false;
-                            //}
-                            //});
+                            Application.RunOnMainThread(async () =>
+                            {
+                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2, doorLock);
+                                if (resTemp == 0)
+                                {
+                                    haveLogicNormallyOpenMode = false;
+                                }
+                                else
+                                {
+                                    haveLogicNormallyOpenMode = true;
+                                }
+                            });
                         }
                     }
                     else
@@ -766,7 +732,7 @@
                         {
                             var listDevice = new List<CommonDevice> { };
                             listDevice.Add(doorLock);
-                            var devTemp = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
+                            var devTemp = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(listDevice);
                             if (devTemp.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
                             {
                                 Application.RunOnMainThread(() =>
@@ -823,7 +789,7 @@
         public void ClickHandle()
         {
             //闂ㄩ攣鏍囬
-            btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
+            btnDoorLockTitle.Text = HdlDeviceCommonLogic.Current.GetDeviceMacName(doorLock);
 
             //杩斿洖
             EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
@@ -897,8 +863,8 @@
             {
                 if (doorLock.IsDoorLockNormallyMode)
                 {
-                    if (canOpenNormallyMode)
-                    {
+                    if (canOpenNormallyMode)
+                    {
                         Application.RunOnMainThread(() =>
                         {
                             Action<bool> action = (obj) =>
@@ -912,7 +878,7 @@
                     {
                         OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
                     }
-                }
+                }
                 else
                 {
                     OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
@@ -1088,13 +1054,13 @@
         /// </summary>
         private async void NomallyOpenDialog()
         {
-            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+            if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
             {
                 this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
                 return;
             }
 
-            if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
+            if (!HdlUserCenterResourse.AccountOption.DoorUnLockByRemote)
             {
                 SystemSecondAuthentication();
                 return;
@@ -1102,37 +1068,49 @@
 
             action = () =>
             {
-                //绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
-                if (doorLock == null)
-                {
+                //WJC鐨勪唬鐮侊細绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
+                if (doorLock == null)
+                {
                     ///闃叉鎶涘紓甯�
-                    return;
-                }
-                ///澶囨敞锛歐JC鐨�
-                Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
-                ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
-                Common.Logic.LogicDviceList.Clear();
-                if (Common.Logic.LogicDviceList.Count == 0)
-                {
-                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
-                }
-                var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
-                UserView.HomePage.Instance.AddChidren(addLogicPage);
-                UserView.HomePage.Instance.PageIndex += 1;
-                addLogicPage.Show();
-                addLogicPage.action += (w) =>
-                {
-                    doorLock.IsDoorLockNormallyMode = w;
-                    UpdateNomallyOpenStatus();
-                    //杩斿洖鎸夐敭娓呯┖褰撳墠閫昏緫瀹氫箟鐨凩ogicAction
-                    UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null;
-                };
+                    return;
+                }
+                ///澶囨敞锛歐JC鐨�
+                Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
+                ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
+                Common.Logic.LogicDviceList.Clear();
+                if (Common.Logic.LogicDviceList.Count == 0)
+                {
+                    Common.Logic.LogicDviceList.AddRange(HdlDeviceCommonLogic.Current.listAllDevice.ToArray());
+                }
+                var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
+                UserView.HomePage.Instance.AddChidren(addLogicPage);
+                UserView.HomePage.Instance.PageIndex += 1;
+                addLogicPage.Show();
+                addLogicPage.action += async (w) =>
+                 {
+                     DoorLockCommonInfo.NormallyOpenModeValue(doorLock, w);
+                     UpdateNomallyOpenStatus();
+                     //杩斿洖鎸夐敭娓呯┖褰撳墠閫昏緫瀹氫箟鐨凩ogicAction
+                     UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null;
+                     //鏄惁瀛樺湪甯稿紑妯″紡
+                     var resTemp = Shared.Common.Logic.SoneLogicList;
+                     if (resTemp.Count == 0)
+                     {
+                         haveLogicNormallyOpenMode = false;
+                     }
+                     else
+                     {
+                         haveLogicNormallyOpenMode = true;
+                     }
+
+                     UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction -= addLogicPage.updateCurrentDoorlockActionTemp;
+                 };
             };
             HdlCheckLogic.Current.CheckSecondarySecurity(action);
 
-        }
-
-        /// <summary>
+        }
+
+        /// <summary>
         /// 甯稿紑妯″紡鐘舵�佹洿鏂�
         /// </summary>
         private void UpdateNomallyOpenStatus()
@@ -1171,7 +1149,7 @@
         {
             openFrameLayout.Enable = false;
             btnDoorOpenPic.Enable = false;
-            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+            if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
             {
                 var result = await DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
                 if (result == false)
@@ -1214,8 +1192,8 @@
                 {
                     if (!string.IsNullOrEmpty(deviceRename))
                     {
-                        btnDoorLockTitle.Text = deviceRename;
-                        //鏀规埧闂�
+                        btnDoorLockTitle.Text = deviceRename;
+                        //鏀规埧闂�
                         HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
                         deviceUI.ReSave();
                     }
@@ -1232,9 +1210,6 @@
         /// </summary>
         public override void RemoveFromParent()
         {
-            //寰愭鐨勯棬閿佺晫闈㈠叧闂�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
-            //ControlCommonResourse.IsDoorLockPageOpen = false;
-            ControlCommonResourse.UpdateDoorLockStatusAction = null;
             UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction = null;
             if (IsDrawerLockMode)
             {

--
Gitblit v1.8.0