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 |  558 ++++++++++++------------------------------------------
 1 files changed, 129 insertions(+), 429 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
index 6b5ed4f..c9ef969 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -17,12 +17,24 @@
         public UserDoorLockPage(Room room, CommonDevice doorLock)
         {
             //寰愭鐨勯棬閿佺晫闈㈡墦寮�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
-            ControlCommonResourse.IsDoorLockPageOpen = true;
+            //ControlCommonResourse.IsDoorLockPageOpen = true; 
             this.doorLock = doorLock as ZigBee.Device.DoorLock;
             currentRoom = room;
             deviceUI = doorLock;
             BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor;
             ZbGateway.StatusList.Add(this);
+            Application.RunOnMainThread(() =>
+            {
+                UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, status) =>
+                {
+                    var key = doorLock.DeviceAddr;
+                    if (DoorlockKey == key)
+                    {
+                        DoorLockCommonInfo.NormallyOpenModeValue(this.doorLock, status);
+                        UpdateNomallyOpenStatus();
+                    }
+                };
+            });
         }
 
         #region  鍙橀噺鐢虫槑
@@ -39,9 +51,10 @@
         /// </summary>
         DateTime waitGetDoorLockPower = DateTime.MaxValue;
         /// <summary>
-        /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
+        /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
         /// </summary>
-        private bool HaveLogicNormallyOpenMode = false;
+        private bool haveLogicNormallyOpenMode = false;
+
         /// <summary>
         /// 褰撳墠鐢甸噺
         /// </summary>
@@ -77,7 +90,7 @@
         /// <summary>
         /// 涓儴甯冨眬涓棬閿佸悕绉版樉绀�
         /// </summary>
-        Button btnDoorLockTitle;
+        NormalViewControl btnDoorLockTitle;
         /// <summary>
         /// 鍒嗕韩
         /// </summary>
@@ -181,11 +194,11 @@
         bool IsClick = true;
         #endregion
 
-        /// <summary>
-        /// UI鏄剧ず 
+        /// <summary>
+        /// UI鏄剧ず 
         /// </summary>
         public void Show()
-        {
+        {
             this.TopFrameLayout(this, "");
             this.MidFrameLayout(this);
 
@@ -218,7 +231,7 @@
 
             ClickHandle();
 
-            if (doorLock.IsOnline == 1)
+            if (HdlDeviceCommonLogic.Current.CheckDeviceIsOnline(doorLock) == true)
             {
                 ReadDoorLockUserInfo();
             }
@@ -246,18 +259,15 @@
             };
             this.midFrameLayout.AddChidren(midTopFrameLayout);
 
-            //闂ㄩ攣鏍囬
-            btnDoorLockTitle = new Button()
-            {
-                Width = Application.GetRealWidth(250),
-                Height = Application.GetRealHeight(60),
-                X = Application.GetRealWidth(372),
-                Y = Application.GetRealHeight(46),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
-                TextSize = 15,
-                TextAlignment = TextAlignment.Center,
-                IsBold = true,
-            };
+            //璁惧鍚嶇О
+            btnDoorLockTitle = new NormalViewControl(100, 60, true);
+            btnDoorLockTitle.Y = Application.GetRealHeight(46);
+            btnDoorLockTitle.TextSize = 15;
+            btnDoorLockTitle.IsBold = true;
+            btnDoorLockTitle.Text = HdlDeviceCommonLogic.Current.GetDeviceMacName(doorLock);
+            btnDoorLockTitle.Width = btnDoorLockTitle.GetRealWidthByText();
+            btnDoorLockTitle.TextAlignment = TextAlignment.Center;
+            btnDoorLockTitle.Gravity = Gravity.CenterHorizontal;
             midTopFrameLayout.AddChidren(btnDoorLockTitle);
 
             //璁板綍
@@ -295,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),
@@ -322,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
 
             //闂ㄩ攣寮�/鍏冲浘鐗�
@@ -601,19 +611,22 @@
                     if (tempDoor.doorLockOperatingEventNotificationCommand != null)
                     {
                         //闈炰富浜轰笉寮硅繖涓獥鍙�
-                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                        {
-                            return;
+                        if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
+                        {
+                            return;
                         }
-                        string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                        if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
-                        {
-                            if (doorLock.IsDoorLockNormallyMode[key] == true)
-                            {
-                                if (canOpenNormallyMode)
+                        if (doorLock.IsDoorLockNormallyMode)
+                        {
+                            if (canOpenNormallyMode)
+                            {
+                                Application.RunOnMainThread(() =>
                                 {
-                                    Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); });
-                                }
+                                    Action<bool> action = (obj) =>
+                                    {
+                                        UpdateNomallyOpenStatus();
+                                    };
+                                    DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action);
+                                });
                             }
                         }
                     }
@@ -662,7 +675,7 @@
                     canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock);
                     if (canOpenNormallyMode)
                     {
-                        //鑾峰彇闂ㄩ攣甯稿紑妯″紡
+                        //1銆佽幏鍙栭棬閿佸父寮�妯″紡
                         var resultRes = await DoorLockCommonInfo.GetNormallyOpenMode(doorLock);
                         if (resultRes == null)
                         {
@@ -686,16 +699,17 @@
                                 tempRes = false;
                             }
                             DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
+
                             Application.RunOnMainThread(async () =>
                             {
-                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2);
-                                if (resTemp == 1)
+                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2, doorLock);
+                                if (resTemp == 0)
                                 {
-                                    HaveLogicNormallyOpenMode = true;
+                                    haveLogicNormallyOpenMode = false;
                                 }
-                                else if (resTemp == 0)
+                                else
                                 {
-                                    HaveLogicNormallyOpenMode = false;
+                                    haveLogicNormallyOpenMode = true;
                                 }
                             });
                         }
@@ -712,13 +726,13 @@
                     canVolume = DoorLockCommonInfo.CanVolume(doorLock);
                     if (canVolume)
                     {
-                        //璇诲彇闊抽噺 
+                        //2銆佽鍙栭煶閲� 
                         var resultRes = await doorLock.GetVolumeAsync();
                         if (resultRes == null || resultRes.volumeResponseData == null)
                         {
                             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(() =>
@@ -746,7 +760,7 @@
                         });
                     }
 
-                    //璇诲彇闂ㄩ攣鐢甸噺锛氱皣ID锛�1 灞炴�D 33
+                    //3銆佽鍙栭棬閿佺數閲忥細绨嘔D锛�1 灞炴�D 33
                     doorLock.ReadAttri(Cluster_ID.Power, AttriButeId.DoorLockPower);
                     //涓婃姤鐢甸噺绛�1绉�
                     System.Threading.Thread.Sleep(1000);
@@ -775,7 +789,7 @@
         public void ClickHandle()
         {
             //闂ㄩ攣鏍囬
-            btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
+            btnDoorLockTitle.Text = HdlDeviceCommonLogic.Current.GetDeviceMacName(doorLock);
 
             //杩斿洖
             EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
@@ -788,14 +802,11 @@
             //璁剧疆
             EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) =>
             {
-                //鎵撳紑鍏朵粬鐣岄潰鏃跺墠绉婚櫎銆愭殏鏃朵笉绉婚櫎銆�
-                //RemoveFromParent();
-
                 var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(currentRoom, doorLock);
                 Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
                 Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                 functionSetting.Show();
-
+                //DoorLockCommonInfo.canShowDialog = false;
                 functionSetting.devicNameAction += (deviceRename) =>
                 {
                     if (!string.IsNullOrEmpty(deviceRename))
@@ -826,6 +837,7 @@
                 //鍘嗗彶璁板綍 ----   stan
                 var form = new DeviceDoorLock.DoorLockHistoryLogForm();
                 form.AddForm(this.doorLock.DeviceAddr);
+                //DoorLockCommonInfo.canShowDialog = false;
             };
             btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
             btnRecord.MouseDownEventHandler += handerRecord;
@@ -849,26 +861,24 @@
             //寮�閿佷簨浠�
             EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
             {
-
-                string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
+                if (doorLock.IsDoorLockNormallyMode)
                 {
-                    if (doorLock.IsDoorLockNormallyMode[key] == true)
+                    if (canOpenNormallyMode)
                     {
-                        if (canOpenNormallyMode)
-                        {
-                            NomallyOpenModeInvalidDialog(false);
-                        }
-                        else
+                        Application.RunOnMainThread(() =>
                         {
-                            OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
-                        }
+                            Action<bool> action = (obj) =>
+                            {
+                                UpdateNomallyOpenStatus();
+                            };
+                            DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
+                        });
                     }
                     else
                     {
                         OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
                     }
-                }
+                }
                 else
                 {
                     OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
@@ -886,13 +896,16 @@
             {
                 if (canOpenNormallyMode)
                 {
-                    var key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                    if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
+                    if (doorLock.IsDoorLockNormallyMode)
                     {
-                        if (doorLock.IsDoorLockNormallyMode[key] == true)
+                        Application.RunOnMainThread(() =>
                         {
-                            NomallyOpenModeInvalidDialog();
-                        }
+                            Action<bool> action = (obj) =>
+                            {
+                                UpdateNomallyOpenStatus();
+                            };
+                            DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
+                        });
                     }
                 }
                 else
@@ -1041,368 +1054,60 @@
         /// </summary>
         private async void NomallyOpenDialog()
         {
-            #region 鍚庣画鐗堟湰
-            //if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-            //{
-            //    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
-            //    return;
-            //}
-
-            //if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
-            //{
-            //    SystemSecondAuthentication();
-            //    return;
-            //}
-
-            //action = () =>
-            //{
-            //    //绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
-            //    var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(currentRoom, doorLock);
-            //    Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
-            //    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-            //    functionSetting.Show();
-            //    functionSetting.aaaAction = () =>
-            //   {
-            //       UpdateNomallyOpenStatus();
-            //   };
-            //};
-            //HdlCheckLogic.Current.CheckSecondarySecurity(action);
-            #endregion 
-
-            #region 鏆傛椂鐗堟湰 (鏈�缁堝幓鎺夛級
-            if (!btnNormallyOpen.IsSelected)
-            {
-                if (UserCenterResourse.UserInfo.AuthorityNo != 1)
-                {
-                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
-                    return;
-                }
-
-                if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
-                {
-                    SystemSecondAuthentication();
-                    return;
-                }
-
-                action = () =>
-                {
-                    //绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤闂俯灞呭煄鐨勭晫闈€�愬父寮�鑷姩鍖栥��
-                    //Action nomallyOpenModeStartAction = () =>
-                    //{
-                    //    UpdateNomallyOpenStatus();
-                    //};
-
-                    string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n");
-                    var confirm = Language.StringByID(R.MyInternationalizationString.Confrim);
-                    var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm);
-                    alert.Show();
-
-                    alert.ConfirmClickEvent += async () =>
-                    {
-                        Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
-                        var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
-                        if (result == null || result.defaultControlResponseData == null)
-                        {
-                            string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
-                            this.ShowTipMsg(msg0);
-                            return;
-                        }
-                        if (result.defaultControlResponseData.status != 0)
-                        {
-                            string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed);
-                            this.ShowTipMsg(msg1);
-                            return;
-                        }
-                        else
-                        {
-                            //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
-                            HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9001, string.Empty);
-
-                            //姣忔閲嶆柊璁剧疆甯稿紑锛岄粯璁ゆ椂闂撮兘鏄�12灏忔椂
-                            DoorLockCommonInfo.NormallyOpenModeInvalidTime = 12;
-                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
-                            Application.RunOnMainThread(() =>
-                            {
-                                UpdateNomallyOpenStatus();
-                                CommonPage.Loading.Hide();
-                            });
-
-                            //甯稿紑妯″紡寮�鍚彁绀�
-                            AlreadyOpenNormallyMode();
-                        }
-                    };
-
-                };
-                HdlCheckLogic.Current.CheckSecondarySecurity(action);
-            }
-            else
-            {
-                NomallyOpenModeInvalidDialog();
-            }
-
-            #endregion
-        }
-
-        /// <summary>
-        /// 甯稿紑妯″紡澶辨晥澶勭悊
-        /// </summary>
-        public void NomallyOpenModeInvalidDialog(bool IsFromReport = false)
-        {
-            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+            if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 1)
             {
                 this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
                 return;
             }
-            string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n");
-            var confirm = Language.StringByID(R.MyInternationalizationString.SureCancel);
-            var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.NomallyOpenMode, msg, confirm);
-            if (HaveLogicNormallyOpenMode)
+
+            if (!HdlUserCenterResourse.AccountOption.DoorUnLockByRemote)
             {
-                //鏈夐�昏緫璁剧疆鐨勫脊绐�
-                alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm);
+                SystemSecondAuthentication();
+                return;
             }
-            alert.Show();
 
-            alert.MsgControlClickEvent += async () =>
+            action = () =>
             {
-                if (IsFromReport)
+                //WJC鐨勪唬鐮侊細绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
+                if (doorLock == null)
                 {
-                    //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷 
-                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                    Application.RunOnMainThread(() =>
-                    {
-                        UpdateNomallyOpenStatus();
-                    });
-                    //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫
-                    if (HaveLogicNormallyOpenMode)
-                    {
-                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
-                        //if (resTemp == 3)
-                        //{
-                        //    string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed);
-                        //    this.ShowTipMsg(msg0);
-                        //}
-                    }
+                    ///闃叉鎶涘紓甯�
+                    return;
                 }
-                else
+                ///澶囨敞锛歐JC鐨�
+                Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
+                ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
+                Common.Logic.LogicDviceList.Clear();
+                if (Common.Logic.LogicDviceList.Count == 0)
                 {
-                    //app榛樿鈥滃父寮�妯″紡鈥濊繕鏄紑鍚� 
-                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
-                    Application.RunOnMainThread(() =>
-                    {
-                        UpdateNomallyOpenStatus();
-                    });
+                    Common.Logic.LogicDviceList.AddRange(HdlDeviceCommonLogic.Current.listAllDevice.ToArray());
                 }
-            };
-
-            alert.CancelClickEvent += async () =>
-            {
-                if (IsFromReport)
-                {
-                    //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑�
-                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
-                    //鍏堝垹闄ゅ凡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫
-                    if (HaveLogicNormallyOpenMode)
-                    {
-                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
-                        //if (resTemp == 3)
-                        //{
-                        //    string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed2);
-                        //    this.ShowTipMsg(msg0);
-                        //    return;
-                        //}
-                    }
-                    //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥�
-                    var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
-                    if (result == null || result.defaultControlResponseData == null)
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
-                            this.ShowTipMsg(msg0);
-                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                            UpdateNomallyOpenStatus();
-                        });
-                        return;
-                    }
-                    if (result.defaultControlResponseData.status != 0)
-                    {
-                        string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed);
-                        this.ShowTipMsg(msg1);
-                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                        Application.RunOnMainThread(() =>
-                        {
-                            UpdateNomallyOpenStatus();
-                        });
-                        return;
-                    }
-                    else
-                    {
-                        //淇濇寔鈥滃父寮�鎴愬姛鈥� 
-                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
-                        Application.RunOnMainThread(() =>
-                        {
-                            UpdateNomallyOpenStatus();
-                        });
-
-                        //鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
-                        var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
-                        //if (!resu)
-                        //{
-                        //    string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
-                        //    this.ShowTipMsg(msg0);
-                        //}
-
-                        CommonPage.Loading.Hide();
-                    }
-                }
-                else
-                {
-                    //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥� 
-                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
-                    Application.RunOnMainThread(() =>
-                    {
-                        UpdateNomallyOpenStatus();
-                    });
-                }
-            };
-
-            alert.ConfirmClickEvent += async () =>
-            {
-                if (IsFromReport)
-                {
-                    //涓婃姤闂ㄩ攣鈥滃父寮�妯″紡鈥濆凡缁忓彇娑堬紝鐜板湪app纭鈥滃父寮�妯″紡鈥濆彇娑� 
-                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                    Application.RunOnMainThread(() =>
-                    {
-                        UpdateNomallyOpenStatus();
-                    });
-
-                    //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫
-                    if (HaveLogicNormallyOpenMode)
-                    {
-                        var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
-                        //if (resTemp == 3)
-                        //{
-                        //    string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed);
-                        //    this.ShowTipMsg(msg0);
-                        //}
-                    }
-                }
-                else
-                {
-                    //app鎿嶄綔鍙栨秷鈥滃父寮�妯″紡鈥�
-                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
-                    var result = await doorLock.SetNormallyOpenModeFuncAsync(false);
-                    if (result == null || result.defaultControlResponseData == null)
-                    {
-                        string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
-                        this.ShowTipMsg(msg0);
-                        return;
-                    }
-                    if (result.defaultControlResponseData.status != 0)
-                    {
-                        string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed);
-                        this.ShowTipMsg(msg1);
-                        return;
-                    }
-                    else
-                    {
-                        //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
-                        HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9002, string.Empty);
-
-                        //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� 
-                        DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
-                        Application.RunOnMainThread(() =>
-                        {
-                            UpdateNomallyOpenStatus();
-                        });
-                        //鍒犻櫎璁剧疆甯稿紑妯″紡鍒涘缓鐨勯�昏緫
-                        if (HaveLogicNormallyOpenMode)
-                        {
-                            var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
-                            //鍥犱负鐩墠鏈哄埗闂锛岄�昏緫缁忓父澶辫触锛屾墍浠ヤ笉鎻愮ず锛屽悗鏈熸満鍒惰鏀癸紝閲嶆柊鍋氫竴涓繖涓晫闈�
-                            //if (resTemp == 3)
-                            //{
-                            //    string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed);
-                            //    this.ShowTipMsg(msg0);
-                            //}
-                            //else if (resTemp == 2)
-                            //{
-                            //    string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
-                            //    this.ShowTipMsg(msg2);
-                            //}
-                        }
-                        string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
-                        this.ShowTipMsg(msg2);
-                    }
-                }
-            };
-        }
-
-        /// <summary>
-        /// 宸茬粡寮�鍚父寮�妯″紡鎻愮ず
-        /// </summary>
-        public void AlreadyOpenNormallyMode()
-        {
-            //甯稿紑妯″紡寮�鍚彁绀�
-            string msgNomallyModeIsTurnOn = Language.StringByID(R.MyInternationalizationString.NomallyModeIsTurnOn);
-            var doorLockInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockInValidSetting);
-            var alertNomallyModeIsTurnOn = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.DoorLockLogic, msgNomallyModeIsTurnOn, doorLockInValidSetting);
-            alertNomallyModeIsTurnOn.Show();
-            alertNomallyModeIsTurnOn.MsgControlClickEvent += async () =>
-            {
-                //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
-                var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
-                //if (!res)
-                //{
-                //string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
-                // this.ShowTipMsg(msg0);
-                //return;
-                //}
-            };
-            //鐐瑰嚮鑷姩鍖�
-            alertNomallyModeIsTurnOn.LogicClickEvent += () =>
-            {
-                //閫昏緫璋冪敤鍓嶈寰楃Щ闄�
-                ZbGateway.StatusList.Remove(this);
-                //璋冪敤閫昏緫鐣岄潰
-                Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2, doorLock);
-            };
-            alertNomallyModeIsTurnOn.InvalidClickEvent += async () =>
-            {
-                NomallyOpenModeInvalidTimeDialog();
-            };
-        }
-
-        /// <summary>
-        /// 甯稿紑妯″紡澶辨晥鏃堕棿澶勭悊
-        /// </summary>
-        private void NomallyOpenModeInvalidTimeDialog()
-        {
-            //澶辨晥璁剧疆 
-            string msgTimeInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime);
-            var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim);
-            var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim);
-            alertTimeInValidSetting.Show();
-
-            alertTimeInValidSetting.InvalidTimeAction += async (obj) =>
-             {
-                 //甯稿紑妯″紡澶辨晥鏃堕棿璁剧疆鎴愬姛
-                 var temp = int.Parse(obj);
-                 DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
-                 //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
-                 var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
-                 if (!res)
+                var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
+                UserView.HomePage.Instance.AddChidren(addLogicPage);
+                UserView.HomePage.Instance.PageIndex += 1;
+                addLogicPage.Show();
+                addLogicPage.action += async (w) =>
                  {
-                     //榛樿鍒涘缓甯稿紑妯″紡澶辫触
-                     string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
-                     var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim));
-                     alert.Show();
-                     //浜屾鍔犺浇寮圭獥 甯稿紑妯″紡寮�鍚彁绀�
-                     NomallyOpenModeInvalidTimeDialog();
-                 }
-             };
+                     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>
@@ -1415,12 +1120,7 @@
                 btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0);
                 return;
             }
-            string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-            if (!doorLock.IsDoorLockNormallyMode.ContainsKey(key))
-            {
-                return;
-            }
-            if (doorLock.IsDoorLockNormallyMode[key] == true)
+            if (doorLock.IsDoorLockNormallyMode)
             {
                 btnNormallyOpen.IsSelected = true;
                 btnDoorLockPic.IsSelected = true;
@@ -1428,7 +1128,7 @@
                 btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
 
             }
-            else if (doorLock.IsDoorLockNormallyMode[key] == false)
+            else if (!doorLock.IsDoorLockNormallyMode)
             {
                 btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose);
                 btnDoorLockPic.IsSelected = false;
@@ -1449,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)
@@ -1492,8 +1192,8 @@
                 {
                     if (!string.IsNullOrEmpty(deviceRename))
                     {
-                        btnDoorLockTitle.Text = deviceRename;
-                        //鏀规埧闂�
+                        btnDoorLockTitle.Text = deviceRename;
+                        //鏀规埧闂�
                         HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
                         deviceUI.ReSave();
                     }
@@ -1510,13 +1210,13 @@
         /// </summary>
         public override void RemoveFromParent()
         {
-            //寰愭鐨勯棬閿佺晫闈㈠叧闂�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
-            ControlCommonResourse.IsDoorLockPageOpen = false;
+            UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction = null;
             if (IsDrawerLockMode)
             {
                 CommonPage.Instance.IsDrawerLockMode = false;
             }
             ZbGateway.StatusList.Remove(this);
+            DoorLockCommonInfo.LogicAction = null;
             base.RemoveFromParent();
         }
         #endregion

--
Gitblit v1.8.0