From a2d26f15b940c853faaf6d6959b16a6d919cb800 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 27 十一月 2019 19:26:30 +0800
Subject: [PATCH] 请合并最新的代码(完成门锁功能)

---
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs |  233 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 179 insertions(+), 54 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs
old mode 100755
new mode 100644
index 62d78a5..0e5251a
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs
@@ -14,7 +14,6 @@
         #region 鈼� 鍙橀噺鐢虫槑__________________________
         public FrameLayout topFrameLayout = new FrameLayout { Height = Application.GetRealHeight(184), BackgroundColor = ZigbeeColor.Current.XMTopFrameLayout };
         public FrameLayout midFrameLayout = new FrameLayout { Height = Application.GetRealHeight(1921 - 184), BackgroundColor = ZigbeeColor.Current.XMMidFrameLayout };
-
         #region 鈼� 搴曢儴鏈夊渾瑙掑竷灞�__________________________
         public FrameLayout shadowRadiusFrameLayout = new FrameLayout { BackgroundColor = 0x0f000000 };
         public FrameLayout bottomRadiusFrameLayout1 = new FrameLayout()
@@ -70,6 +69,16 @@
         };
         #endregion
 
+        /// <summary> 
+        /// 鈼� 涓儴鍒锋柊甯冨眬__________________________
+        /// </summary>
+        //public VerticalRefreshLayout midVerticalScrolViewLayout = new VerticalRefreshLayout()
+        //{
+        //};
+
+        /// <summary>
+        /// 鈼� 鏍囬鏍忓竷灞�__________________________
+        /// </summary>
         public FrameLayout titleFrameLayout = new FrameLayout
         {
             Y = Application.GetRealHeight(92),
@@ -99,14 +108,6 @@
         };
 
         /// <summary>
-        /// 鏍囬杩斿洖鎸夐敭
-        /// </summary>
-        public Button btnTip = new Button
-        {
-            Gravity = Gravity.Center,
-        };
-
-        /// <summary>
         /// 鏍囬涓嬬嚎
         /// </summary>
         public Button btnTitleLine = new Button
@@ -115,6 +116,7 @@
             Height = 1,
             BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine,
         };
+
 
         /// <summary>
         /// 寮圭獥鍙栨秷鎸夐敭
@@ -152,7 +154,6 @@
             };
             titleFrameLayout.AddChidren(title);
             btnBackFrameLayout.AddChidren(btnBack);
-            this.midFrameLayout.AddChidren(this.btnTip);
         }
         /// <summary>
         /// 闂ㄩ攣涓儴甯冨眬
@@ -274,6 +275,7 @@
                         System.Threading.Thread.Sleep(500);
                         doorLock.RemoteUnlockPassword = editInputPassword.Text;
                         ZigBee.Device.DoorLock.minValue = DateTime.MinValue;
+                        ZigBee.Device.DoorLock.failedCount = 3;
                         ZigBee.Device.DoorLock.RemoteUnlockCount = 5;
                         oldTime = DateTime.MaxValue;
                         CommonPage.Loading.Hide();
@@ -354,13 +356,62 @@
         }
 
         /// <summary>
+        /// 瀹夊叏楠岃瘉
+        /// </summary>
+        /// <param name="doorLock">闂ㄩ攣璁惧</param>
+        /// <param name="action">浜屾楠岃瘉鐨勭粨鏋滄垚鍔熷悗鐨勯�氱煡</param> 
+        public static void SecurityRequest(ZigBee.Device.DoorLock doorLock, Action action)
+        {
+            var dialog2 = new Dialog { };
+            var doorDialog2 = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog2, Language.StringByID(R.MyInternationalizationString.Tip));
+            doorDialog2.Show();
+            doorDialog2.dialogMidFraFrameLayout.Width = Application.GetRealWidth(674);
+            doorDialog2.dialogMidFraFrameLayout.Height = Application.GetRealHeight(115);
+            doorDialog2.dialogMidFraFrameLayout.X = Application.GetRealWidth(60);
+            doorDialog2.dialogMidFraFrameLayout.Y = Application.GetRealHeight(167);
+            doorDialog2.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.GoSetting);
+            var midText1 = new Button()
+            {
+                Width = Application.GetRealWidth(674),
+                Height = Application.GetRealHeight(115 / 2),
+                TextSize = 14,
+                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+                TextAlignment = TextAlignment.Center,
+                TextID = R.MyInternationalizationString.GoPersonalCenter,
+            };
+            doorDialog2.dialogMidFraFrameLayout.AddChidren(midText1);
+            var midText2 = new Button()
+            {
+                Width = Application.GetRealWidth(674),
+                Height = Application.GetRealHeight(115 / 2),
+                Y = Application.GetRealHeight(115 / 2),
+                TextSize = 14,
+                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+                TextAlignment = TextAlignment.Center,
+                TextID = R.MyInternationalizationString.OpenRemoteVerification,
+            };
+            doorDialog2.dialogMidFraFrameLayout.AddChidren(midText2);
+
+            doorDialog2.dialogBtnCancel.MouseUpEventHandler += (sender2, e2) =>
+            {
+                dialog2.Close();
+            };
+            doorDialog2.dialogBtnConfirm.MouseUpEventHandler += async (sender2, e2) =>
+            {
+                var form = new UserCenter.UserMain.SecondAuthenticationForm();
+                form.AddForm();
+                dialog2.Close();
+            };
+        }
+
+        /// <summary>
         /// 杩滅▼寮�閿佽姹�
         /// </summary>
         /// <param name="doorLock">闂ㄩ攣璁惧</param>
         /// <param name="action">浜屾楠岃瘉鐨勭粨鏋滄垚鍔熷悗鐨勯�氱煡</param>
         /// <param name="progressButton">闂ㄩ攣寮�鎴栧叧鏃惰繘搴︽樉绀�</param>
         /// <param name="btnDoorLockPic">闂ㄩ攣鍥剧墖寮�/鍏虫樉绀�</param>
-        public void RemoteUnlockRequest(ZigBee.Device.DoorLock doorLock, Action action, Button progressButton = null, Button btnDoorLockPic = null, Button btnStatus = null)
+        public void RemoteUnlockRequest(ZigBee.Device.DoorLock doorLock, Action action, Button progressButton = null, Button btnDoorLockPic = null, Button btnStatus = null, Button btnDoorLockTitle = null)
         {
             if (doorLock.RemoteUnlockPassword == "")
             {
@@ -383,18 +434,41 @@
                 {
                     if (UserCenterResourse.UserInfo.AuthorityNo == 1)
                     {
-                        var userDoorLockPage = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage);
+                        var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
+                        Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
                         Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        userDoorLockPage.Show();
+                        functionSetting.Show();
+                        functionSetting.devicNameAction += (deviceRename) =>
+                        {
+                            if (!string.IsNullOrEmpty(deviceRename))
+                            {
+                                if (btnDoorLockTitle != null)
+                                {
+                                    btnDoorLockTitle.Text = deviceRename;
+                                }
+                            }
+                        };
                         dialog.Close();
                     }
                     else
                     {
-                        var userDoorLockPage = new Shared.Phone.UserCenter.DoorLock.FunctionSettingSub(doorLock);
-                        Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage);
+                        var functionSettingSub = new Shared.Phone.UserCenter.DoorLock.FunctionSettingSub(doorLock);
+                        Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSettingSub);
                         Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                        userDoorLockPage.Show();
+                        functionSettingSub.Show();
+                        functionSettingSub.devicNameAction += (deviceRename) =>
+                        {
+                            if (!string.IsNullOrEmpty(deviceRename))
+                            {
+                                if (!string.IsNullOrEmpty(deviceRename))
+                                {
+                                    if (btnDoorLockTitle != null)
+                                    {
+                                        btnDoorLockTitle.Text = deviceRename;
+                                    }
+                                }
+                            }
+                        };
                         dialog.Close();
                     }
                 };
@@ -492,6 +566,7 @@
                         {
                             if (remoteControlResult.responseData.status == 0)
                             {
+                                ZigBee.Device.DoorLock.failedCount = 3;
                                 if (progressButton != null)
                                 {
                                     progressButton.Y = Application.GetRealHeight(347);
@@ -500,14 +575,17 @@
                                 {
                                     btnDoorLockPic.IsSelected = false;
                                 }
-                                if (btnStatus != null)
-                                {
-                                    Application.RunOnMainThread(() =>
-                                    {
-                                        btnStatus.Text = Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
-                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockSuccess), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1);
-                                    });
-                                }
+
+                                btnStatus.Text = Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockSuccess), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1);
+                                //Application.RunOnMainThread(() =>
+                                //{
+                                //    if (btnStatus != null)
+                                //    {
+                                //        btnStatus.Text = Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
+                                //        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockSuccess), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1);
+                                //    }
+                                //});
                                 System.Threading.Thread.Sleep(5000);
                             }
                             else
@@ -526,46 +604,91 @@
                                     {
                                         btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose);
                                     }
-                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1);
                                 });
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1);
                             }
                         }
                         else if (remoteControlResult != null && remoteControlResult.IsPawDispear == true)
                         {
-                            if (progressButton != null)
+                            ZigBee.Device.DoorLock.failedCount--;
+                            if (ZigBee.Device.DoorLock.failedCount != 0)
                             {
-                                progressButton.Y = Application.GetRealHeight(347);
-                            }
-                            if (btnDoorLockPic != null)
-                            {
-                                btnDoorLockPic.IsSelected = false;
-                            }
-                            Application.RunOnMainThread(() =>
-                            {
-                                if (btnStatus != null)
+                                if (progressButton != null)
                                 {
-                                    btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose);
+                                    progressButton.Y = Application.GetRealHeight(347);
                                 }
-                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.DoorlockPasswordDispear), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1);
-                                CommonPage.Loading.Hide();
-                                doorLock.RemoteUnlockPassword = "";
-                            });
-                            dialog3.Close();
-
-                            if (UserCenterResourse.UserInfo.AuthorityNo == 1)
-                            {
-                                var userDoorLockPage = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
-                                Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage);
-                                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                                userDoorLockPage.Show();
-
+                                if (btnDoorLockPic != null)
+                                {
+                                    btnDoorLockPic.IsSelected = false;
+                                }
+                                Application.RunOnMainThread(() =>
+                                {
+                                    if (btnStatus != null)
+                                    {
+                                        btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose);
+                                    }
+                                });
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1);
                             }
                             else
                             {
-                                var userDoorLockPage = new Shared.Phone.UserCenter.DoorLock.FunctionSettingSub(doorLock);
-                                Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage);
-                                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                                userDoorLockPage.Show();
+                                if (progressButton != null)
+                                {
+                                    progressButton.Y = Application.GetRealHeight(347);
+                                }
+                                if (btnDoorLockPic != null)
+                                {
+                                    btnDoorLockPic.IsSelected = false;
+                                }
+                                Application.RunOnMainThread(() =>
+                                {
+                                    if (btnStatus != null)
+                                    {
+                                        btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose);
+                                    }
+                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.DoorlockPasswordDispear), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show((View)sender1);
+                                    CommonPage.Loading.Hide();
+                                    doorLock.RemoteUnlockPassword = "";
+                                });
+                                dialog3.Close();
+
+                                if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+                                {
+                                    var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
+                                    Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
+                                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                                    functionSetting.Show();
+                                    functionSetting.devicNameAction += (deviceRename) =>
+                                    {
+                                        if (!string.IsNullOrEmpty(deviceRename))
+                                        {
+                                            if (btnDoorLockTitle != null)
+                                            {
+                                                btnDoorLockTitle.Text = deviceRename;
+                                            }
+                                        }
+                                    };
+                                }
+                                else
+                                {
+                                    var functionSettingSub = new Shared.Phone.UserCenter.DoorLock.FunctionSettingSub(doorLock);
+                                    Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSettingSub);
+                                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                                    functionSettingSub.Show();
+                                    functionSettingSub.devicNameAction += (deviceRename) =>
+                                    {
+                                        if (!string.IsNullOrEmpty(deviceRename))
+                                        {
+                                            if (!string.IsNullOrEmpty(deviceRename))
+                                            {
+                                                if (btnDoorLockTitle != null)
+                                                {
+                                                    btnDoorLockTitle.Text = deviceRename;
+                                                }
+                                            }
+                                        }
+                                    };
+                                }
                             }
                         }
                         else
@@ -606,5 +729,7 @@
                 dialog3.Close();
             };
         }
+        // 鑾峰彇鍒板埌鍚嶇О鏇存敼鍥炶皟閫氱煡
+        public Action<string> devicNameSecAction;
     }
 }

--
Gitblit v1.8.0