From f759dc1e6f49c53733eafda82207c85af18f9931 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期四, 28 五月 2020 15:46:54 +0800
Subject: [PATCH] 2020-05-28-1

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs |  218 +++++++++++++++++++++++++++---------------------------
 1 files changed, 108 insertions(+), 110 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
index 821bca3..09fe2ae 100644
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -41,7 +41,13 @@
         /// <summary>
         /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
         /// </summary>
-        private bool HaveLogicNormallyOpenMode = false;
+        private bool haveLogicNormallyOpenMode = false;
+
+        /// <summary>
+        /// 闂ㄩ攣娣卞害鎺у埗涓婃姤绐楀彛鏄惁寮瑰嚭
+        /// </summary>
+        public static bool canShowDialog = true;
+
         /// <summary>
         /// 褰撳墠鐢甸噺
         /// </summary>
@@ -77,7 +83,7 @@
         /// <summary>
         /// 涓儴甯冨眬涓棬閿佸悕绉版樉绀�
         /// </summary>
-        Button btnDoorLockTitle;
+        NormalViewControl btnDoorLockTitle;
         /// <summary>
         /// 鍒嗕韩
         /// </summary>
@@ -218,7 +224,7 @@
 
             ClickHandle();
 
-            if (doorLock.IsOnline == 1)
+            if (Common.LocalDevice.Current.CheckDeviceIsOnline(doorLock) == true)
             {
                 ReadDoorLockUserInfo();
             }
@@ -246,18 +252,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 = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
+            btnDoorLockTitle.Width = btnDoorLockTitle.GetRealWidthByText();
+            btnDoorLockTitle.TextAlignment = TextAlignment.Center;
+            btnDoorLockTitle.Gravity = Gravity.CenterHorizontal;
             midTopFrameLayout.AddChidren(btnDoorLockTitle);
 
             //璁板綍
@@ -605,15 +608,18 @@
                         {
                             return;
                         }
-                        string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                        if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
+                        if (doorLock.IsDoorLockNormallyMode)
                         {
-                            if (doorLock.IsDoorLockNormallyMode[key] == true)
-                            {
-                                if (canOpenNormallyMode)
+                            if (canOpenNormallyMode)
+                            {
+                                Application.RunOnMainThread(() =>
                                 {
-                                    Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); });
-                                }
+                                    Action<bool> action = (obj) =>
+                                    {
+                                        UpdateNomallyOpenStatus();
+                                    };
+                                    DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.ServicePush, haveLogicNormallyOpenMode, action);
+                                });
                             }
                         }
                     }
@@ -688,14 +694,14 @@
                             DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
                             Application.RunOnMainThread(async () =>
                             {
-                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(2);
+                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3,doorLock);
                                 if (resTemp == 1)
                                 {
-                                    HaveLogicNormallyOpenMode = true;
+                                    haveLogicNormallyOpenMode = true;
                                 }
                                 else if (resTemp == 0)
                                 {
-                                    HaveLogicNormallyOpenMode = false;
+                                    haveLogicNormallyOpenMode = false;
                                 }
                             });
                         }
@@ -788,14 +794,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();
-
+                canShowDialog = false;
                 functionSetting.devicNameAction += (deviceRename) =>
                 {
                     if (!string.IsNullOrEmpty(deviceRename))
@@ -826,6 +829,7 @@
                 //鍘嗗彶璁板綍 ----   stan
                 var form = new DeviceDoorLock.DoorLockHistoryLogForm();
                 form.AddForm(this.doorLock.DeviceAddr);
+                canShowDialog = false;
             };
             btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
             btnRecord.MouseDownEventHandler += handerRecord;
@@ -849,20 +853,19 @@
             //寮�閿佷簨浠�
             EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
             {
-
-                string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
-                if (doorLock.IsDoorLockNormallyMode.ContainsKey(key))
+                canShowDialog = true;
+                if (doorLock.IsDoorLockNormallyMode)
                 {
-                    if (doorLock.IsDoorLockNormallyMode[key] == true)
-                    {
-                        if (canOpenNormallyMode)
-                        {
-                            NomallyOpenModeInvalidDialog(false);
-                        }
-                        else
+                    if (canOpenNormallyMode)
+                    {
+                        Application.RunOnMainThread(() =>
                         {
-                            OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
-                        }
+                            Action<bool> action = (obj) =>
+                            {
+                                UpdateNomallyOpenStatus();
+                            };
+                            DoorLockCommonInfo.NomallyOpenModeInvalidDialog(doorLock, DoorLockCommonInfo.DoorLockMessType.AppOperate, haveLogicNormallyOpenMode, action);
+                        });
                     }
                     else
                     {
@@ -884,15 +887,19 @@
             //鍏抽攣浜嬩欢
             EventHandler<MouseEventArgs> hander2 = (sender, e) =>
             {
+                canShowDialog = true;
                 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,8 +1048,6 @@
         /// </summary>
         private async void NomallyOpenDialog()
         {
-            #region 鍚庣画鐗堟湰
-
             if (UserCenterResourse.UserInfo.AuthorityNo != 1)
             {
                 this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
@@ -1057,25 +1062,46 @@
 
             action = () =>
             {
-
-                Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2, doorLock);
                 //绯荤粺瀵嗙爜鏀寔鎿嶄綔闂ㄩ攣鍚庯紝璋冪敤娓╁眳鍩庣殑鐣岄潰銆愬父寮�鑷姩鍖栥��
-               // functionSetting.aaaAction = () =>
-               //{
-               //    UpdateNomallyOpenStatus();
-               //};
+                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;
+                };
             };
             HdlCheckLogic.Current.CheckSecondarySecurity(action);
-            #endregion
 
-
-        }
-
-        /// <summary>
-        /// 甯稿紑妯″紡澶辨晥澶勭悊
-        /// </summary>
-        public void NomallyOpenModeInvalidDialog(bool IsFromReport = false)
+        }
+
+        /// <summary>
+        /// 甯稿紑妯″紡澶辨晥澶勭悊
+        /// </summary>
+        private void NomallyOpenModeInvalidDialog(bool IsFromReport = false)
         {
+            if (!canShowDialog)
+            {
+                return;
+            }
+
             if (UserCenterResourse.UserInfo.AuthorityNo != 1)
             {
                 this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
@@ -1084,7 +1110,7 @@
             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 (haveLogicNormallyOpenMode)
             {
                 //鏈夐�昏緫璁剧疆鐨勫脊绐�
                 alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm);
@@ -1101,15 +1127,11 @@
                     {
                         UpdateNomallyOpenStatus();
                     });
-                    //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫
-                    if (HaveLogicNormallyOpenMode)
+
+                    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);
-                        //}
+                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
+                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                     }
                 }
                 else
@@ -1129,16 +1151,11 @@
                 {
                     //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑�
                     Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
-                    //鍏堝垹闄ゅ凡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫
-                    if (HaveLogicNormallyOpenMode)
+
+                    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;
-                        //}
+                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
+                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                     }
                     //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥�
                     var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
@@ -1206,15 +1223,10 @@
                         UpdateNomallyOpenStatus();
                     });
 
-                    //鍒犻櫎宸茬粡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫
-                    if (HaveLogicNormallyOpenMode)
+                    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);
-                        //}
+                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
+                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                     }
                 }
                 else
@@ -1245,21 +1257,11 @@
                         {
                             UpdateNomallyOpenStatus();
                         });
-                        //鍒犻櫎璁剧疆甯稿紑妯″紡鍒涘缓鐨勯�昏緫
-                        if (HaveLogicNormallyOpenMode)
+
+                        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);
-                            //}
+                            //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
+                            var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                         }
                         string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
                         this.ShowTipMsg(msg2);
@@ -1321,7 +1323,7 @@
                  DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
                  //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 
                  var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
-                 if (!res)
+                 if (res == 0)
                  {
                      //榛樿鍒涘缓甯稿紑妯″紡澶辫触
                      string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed);
@@ -1343,12 +1345,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;
@@ -1356,7 +1353,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;
@@ -1445,6 +1442,7 @@
                 CommonPage.Instance.IsDrawerLockMode = false;
             }
             ZbGateway.StatusList.Remove(this);
+            DoorLockCommonInfo.LogicAction = null;
             base.RemoveFromParent();
         }
         #endregion

--
Gitblit v1.8.0