From efcffde735fa65ae34bae0bcc86313b74ed0e36c Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 20 五月 2024 13:47:38 +0800
Subject: [PATCH] 优化离线数据

---
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs |  409 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 395 insertions(+), 14 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs
index 80b04df..b79d50f 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs
@@ -1,4 +1,6 @@
 锘縰sing System;
+using System.Threading;
+using HDL_ON.DAL.Server;
 using HDL_ON.UI.CSS;
 using Shared;
 
@@ -14,6 +16,11 @@
         Button btnAddMember;
         Button btnScan;
         EditText etMemberAccount;
+        EditText etMemberName;
+        /// <summary>
+        /// 浜鸿劯鐓х墖鏁版嵁
+        /// </summary>
+        string base64string;
 
         Action backAction;
 
@@ -27,17 +34,56 @@
         public void LoadPage()
         {
             bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
-            new TopViewDiv(bodyView, Language.StringByID(StringId.AddMember)).LoadTopView();
+            var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.AddMember));
+            topView.maginY = 10;
+            topView.LoadTopView();
 
-            var btnTitle = new Button()
+            var btnMemberName = new Button()
             {
-                Y = Application.GetRealHeight(70),
+                Y = Application.GetRealHeight(70+10),
                 X = Application.GetRealWidth(16),
                 Height = Application.GetRealHeight(32),
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextSize = CSS_FontSize.TextFontSize,
                 TextAlignment = TextAlignment.CenterLeft,
-                TextID = StringId.NewMemberAccount,
+                TextID = StringId.MemberName,
+            };
+            bodyView.AddChidren(btnMemberName);
+
+            etMemberName = new EditText()
+            {
+                Y = btnMemberName.Bottom,
+                X = Application.GetRealWidth(16),
+                Width = Application.GetRealWidth(356),
+                Height = Application.GetRealHeight(40),
+                TextColor = CSS_Color.TextualColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextAlignment = TextAlignment.CenterLeft,
+                PlaceholderText = Language.StringByID(StringId.PleaseEnterContent),
+                PlaceholderTextColor = CSS_Color.PromptingColor2
+            };
+            bodyView.AddChidren(etMemberName);
+
+            var btnLine = new Button()
+            {
+                Y = etMemberName.Bottom,
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(1),
+                BackgroundColor = CSS_Color.DividingLineColor,
+            };
+            bodyView.AddChidren(btnLine);
+
+
+            var btnTitle = new Button()
+            {
+                Y = btnLine.Bottom + Application.GetRealHeight(20),
+                X = Application.GetRealWidth(16),
+                Height = Application.GetRealHeight(32),
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextID = StringId.MemberAccount,
             };
             bodyView.AddChidren(btnTitle);
 
@@ -55,7 +101,7 @@
             };
             bodyView.AddChidren(etMemberAccount);
 
-            var btnLine = new Button()
+            var btnLine1 = new Button()
             {
                 Y = etMemberAccount.Bottom,
                 Gravity = Gravity.CenterHorizontal,
@@ -63,12 +109,200 @@
                 Height = Application.GetRealHeight(1),
                 BackgroundColor = CSS_Color.DividingLineColor,
             };
-            bodyView.AddChidren(btnLine);
+            bodyView.AddChidren(btnLine1);
+
+            int btnAddmemberY = 30;
+            if (Entity.DB_ResidenceData.Instance.SupportFacePass)
+            {
+                btnAddmemberY = 203;
+                #region 浜鸿劯绠$悊
+                var btnMemberFaceTitle = new Button()
+                {
+                    Y = btnLine1.Bottom + Application.GetRealHeight(20),
+                    X = Application.GetRealWidth(16),
+                    Height = Application.GetRealHeight(32),
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextID = StringId.MemberFace,
+                };
+                bodyView.AddChidren(btnMemberFaceTitle);
+
+                var btnAddFace = new Button()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Y = btnMemberFaceTitle.Bottom,
+                    Width = Application.GetRealWidth(120),
+                    Height = Application.GetRealWidth(120),
+                    Radius = (uint)Application.GetRealWidth(22),
+                    BorderWidth = 0,
+                    UnSelectedImagePath = "PersonalCenter/FacePassage/FaceIcon.png",
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    TextSize = CSS_FontSize.SubheadingFontSize,
+                    IsBold = true,
+                    TextAlignment = TextAlignment.Center,
+                };
+                bodyView.AddChidren(btnAddFace);
+
+
+                EventHandler<MouseEventArgs> eFaceHandler = (sender, e) =>
+                {
+                    Application.HideSoftInput();
+                    if (OnAppConfig.Instance.FaceManagementTip)
+                    {
+                        OnAppConfig.Instance.FaceManagementTip = true;
+                        OnAppConfig.Instance.SaveConfig();
+                        LoadPictureOptionView(btnAddFace);
+                        return;
+                    }
+
+                    Dialog dialog = new Dialog()
+                    {
+                        BackgroundColor = CSS_Color.DialogTransparentColor1,
+                    };
+
+                    FrameLayout contentView = new FrameLayout()
+                    {
+                        Gravity = Gravity.Center,
+                        Width = Application.GetRealWidth(270),
+                        Height = Application.GetRealHeight(192),
+                        BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
+                        BorderColor = 0x00000000,
+                        BorderWidth = 0,
+                        Radius = (uint)Application.GetMinRealAverage(10),
+                    };
+                    dialog.AddChidren(contentView);
+
+                    Button btnTitle2 = new Button()
+                    {
+                        Y = Application.GetRealHeight(16),
+                        Height = Application.GetRealHeight(30),
+                        TextColor = CSS_Color.MainColor,
+                        TextSize = CSS_FontSize.SubheadingFontSize,
+                        TextAlignment = TextAlignment.Center,
+                        IsBold = true,
+                        TextID = StringId.FaceProtocolPrompt,
+                    };
+                    contentView.AddChidren(btnTitle2);
+
+                    Button btnMsg = new Button()
+                    {
+                        Gravity = Gravity.CenterHorizontal,
+                        Height = Application.GetRealHeight(35),
+                        Y = btnTitle2.Bottom,
+                        Width = Application.GetRealHeight(200),
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = CSS_Color.TextualColor,
+                        TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                        TextID = StringId.FaceProTipText1,
+                        IsMoreLines = true,
+                    };
+                    contentView.AddChidren(btnMsg);
+
+                    Button btnMsg1 = new Button()
+                    {
+                        Gravity = Gravity.CenterHorizontal,
+                        Height = Application.GetRealHeight(15),
+                        Y = btnMsg.Bottom,
+                        Width = Application.GetRealHeight(200),
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = CSS_Color.MainColor,
+                        TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                        TextID = StringId.FaceProTipText2,
+                        IsMoreLines = true,
+                    };
+
+                    contentView.AddChidren(btnMsg1);
+
+                    Button btnMsg2 = new Button()
+                    {
+                        Gravity = Gravity.CenterHorizontal,
+                        Height = Application.GetRealHeight(35),
+                        Y = btnMsg1.Bottom,
+                        Width = Application.GetRealHeight(200),
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = CSS_Color.TextualColor,
+                        TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                        TextID = StringId.FaceProTipText3,
+                        IsMoreLines = true,
+                    };
+                    contentView.AddChidren(btnMsg2);
+
+                    Button btnLine2 = new Button()
+                    {
+                        Y = Application.GetRealHeight(149),
+                        Height = Application.GetRealHeight(1),
+                        Width = Application.GetRealWidth(270 / 2),
+                        BackgroundColor = CSS.CSS_Color.DividingLineColor,
+                    };
+                    contentView.AddChidren(btnLine2);
+
+                    Button btnCancel = new Button()
+                    {
+                        Y = btnLine2.Bottom,
+                        Width = Application.GetRealWidth(135),
+                        Height = Application.GetRealHeight(43),
+                        TextAlignment = TextAlignment.Center,
+                        TextColor = CSS_Color.TextualColor,
+                        TextSize = CSS_FontSize.SubheadingFontSize,
+                        //SelectedTextColor = CSS_Color.MainBackgroundColor,
+                        //SelectedBackgroundColor = CSS_Color.MainColor,
+                        TextID = StringId.Disagree,
+                    };
+                    contentView.AddChidren(btnCancel);
+
+                    Button btnConfirm = new Button()
+                    {
+                        X = btnCancel.Right,
+                        Y = btnLine2.Y,
+                        Width = Application.GetRealWidth(135),
+                        Height = Application.GetRealHeight(45),
+                        TextAlignment = TextAlignment.Center,
+                        //TextColor = CSS_Color.TextualColor,
+                        TextSize = CSS_FontSize.SubheadingFontSize,
+                        TextColor = CSS_Color.MainBackgroundColor,
+                        BackgroundColor = CSS_Color.MainColor,
+                        TextID = StringId.Agree,
+                    };
+                    contentView.AddChidren(btnConfirm);
+                    //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
+                    int mRectCornerID = HDLUtils.RectCornerBottomRight;
+                    btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID);
+                    dialog.Show();
+
+                    btnCancel.MouseUpEventHandler += (sender2, e2) =>
+                    {
+                        dialog.Close();
+                    };
+                    btnMsg1.MouseUpEventHandler += (sender2, e2) =>
+                    {
+                        string url = "https://developer.hdlcontrol.com/浜鸿劯淇℃伅閲囬泦鍗忚.html";
+                        if (Language.CurrentLanguage != "Chinese")
+                        {
+                            url = "https://developer.hdlcontrol.com/Face information collection protocol.html";
+                        }
+                        new WebViewDialog().LoadPage(Language.StringByID(StringId.GetFaceProtocol), url);
+
+                        dialog.Close();
+                    };
+                    btnConfirm.MouseUpEventHandler = (sender2, e2) =>
+                    {
+                        dialog.Close();
+                        OnAppConfig.Instance.FaceManagementTip = true;
+                        OnAppConfig.Instance.SaveConfig();
+                        LoadPictureOptionView(btnAddFace);
+                    };
+
+                };
+                btnAddFace.MouseUpEventHandler = eFaceHandler;
+                #endregion
+
+            }
 
             btnAddMember = new Button()
             {
                 Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(244),
+                Y = btnLine1.Bottom + Application.GetRealHeight(btnAddmemberY),
                 Width = Application.GetRealWidth(220),
                 Height = Application.GetRealWidth(44),
                 Radius = (uint)Application.GetRealWidth(22),
@@ -79,18 +313,18 @@
                 TextSize = CSS_FontSize.SubheadingFontSize,
                 IsBold = true,
                 TextAlignment = TextAlignment.Center,
-                TextID = StringId.ConfirmInvitation,
+                TextID = StringId.Confirm,
             };
             bodyView.AddChidren(btnAddMember);
 
+
             btnScan = new Button()
             {
-                Y = btnAddMember.Bottom,
-                Height = Application.GetRealHeight(44),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                TextID = StringId.ScanQRCoden,
+                Y = btnTitle.Bottom,
+                Width = Application.GetRealWidth(40),
+                Height = Application.GetRealWidth(40),
+                X = Application.GetRealWidth(310),
+                UnSelectedImagePath = "Public/Scan.png"
             };
             bodyView.AddChidren(btnScan);
 
@@ -137,5 +371,152 @@
             }) { IsBackground = true }.Start();
 
         }
+
+        const int imageHeight = 400;
+
+        /// <summary>
+        /// 鍔犺浇鍥炬爣閫夋嫨閫夐」
+        /// </summary>
+        void LoadPictureOptionView(Button btnAddFace)
+        {
+            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) =>
+                {
+                    if (imagePath != null)
+                    {
+                        var imageBytes = getFaceImageBytes(imagePath);
+                        btnAddFace.ImageBytes = imageBytes;
+                        base64string = Convert.ToBase64String(imageBytes);
+                    }
+
+                }, imageName, 6, 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) =>
+                {
+                    if (imagePath != null)
+                    {
+                        var imageBytes = getFaceImageBytes(imagePath);
+                        btnAddFace.ImageBytes = imageBytes;
+                        base64string = Convert.ToBase64String(imageBytes);
+                    }
+                }, imageName, 6, 6, imageHeight);
+
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏈湴閫夊彇鐨勪汉鑴告暟鎹�
+        /// </summary>
+        /// <param name="selectImagePath"></param>
+        /// <returns></returns>
+        byte[] getFaceImageBytes(string selectImagePath)
+        {
+            var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath);
+            System.IO.File.Delete(selectImagePath);
+            return imageBytes;
+        }
+
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0