From 23532fa8ad34c89b6d24b01eaef6475fd0aad898 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 15 四月 2020 18:08:24 +0800
Subject: [PATCH] ???????

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs |  325 +++++++++++++++++++++++++++++++++++------------------
 1 files changed, 212 insertions(+), 113 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
index d29988a..f76ff99 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>
@@ -197,8 +207,8 @@
             btnFuncSet = new Button
             {
                 X = Application.GetRealWidth(103),
-                Height = Application.GetRealHeight(69),
-                Width = Application.GetRealWidth(69),
+                Height = Application.GetMinReal(69),
+                Width = Application.GetMinReal(69),
                 UnSelectedImagePath = "DoorLock/SettingIcon.png",
             };
             btnFuncSetFrameLayout.AddChidren(btnFuncSet);
@@ -259,8 +269,8 @@
             midTopFrameLayout.AddChidren(btnRecordFrameLayout);
             btnRecord = new Button()
             {
-                Width = Application.GetRealWidth(69),
-                Height = Application.GetRealHeight(69),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
                 X = Application.GetRealWidth(46),
                 Y = Application.GetRealHeight(46),
                 UnSelectedImagePath = "DoorLock/RecordIcon.png",
@@ -277,8 +287,8 @@
             midTopFrameLayout.AddChidren(btnCollectFrameLayout);
             btnCollect = new Button()
             {
-                Width = Application.GetRealWidth(69),
-                Height = Application.GetRealHeight(69),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
                 X = Application.GetRealWidth(15),
                 Y = Application.GetRealHeight(46),
                 UnSelectedImagePath = "Item/Collection.png",
@@ -319,8 +329,8 @@
             //闂ㄩ攣寮�/鍏冲浘鐗�
             btnDoorLockPic = new Button()
             {
-                Width = Application.GetRealWidth(383),
-                Height = Application.GetRealHeight(343),
+                Width = Application.GetMinReal(383),
+                Height = Application.GetMinReal(343),
                 X = Application.GetRealWidth(161),
                 Y = Application.GetRealHeight(415),
                 UnSelectedImagePath = "DoorLock/DoorLockPicClose.png",
@@ -368,8 +378,8 @@
 
             progressButton = new Button()
             {
-                Width = Application.GetRealWidth(84),//639-35
-                Height = Application.GetRealHeight(93),
+                Width = Application.GetMinReal(84),//639-35
+                Height = Application.GetMinReal(93),
                 X = Application.GetRealWidth(58),
                 Y = Application.GetRealHeight(347),
                 UnSelectedImagePath = "DoorLock/UnLockButton.png",
@@ -378,8 +388,8 @@
 
             btnDoorOpenPic = new Button()
             {
-                Width = Application.GetRealWidth(81),
-                Height = Application.GetRealHeight(81),
+                Width = Application.GetMinReal(81),
+                Height = Application.GetMinReal(81),
                 X = Application.GetRealWidth(164),
                 Y = Application.GetRealHeight(6),
                 UnSelectedImagePath = "DoorLock/DoorLockOpen.png",
@@ -388,8 +398,8 @@
 
             btnDoorClosePic = new Button()
             {
-                Width = Application.GetRealWidth(81),
-                Height = Application.GetRealHeight(81),
+                Width = Application.GetMinReal(81),
+                Height = Application.GetMinReal(81),
                 X = Application.GetRealWidth(164),
                 Y = Application.GetRealHeight(117),
                 UnSelectedImagePath = "DoorLock/DoorLockClose.png",
@@ -400,8 +410,8 @@
             //鐢甸噺
             btnPower = new Button()
             {
-                Width = Application.GetRealWidth(81),
-                Height = Application.GetRealHeight(81),
+                Width = Application.GetMinReal(81),
+                Height = Application.GetMinReal(81),
                 X = Application.GetRealWidth(253),
                 Y = Application.GetRealHeight(994),
                 UnSelectedImagePath = "DoorLock/PowerOffline.png",
@@ -419,8 +429,8 @@
             midTopFrameLayout.AddChidren(btnVolumeFrameLayout);
             btnVolume = new Button()
             {
-                Width = Application.GetRealWidth(81),
-                Height = Application.GetRealHeight(81),
+                Width = Application.GetMinReal(81),
+                Height = Application.GetMinReal(81),
                 X = Application.GetRealWidth(40),
                 Y = Application.GetRealHeight(40),
                 UnSelectedImagePath = "DoorLock/VolumeIcon.png",
@@ -439,8 +449,8 @@
             midTopFrameLayout.AddChidren(btnNormallyOpenFrameLayout);
             btnNormallyOpen = new Button()
             {
-                Width = Application.GetRealWidth(81),
-                Height = Application.GetRealHeight(81),
+                Width = Application.GetMinReal(81),
+                Height = Application.GetMinReal(81),
                 X = Application.GetRealWidth(40),
                 Y = Application.GetRealHeight(40),
                 UnSelectedImagePath = "DoorLock/NormallyOpen.png",
@@ -472,8 +482,8 @@
             #region 褰撳墠鎴块棿
             var btnCurrentRoomPic = new Button()
             {
-                Width = Application.GetRealWidth(81),
-                Height = Application.GetRealHeight(81),
+                Width = Application.GetMinReal(81),
+                Height = Application.GetMinReal(81),
                 X = Application.GetRealWidth(58),
                 Y = Application.GetRealHeight(29),
                 UnSelectedImagePath = "DoorLock/RoomPic.png",
@@ -526,14 +536,14 @@
             };
             flMain.AddChidren(progressBackground);
 
-            var progressValue = (currentVolume * (Convert.ToInt32(((float)100 / 15) * 100))) / 100;
+            //var progressValue = (currentVolume * (Convert.ToInt32(((float)100 / 15) * 100))) / 100;
             progressText = new Button()
             {
                 Height = Application.GetRealHeight(58),
                 Y = Application.GetRealHeight(89),
                 TextColor = ZigbeeColor.Current.XMGray2,
                 TextAlignment = TextAlignment.Center,
-                Text = progressValue.ToString() + "%",
+                Text = currentVolume.ToString() + "%",
             };
 
             diyImageVerticalSeekBar = new DiyImageVerticalSeekBar()
@@ -549,27 +559,14 @@
                 ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                 ProgressTextSize = 12,//鏄剧ず鐧惧垎姣斿瓧浣撳ぇ灏� 
                 SeekBarViewHeight = Application.GetRealHeight(17),//杩涘害鏉$殑瀹藉害
-                Progress = progressValue,
+                Progress = currentVolume,
             };
             progressBackground.AddChidren(progressText);
             progressBackground.AddChidren(diyImageVerticalSeekBar);
             diyImageVerticalSeekBar.OnProgressChangedEvent += (sender, e) =>
             {
                 int curVolume = -1;
-                if (e == 0)
-                {
-                    curVolume = 0;
-                }
-                else if (e == 100)
-                {
-                    curVolume = 14;
-                }
-                else
-                {
-                    int comandValue = e;
-                    int comandValueTemp = (comandValue * 100) / (Convert.ToInt32(((float)100 / 15) * 100));
-                    curVolume = comandValueTemp;
-                }
+                curVolume = e;
                 currentVolume = curVolume;
                 progressText.Text = e.ToString() + "%";
             };
@@ -590,22 +587,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 +627,6 @@
                                 Application.RunOnMainThread(() =>
                                 {
                                     currentPower = dataReport.AttriButeData;
-                                    waitGetDoorLockPower = DateTime.MaxValue;
                                     UpdatePower();
                                 });
                             }
@@ -678,7 +679,15 @@
                             }
 
                             NormallyOpenModeValue(tempRes);
-
+                            var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist();
+                            if (resTemp == 1)
+                            {
+                                HaveLogicNormallyOpenMode = true;
+                            }
+                            else if (resTemp == 0)
+                            {
+                                HaveLogicNormallyOpenMode = false;
+                            }
                             Application.RunOnMainThread(() =>
                             {
                                 UpdateNomallyOpenStatus();
@@ -772,10 +781,13 @@
             //璁剧疆
             EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) =>
             {
-                var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
+                //鎵撳紑鍏朵粬鐣岄潰鏃跺墠绉婚櫎
+                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();
+
                 functionSetting.devicNameAction += (deviceRename) =>
                 {
                     if (!string.IsNullOrEmpty(deviceRename))
@@ -816,15 +828,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 +841,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;
@@ -883,7 +908,6 @@
             EventHandler<MouseEventArgs> handerNormallyOpen = (sender, e) =>
             {
                 NomallyOpenDialog();
-
             };
             btnNormallyOpenFrameLayout.MouseUpEventHandler += handerNormallyOpen;
             btnNormallyOpen.MouseUpEventHandler += handerNormallyOpen;
@@ -905,15 +929,15 @@
             {
                 btnPower.UnSelectedImagePath = "DoorLock/Power40.png";
             }
-            else if (currentPower <= 60 && currentPower > 40 || currentPower == 60)
+            else if (currentPower <= 60 && currentPower > 40)
             {
                 btnPower.UnSelectedImagePath = "DoorLock/Power60.png";
             }
-            else if (currentPower <= 80 && currentPower >= 60)
+            else if (currentPower <= 80 && currentPower > 60)
             {
                 btnPower.UnSelectedImagePath = "DoorLock/Power80.png";
             }
-            else if (currentPower <= 100 && currentPower >= 80)
+            else if (currentPower <= 100 && currentPower > 80)
             {
                 btnPower.UnSelectedImagePath = "DoorLock/Power100.png";
             }
@@ -1025,7 +1049,7 @@
             {
                 if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                 {
-                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
+                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
                     return;
                 }
 
@@ -1060,6 +1084,9 @@
                         }
                         else
                         {
+                            //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
+                            HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9001, string.Empty);
+
                             //姣忔閲嶆柊璁剧疆甯稿紑锛岄粯璁ゆ椂闂撮兘鏄�12灏忔椂
                             DoorLockCommonInfo.NormallyOpenModeInvalidTime = 12;
                             NormallyOpenModeValue(true);
@@ -1071,12 +1098,25 @@
                             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 += () =>
                             {
-                                //鑷姩鍖�
-                                Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2);
-
+                                //閫昏緫璋冪敤鍓嶈寰楃Щ闄�
+                                ZbGateway.StatusList.Remove(this);
+                                //璋冪敤閫昏緫鐣岄潰
+                                Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2, doorLock);
                             };
                             alertNomallyModeIsTurnOn.InvalidClickEvent += async () =>
                             {
@@ -1100,7 +1140,7 @@
         {
             if (UserCenterResourse.UserInfo.AuthorityNo != 1)
             {
-                //this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
+                this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
                 return;
             }
             string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n");
@@ -1112,27 +1152,44 @@
                 alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm);
             }
             alert.Show();
+
             alert.MsgControlClickEvent += async () =>
             {
                 if (IsFromReport)
                 {
-                    //鍙栨秷甯稿紑
+                    //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷
                     NormallyOpenModeValue(false);
                     UpdateNomallyOpenStatus();
+                    //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫 
+                    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榛樿鈥滃父寮�妯″紡鈥濊繕鏄紑鍚�
                     NormallyOpenModeValue(true);
                     UpdateNomallyOpenStatus();
                 }
             };
             alert.CancelClickEvent += async () =>
             {
-                //淇濇寔甯稿紑
                 if (IsFromReport)
                 {
+                    //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑�
                     Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+                    //鍏堝垹闄ゅ凡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫 
+                    var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3);
+                    if (resTemp == 3)
+                    {
+                        string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed);
+                        this.ShowTipMsg(msg0);
+                        return;
+                    }
+                    //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥�
                     var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
                     if (result == null || result.defaultControlResponseData == null)
                     {
@@ -1152,27 +1209,47 @@
                     }
                     else
                     {
+                        //淇濇寔鈥滃父寮�鎴愬姛鈥�
                         NormallyOpenModeValue(true);
                         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);
+                            return;
+                        }
+
                         CommonPage.Loading.Hide();
                     }
                 }
                 else
                 {
+                    //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥�
                     NormallyOpenModeValue(true);
                     UpdateNomallyOpenStatus();
                 }
             };
             alert.ConfirmClickEvent += async () =>
             {
-                //纭鍙栨秷甯稿紑
                 if (IsFromReport)
                 {
-                    NormallyOpenModeValue(true);
+                    //涓婃姤闂ㄩ攣鈥滃父寮�妯″紡鈥濆凡缁忓彇娑堬紝鐜板湪app纭鈥滃父寮�妯″紡鈥濆彇娑�
+                    NormallyOpenModeValue(false);
                     UpdateNomallyOpenStatus();
+
+                    //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫 
+                    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)
@@ -1188,19 +1265,32 @@
                         return;
                     }
                     else
-                    {
+                    {
+                        //娣诲姞App寮�鍚父寮�妯″紡鐨勫巻鍙茶褰�
+                        HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9002, string.Empty);
+
+                        //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔�
                         NormallyOpenModeValue(false);
                         UpdateNomallyOpenStatus();
-                        string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
-                        this.ShowTipMsg(msg2);
-                        Shared.Phone.Device.Logic.SkipView.LockCloseLogic(doorLock);
-                        //
+
+                        //鍒犻櫎璁剧疆甯稿紑妯″紡鍒涘缓鐨勯�昏緫 
+                        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);
+                        }
                     }
                 }
             };
         }
 
-        ///// <summary>
+        /// <summary>
         /// 甯稿紑妯″紡澶辨晥鏃堕棿澶勭悊
         /// </summary>
         private void NomallyOpenModeInvalidTimeDialog()
@@ -1211,26 +1301,33 @@
             var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim);
             alertTimeInValidSetting.Show();
 
-            alertTimeInValidSetting.InvalidTimeAction += (obj) =>
-            {
-                Regex rg = new Regex("^[0-9]+$");
-                if (!rg.IsMatch(obj))
-                {
-                    //蹇呴』鏄暟瀛�
-                    string msg0 = Language.StringByID(R.MyInternationalizationString.NormallyOpenModeInvalidTimeTip);
-                    this.ShowTipMsg(msg0);
+            alertTimeInValidSetting.InvalidTimeAction += async (obj) =>
+             {
+                 Regex rg = new Regex("^[0-9]+$");
+                 if (!rg.IsMatch(obj))
+                 {
+                     //蹇呴』鏄暟瀛�
+                     string msg0 = Language.StringByID(R.MyInternationalizationString.NormallyOpenModeInvalidTimeTip);
+                     this.ShowTipMsg(msg0);
 
-                    string msgTimeInValidSetting2 = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime);
-                    var timeConfrim2 = Language.StringByID(R.MyInternationalizationString.Confrim);
-                    var alertTimeInValidSetting2 = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting2, timeConfrim2);
-                    alertTimeInValidSetting2.Show();
-                    return;
-                }
-                var temp = int.Parse(obj);
-                DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
-                Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime,doorLock);
-                //璋冪敤鑷姩鍖栨帴鍙h缃け鏁堟椂闂�
-            };
+                     string msgTimeInValidSetting2 = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime);
+                     var timeConfrim2 = Language.StringByID(R.MyInternationalizationString.Confrim);
+                     var alertTimeInValidSetting2 = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting2, timeConfrim2);
+                     alertTimeInValidSetting2.Show();
+                     return;
+                 }
+                 //甯稿紑妯″紡澶辨晥鏃堕棿璁剧疆鎴愬姛
+                 var temp = int.Parse(obj);
+                 DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
+                 //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
+                 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;
+                 }
+             };
         }
         /// <summary>
         /// 甯稿紑妯″紡鐘舵�佹洿鏂�
@@ -1274,13 +1371,13 @@
             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);
+                        RemoteUnlockRequest(currentRoom, deviceUI, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
                         devicNameSecAction += (deviceRename) =>
                         {
                             if (!string.IsNullOrEmpty(deviceRename))
@@ -1310,7 +1407,7 @@
             }
             else
             {
-                RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
+                RemoteUnlockRequest(currentRoom, deviceUI, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
                 devicNameSecAction += (deviceRename) =>
                 {
                     if (!string.IsNullOrEmpty(deviceRename))
@@ -1333,6 +1430,8 @@
         /// </summary>
         public override void RemoveFromParent()
         {
+            //寰愭鐨勯棬閿佺晫闈㈠叧闂�(缃戝叧鍏ㄥ眬鎺ユ敹鏃朵娇鐢�)
+            ControlCommonResourse.IsDoorLockPageOpen = false;
             if (IsDrawerLockMode)
             {
                 CommonPage.Instance.IsDrawerLockMode = false;

--
Gitblit v1.8.0