From 61af8b06212a470308e02fd9af929f0f30955107 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 13 三月 2023 15:16:20 +0800
Subject: [PATCH] 传感器优化

---
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs |  251 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 247 insertions(+), 4 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs
index d96b5c4..ad4cd51 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs
@@ -3,6 +3,8 @@
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using System.Collections.Generic;
+using System.Threading;
+using HDL_ON.DAL.Server;
 
 namespace HDL_ON.UI
 {
@@ -119,7 +121,7 @@
                     TextID = StringId.Member
                 };
                 userTypeView.AddChidren(btnUserTypeName);
-                if(Language.CurrentLanguage == "English")
+                if (Language.CurrentLanguage == "English")
                 {
                     userTypeView.X = Application.GetRealWidth(260);
                 }
@@ -258,7 +260,8 @@
 
                 EventHandler<MouseEventArgs> eHandler = (sender, e) =>
                 {
-                    action = () => {
+                    action = () =>
+                    {
                         residenceMemberInfos.Remove(memberInfo);
                         LoadMemberRow();
                     };
@@ -316,7 +319,7 @@
                     {
                         if (OnAppConfig.Instance.FaceManagementTip)
                         {
-
+                            LoadPictureOptionView();
                             return;
                         }
 
@@ -448,6 +451,13 @@
 
                             dialog.Close();
                         };
+                        btnConfirm.MouseUpEventHandler = (sender, e) =>
+                        {
+                            dialog.Close();
+                            OnAppConfig.Instance.FaceManagementTip = true;
+                            OnAppConfig.Instance.SaveConfig();
+                            LoadPictureOptionView();
+                        };
 
                     };
                     view4.MouseUpEventHandler = eHandler;
@@ -490,5 +500,238 @@
                 //#endregion 
             }
         }
+
+
+        const int imageHeight = 400;
+
+        /// <summary>
+        /// 鍔犺浇鍥炬爣閫夋嫨閫夐」
+        /// </summary>
+        void LoadPictureOptionView()
+        {
+            var pView = new FrameLayout()
+            {
+                BackgroundColor = CSS_Color.DialogTransparentColor1,
+            };
+            bodyView.AddChidren(pView);
+
+            var pictureOptionView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(445 + 50),
+                Height = Application.GetRealHeight(250),
+                AnimateSpeed = 0.3f,
+                Animate = Animate.DownToUp,
+            };
+            pView.AddChidren(pictureOptionView);
+
+            var optionView = new VerticalScrolViewLayout()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(100),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+                Radius = (uint)Application.GetRealWidth(12),
+            };
+            pictureOptionView.AddChidren(optionView);
+
+            var btnTakePicture = new Button()
+            {
+                Height = Application.GetRealHeight(50),
+                TextAlignment = TextAlignment.Center,
+                TextColor = CSS_Color.TextualColor,
+                SelectedTextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextID = StringId.TakePicture,
+            };
+            optionView.AddChidren(btnTakePicture);
+
+            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
+
+            var btnAlbum = new Button()
+            {
+                Height = Application.GetRealHeight(50),
+                TextAlignment = TextAlignment.Center,
+                TextColor = CSS_Color.TextualColor,
+                SelectedTextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextID = StringId.Album,
+            };
+            optionView.AddChidren(btnAlbum);
+
+            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
+
+            var btnCancel = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(8) + optionView.Bottom,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(50),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+                Radius = (uint)Application.GetRealWidth(12),
+                TextID = StringId.Cancel,
+                TextColor = CSS_Color.WarningColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+            };
+            pictureOptionView.AddChidren(btnCancel);
+
+
+      
+            pictureOptionView.MouseUpEventHandler = (sender, e) =>
+            {
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+            pView.MouseUpEventHandler = (sender, e) =>
+            {
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+            btnTakePicture.MouseDownEventHandler = (sender, e) =>
+            {
+                btnTakePicture.IsSelected = true;
+            };
+            btnTakePicture.MouseUpEventHandler = (sender, e) =>
+            {
+                btnTakePicture.IsSelected = false;
+                var imageName = Guid.NewGuid().ToString();
+                CropImage.TakePicture((imagePath) =>
+                {
+                    CropImageCallBack(imagePath, 1, imageName);
+                }, imageName, 4, 6, imageHeight);
+
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+            btnAlbum.MouseDownEventHandler = (sender, e) =>
+            {
+                btnAlbum.IsSelected = true;
+            };
+
+            btnAlbum.MouseUpEventHandler = (sender, e) =>
+            {
+                btnAlbum.IsSelected = false;
+            //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
+            var imageName = Guid.NewGuid().ToString();
+            //var imageName = scene.sid;
+            CropImage.SelectPicture((imagePath) =>
+                {
+                    CropImageCallBack(imagePath, 2, imageName);
+                }, imageName, 4, 6, imageHeight);
+
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+
+        }
+
+
+        /// <summary>
+        /// 瑁佸壀瀹岀収鐗囧洖璋冿紝缁熶竴澶勭悊
+        /// </summary>
+        /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
+        /// <param name="imageSource">鐓х墖鏉ユ簮锛�1锛氭媿鐓э紱2锛氬浘搴�</param>
+        void CropImageCallBack(string selectImagePath, int imageSource, string imageName)
+        {
+            if (string.IsNullOrEmpty(selectImagePath) == true)
+            {
+                return;
+            }
+            //涓婁紶鎴愬姛鍒板洖璋�
+            Action<bool> uploadSuccessAction = (isSuccess) =>
+            {
+            //鐐瑰嚮閲嶆柊褰曞叆浜嬩欢
+            Action action = () =>
+                {
+                    if (!isSuccess)
+                    {
+                        if (imageSource == 1)
+                        {
+                            CropImage.TakePicture((imagePath) =>
+                            {
+                                CropImageCallBack(imagePath, 2, imageName);
+                            }, imageName, 4, 6, imageHeight);
+                        }
+                        else
+                        {
+                            CropImage.SelectPicture((imagePath) =>
+                            {
+                                CropImageCallBack(imagePath, 1, imageName);
+                            }, imageName, 4, 6, imageHeight);
+                        }
+                    }
+                };
+
+                if (isSuccess)
+                {
+                    //ReadFaceInfo(false);
+                }
+
+                Application.RunOnMainThread(() =>
+                {
+                    var page = new FaceSettingResultPage(action);
+                    MainPage.BasePageView.AddChidren(page);
+                    page.LoadPage(isSuccess);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                });
+            };
+            //涓婁紶鍥剧墖鍒颁簯绔�
+            UploadImage(selectImagePath, uploadSuccessAction);
+        }
+
+        /// <summary>
+        /// 涓婁紶鍥剧墖鏂规硶
+        /// </summary>
+        /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param>
+        /// <param name="imageView"></param>
+        /// <param name="uploadResultAction"></param>
+        void UploadImage(string selectImagePath, Action<bool> uploadResultAction)
+        {
+            try
+            {
+                //1.璇诲彇瑁佸壀鍚庣殑鍥剧墖锛岀劧鍚庡垹闄�
+                var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath);
+                System.IO.File.Delete(selectImagePath);
+
+                var waitPage = new Loading();
+                bodyView.AddChidren(waitPage);
+                waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                //寮�濮嬩笂浼�
+                new Thread(() =>
+                {
+                    try
+                    {
+                        string base64string = Convert.ToBase64String(imageBytes);
+                    //Utlis.WriteLine("涓婁紶鍥剧墖Length:" + imageBytes.Length + " base64锛�" + base64string);
+                    var pack = new HttpServerRequest().FaceSetting(base64string);
+                        if (pack != null)
+                        {
+                            Utlis.WriteLine("涓婁紶缁撴灉锛�" + pack.message);
+                            uploadResultAction?.Invoke(pack.Code == StateCode.SUCCESS);
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (waitPage != null)
+                            {
+                                waitPage.RemoveFromParent();
+                                waitPage = null;
+                            }
+                        });
+                    }
+                })
+                { IsBackground = true }.Start();
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log(ex.Message);
+            }
+        }
+
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0