From cbc156bc38d8b8eae7aef60cb186ab2b52fa701f Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期二, 16 七月 2024 13:59:56 +0800
Subject: [PATCH] 增加全部挂断

---
 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs |  237 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 159 insertions(+), 78 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs
index 36eea30..5c17463 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs
@@ -18,13 +18,14 @@
         VerticalScrolViewLayout contentView;
         FrameLayout userPermissionsView;
 
-        Button btnUserName;
+        //Button btnUserName;
 
         Function device;
         VideoDoorlockUser doorlockUser;
         public Action delCallBackAction;
-
+        public Action<string> updataUserNameAction;
         Loading waitPage;
+
 
         public VideoDoorlockUserManagerPage(Function function,VideoDoorlockUser user)
         {
@@ -33,12 +34,23 @@
             doorlockUser = user;
             BackgroundColor = CSS_Color.BackgroundColor;
             waitPage = new Loading();
-            bodyView.AddChidren(waitPage);
-            waitPage.Hide();
+
+        }
+
+        public override void RemoveFromParent()
+        {
+            base.RemoveFromParent();
+            bodyView = null;
+            if (waitPage != null)
+            {
+                waitPage.RemoveFromParent();
+                waitPage = null;
+            }
         }
 
         public void LoadPage()
         {
+            bodyView.AddChidren(waitPage);
             new TopViewDiv(bodyView, Language.StringByID(StringId.UserManagement)).LoadTopView();
 
             contentView = new VerticalScrolViewLayout()
@@ -47,6 +59,8 @@
                 Height = Application.GetRealHeight(667 - 70),
             };
             bodyView.AddChidren(contentView);
+
+          
 
             #region 鐢ㄦ埛鍚嶇О
             var userNameView = new FrameLayout()
@@ -75,7 +89,7 @@
             };
             userNameView.AddChidren(btnEditUserNameIcon);
 
-            btnUserName = new Button()
+            var btnUserName = new Button()
             {
                 X = Application.GetRealWidth(100),
                 Width = Application.GetRealWidth(230),
@@ -94,22 +108,125 @@
             contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) });
 
             initOptionView(false);
+
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
+                Action<string> callBack = (str) =>
+                {
+                    if (string.IsNullOrEmpty(str))
+                    {
+                        new Tip()
+                        {
+                            CloseTime = 1,
+                            Text = Language.StringByID(StringId.UesrNameCannotBeEmpty),
+                            Direction = AMPopTipDirection.None,
+                        }.Show(bodyView);
+                        return;
+                    }
+                    if (str == UserInfo.Current.userName)
+                    {
+                        return;
+                    }
+                    if (System.Text.Encoding.Unicode.GetBytes(str).Length > 20)
+                    {
+                        new Tip()
+                        {
+                            CloseTime = 1,
+                            Text = Language.StringByID(StringId.LengthOutOfRange),
+                            Direction = AMPopTipDirection.None,
+                        }.Show(bodyView);
+                        return;
+                    }
+                    new System.Threading.Thread(() =>
+                    {
+                        try
+                        {
+                            Application.RunOnMainThread(() => {
+                                waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                            });
+                            var pack = ApiUtlis.Ins.HttpRequest.EditDoorlockUserName(device.deviceId, doorlockUser.extUserId, str);
+                            if (pack.Code == StateCode.SUCCESS)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    btnUserName.Text = str;
+                                    updataUserNameAction?.Invoke(str);
+                                });
+                            }
+                            else
+                            {
+                                //澶辫触鎻愮ず
+                                Application.RunOnMainThread(() =>
+                                {
+                                    if (string.IsNullOrEmpty(pack.message))
+                                    {
+                                        pack.message = Language.StringByID(StringId.OperationFailed);
+                                    }
+                                    {
+                                        var tip = new Tip()
+                                        {
+                                            MaxWidth = Application.GetRealWidth(300),
+                                            Text = $"{pack.message}({pack.Code})",
+                                            CloseTime = 3,
+                                            Direction = AMPopTipDirection.None
+                                        };
+                                        tip.Show(MainPage.BaseView);
+                                    }
+                                });
+                            }
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"update user name error : {ex.Message}");
+                        }
+                        finally
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                waitPage.Hide();
+                            });
+                        }
+                    })
+                    { IsBackground = true }.Start();
+                };
+                var pa = new PublicAssmebly();
+                pa.entryMaxLength = 20;
+                pa.LoadDialog_EditParater(StringId.ChangeName, "", callBack, StringId.UesrNameCannotBeEmpty, 0, new List<string>());
+            };
+            btnUserName.MouseUpEventHandler = eventHandler;
+            btnEditUserNameIcon.MouseUpEventHandler = eventHandler;
+            userNameView.MouseUpEventHandler = eventHandler;
+
         }
 
         void initOptionView(bool isEdit)
         {
+            if(doorlockUser.faceCount == 0&&
+                doorlockUser.fingerCount == 0 &&
+                doorlockUser.pwdCount == 0 &&
+                doorlockUser.cardCount == 0)
+            {
+                new PublicAssmebly().TipMsg(StringId.Tip, StringId.VideoDoorlockDelDataTip, () =>
+                {
+                    delCallBackAction?.Invoke();
+                    this.RemoveFromParent();
+                });
+                return;
+            }
+
+
             int childrenViewHeight = Application.GetRealWidth(116);
-            int permissionsViewHeight = Application.GetRealHeight(291 + 92);
+            int permissionsViewHeight = Application.GetRealHeight(291 + 92 + 100);
             if (userPermissionsView!= null)
             {
                 userPermissionsView.RemoveAll();
 
                 if (isEdit)
                 {
-                    permissionsViewHeight = Application.GetRealHeight(391 + 50);
+                    permissionsViewHeight = Application.GetRealHeight(391 + 50 + 100);
                     childrenViewHeight = Application.GetRealWidth(156);
                 }
-                userPermissionsView.Height = permissionsViewHeight;
+                userPermissionsView.Height = permissionsViewHeight ;
             }
             else
             {
@@ -231,16 +348,19 @@
                     fingerprintView.AddChidren(btnClearFingerprints);
                     btnClearFingerprints.MouseUpEventHandler = (sender, e) =>
                     {
-                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
                         new System.Threading.Thread(() =>
                         {
                             try
                             {
+                                Application.RunOnMainThread(() => {
+                                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                                });
                                 var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUserFingerPassword(device.deviceId, doorlockUser.lockUserIndex);
                                 if (pack != null && pack.Code == StateCode.SUCCESS)
                                 {
                                     Application.RunOnMainThread(() =>
                                     {
+                                        doorlockUser.fingerCount = 0;
                                         //鏇存柊鐣岄潰
                                         initOptionView(true);
                                     });
@@ -310,17 +430,17 @@
             };
             digitalPasswordView.AddChidren(btnDigitalPasswordText);
 
-            if (doorlockUser.fingerCount > 0)
+            if (doorlockUser.pwdCount > 0)
             {
                 btnDigitalPasswordIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/UserRightsManagement/DigitalPasswordOnIcon.png";
                 btnDigitalPasswordText.TextColor = CSS_Color.FirstLevelTitleColor;
                 if (Language.CurrentLanguage == "Chinese")
                 {
-                    btnDigitalPasswordText.Text = doorlockUser.fingerCount + "缁�" + Language.StringByID(StringId.DigitalPassword);
+                    btnDigitalPasswordText.Text = doorlockUser.pwdCount + "缁�" + Language.StringByID(StringId.DigitalPassword);
                 }
                 else
                 {
-                    btnDigitalPasswordText.Text = doorlockUser.fingerCount + " " + Language.StringByID(StringId.DigitalPassword);
+                    btnDigitalPasswordText.Text = doorlockUser.pwdCount + " " + Language.StringByID(StringId.DigitalPassword);
                 }
 
                 if (isEdit)
@@ -340,16 +460,19 @@
                     digitalPasswordView.AddChidren(btnClearDigitalPassword);
                     btnClearDigitalPassword.MouseUpEventHandler = (sender, e) =>
                     {
-                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
                         new System.Threading.Thread(() =>
                         {
                             try
                             {
+                                Application.RunOnMainThread(() => {
+                                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                                });
                                 var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUserNumberPassword(device.deviceId, doorlockUser.lockUserIndex);
                                 if (pack != null && pack.Code == StateCode.SUCCESS)
                                 {
                                     Application.RunOnMainThread(() =>
                                     {
+                                        doorlockUser.pwdCount = 0;
                                         //鏇存柊鐣岄潰
                                         initOptionView(true);
                                     });
@@ -419,17 +542,17 @@
             };
             nfcView.AddChidren(btnNfcText);
 
-            if (doorlockUser.fingerCount > 0)
+            if (doorlockUser.cardCount > 0)
             {
                 btnNfcIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/UserRightsManagement/NfcOnIcon.png";
                 btnNfcText.TextColor = CSS_Color.FirstLevelTitleColor;
                 if (Language.CurrentLanguage == "Chinese")
                 {
-                    btnNfcText.Text = doorlockUser.fingerCount + "缁�" + Language.StringByID(StringId.NfcKey);
+                    btnNfcText.Text = doorlockUser.cardCount + "缁�" + Language.StringByID(StringId.NfcKey);
                 }
                 else
                 {
-                    btnNfcText.Text = doorlockUser.fingerCount + " " + Language.StringByID(StringId.NfcKey);
+                    btnNfcText.Text = doorlockUser.cardCount + " " + Language.StringByID(StringId.NfcKey);
                 }
 
                 if (isEdit)
@@ -448,16 +571,19 @@
                     };
                     nfcView.AddChidren(btnClearNfc);
                     btnClearNfc.MouseUpEventHandler = (sender, e) => {
-                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
                         new System.Threading.Thread(() =>
                         {
                             try
                             {
+                                Application.RunOnMainThread(() => {
+                                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                                });
                                 var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUserCardPassword(device.deviceId, doorlockUser.lockUserIndex);
                                 if (pack != null && pack.Code == StateCode.SUCCESS)
                                 {
                                     Application.RunOnMainThread(() =>
                                     {
+                                        doorlockUser.cardCount = 0;
                                         //鏇存柊鐣岄潰
                                         initOptionView(true);
                                     });
@@ -500,7 +626,7 @@
             var faceView = new FrameLayout()
             {
                 X = Application.GetRealWidth(16),
-                Y = fingerprintView.Bottom,
+                Y = fingerprintView.Bottom+ Application.GetRealHeight(20),
                 Width = Application.GetRealWidth(64 + 32),
                 Height = childrenViewHeight
             };
@@ -526,17 +652,17 @@
             };
             faceView.AddChidren(btnFaceText);
 
-            if (doorlockUser.fingerCount > 0)
+            if (doorlockUser.faceCount > 0)
             {
                 btnFaceIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/UserRightsManagement/FaceOnIcon.png";
                 btnFaceText.TextColor = CSS_Color.FirstLevelTitleColor;
                 if (Language.CurrentLanguage == "Chinese")
                 {
-                    btnFaceText.Text = doorlockUser.fingerCount + "缁�" + Language.StringByID(StringId.FaceKey);
+                    btnFaceText.Text = doorlockUser.faceCount + "缁�" + Language.StringByID(StringId.FaceKey);
                 }
                 else
                 {
-                    btnFaceText.Text = doorlockUser.fingerCount + " " + Language.StringByID(StringId.FaceKey);
+                    btnFaceText.Text = doorlockUser.faceCount + " " + Language.StringByID(StringId.FaceKey);
                 }
 
                 if (isEdit)
@@ -555,16 +681,19 @@
                     };
                     faceView.AddChidren(btnClearFace);
                     btnClearFace.MouseUpEventHandler = (sender, e) => {
-                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
                         new System.Threading.Thread(() =>
                         {
                             try
                             {
+                                Application.RunOnMainThread(() => {
+                                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                                });
                                 var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUserFacePassword(device.deviceId, doorlockUser.lockUserIndex);
                                 if (pack != null && pack.Code == StateCode.SUCCESS)
                                 {
                                     Application.RunOnMainThread(() =>
                                     {
+                                        doorlockUser.faceCount = 0;
                                         //鏇存柊鐣岄潰
                                         initOptionView(true);
                                     });
@@ -611,7 +740,7 @@
             var delUserView = new FrameLayout()
             {
                 Y = unlockOptionView.Bottom,
-                Height = Application.GetRealHeight(110),
+                Height = Application.GetRealHeight(310),
                 BackgroundColor = CSS_Color.BackgroundColor,
             };
             userPermissionsView.AddChidren(delUserView);
@@ -634,11 +763,13 @@
             {
                 new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteDoorlockUserTip, () =>
                 {
-                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
                     new System.Threading.Thread(() =>
                     {
                         try
                         {
+                            Application.RunOnMainThread(() => {
+                                waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                            });
                             var pack = ApiUtlis.Ins.HttpRequest.DeleteDoorlockUser(device.deviceId, doorlockUser.lockUserIndex);
                             if (pack != null && pack.Code == StateCode.SUCCESS)
                             {
@@ -655,6 +786,9 @@
                             {
                                 Application.RunOnMainThread(() =>
                                 {
+                                    if (string.IsNullOrEmpty(pack.message)) {
+                                        pack.message = Language.StringByID(StringId.OperationFailed);
+                                    }
                                     //澶辫触鎻愮ず
                                     var tip = new Tip()
                                     {
@@ -694,60 +828,7 @@
         /// </summary>
         void LoadEvent_EditUserName()
         {
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
-            {
-                Action<string> callBack = (str) =>
-                {
-                    if (string.IsNullOrEmpty(str))
-                    {
-                        new Tip()
-                        {
-                            CloseTime = 1,
-                            Text = Language.StringByID(StringId.UesrNameCannotBeEmpty),
-                            Direction = AMPopTipDirection.None,
-                        }.Show(bodyView);
-                        return;
-                    }
-                    if (str == UserInfo.Current.userName)
-                    {
-                        return;
-                    }
-                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
-                    new System.Threading.Thread(() =>
-                    {
-                        try
-                        {
-                            var resultObj = ApiUtlis.Ins.HttpRequest.EditDoorlockUserName(device.deviceId, doorlockUser.extUserId,str);
-                            if (resultObj.Code == StateCode.SUCCESS)
-                            {
-                                Application.RunOnMainThread(() =>
-                                {
-                                    btnUserName.Text = str;
-                                });
-                            }
-                            else
-                            {
-                                //澶辫触鎻愮ず
-                                IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
-                            }
-                        }
-                        catch (Exception ex)
-                        {
-                            MainPage.Log($"update user name error : {ex.Message}");
-                        }
-                        finally
-                        {
-                            Application.RunOnMainThread(() =>
-                            {
-                                waitPage.Hide();
-                            });
-                        }
-                    })
-                    { IsBackground = true }.Start();
-                };
-                new PublicAssmebly().LoadDialog_EditParater(StringId.ChangeName, doorlockUser.lockUserName, callBack, StringId.UesrNameCannotBeEmpty, 0, new System.Collections.Generic.List<string>());
-            };
-            btnUserName.MouseUpEventHandler = eventHandler;
+            //btnUserName.MouseUpEventHandler = eventHandler;
         }
 
 

--
Gitblit v1.8.0