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 | 411 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 392 insertions(+), 19 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs index 9b86a9b..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 { @@ -76,7 +78,7 @@ var sView = new VerticalScrolViewLayout() { Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343 + 50), + Width = Application.GetRealWidth(343), //Height = Application.GetRealWidth(230), Height = Application.GetRealWidth(180), BackgroundColor = CSS_Color.MainBackgroundColor, @@ -86,6 +88,10 @@ ScrollEnabled = false, VerticalScrollBarEnabled = false,//闅愯棌婊氬姩鏉� }; + if (Entity.DB_ResidenceData.Instance.SupportFacePass) + { + sView.Height = Application.GetRealWidth(180 + 50); + } contentView.AddChidren(sView); #region 澶村儚淇℃伅 var view1 = new FrameLayout() @@ -115,7 +121,7 @@ TextID = StringId.Member }; userTypeView.AddChidren(btnUserTypeName); - if(Language.CurrentLanguage == "English") + if (Language.CurrentLanguage == "English") { userTypeView.X = Application.GetRealWidth(260); } @@ -244,17 +250,18 @@ }; view3.AddChidren(btnPermissionRight); - //sView.AddChidren(new Button() - //{ - // Gravity = Gravity.CenterHorizontal, - // Height = Application.GetRealWidth(1), - // Width = Application.GetRealWidth(311), - // BackgroundColor = CSS_Color.DividingLineColor, - //}); + sView.AddChidren(new Button() + { + Gravity = Gravity.CenterHorizontal, + Height = Application.GetRealWidth(1), + Width = Application.GetRealWidth(311), + BackgroundColor = CSS_Color.DividingLineColor, + }); EventHandler<MouseEventArgs> eHandler = (sender, e) => { - action = () => { + action = () => + { residenceMemberInfos.Remove(memberInfo); LoadMemberRow(); }; @@ -286,7 +293,7 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, - TextID = StringId.PermissionToUse, + TextID = StringId.FaceManagemant, }; view4.AddChidren(btnFaceManagementTitle); @@ -310,15 +317,148 @@ EventHandler<MouseEventArgs> eFaceHandler = (sender, e) => { - action = () => + if (OnAppConfig.Instance.FaceManagementTip) { - residenceMemberInfos.Remove(memberInfo); - LoadMemberRow(); + LoadPictureOptionView(); + return; + } + + Dialog dialog = new Dialog() + { + BackgroundColor = CSS_Color.DialogTransparentColor1, }; - var mmp = new MemberPermissionPage(memberInfo, action); - MainPage.BasePageView.AddChidren(mmp); - mmp.LoadPage(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + + 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 btnTitle = 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(btnTitle); + + Button btnMsg = new Button() + { + Gravity = Gravity.CenterHorizontal, + Height = Application.GetRealHeight(35), + Y = btnTitle.Bottom, + Width = Application.GetRealHeight(200), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = " 涓轰繚鎶ゆ偍鐨勪釜浜洪殣绉佹潈鐩婏紝鐗瑰悜鎮ㄩ�氱煡骞剁敵璇锋槑纭悓鎰忔巿鏉冦�傝浣犱粩缁嗛槄璇�", + 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, + Text = " 銆奜n Pro浜鸿劯淇℃伅閲囬泦鍗忚銆�", + 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, + Text = " 鑻ュ悓鎰忚鍗忚锛岃鐐瑰嚮銆愬悓鎰忋�戞寜閿紝琛ㄧず鎮ㄥ凡缁忕悊瑙e苟鍚屾剰浜鸿劯淇℃伅閲囬泦鍗忚銆�", + IsMoreLines = true, + }; + contentView.AddChidren(btnMsg2); + + Button btnLine = new Button() + { + Y = Application.GetRealHeight(149), + Height = Application.GetRealHeight(1), + Width = Application.GetRealWidth(270 / 2), + BackgroundColor = CSS.CSS_Color.DividingLineColor, + }; + contentView.AddChidren(btnLine); + + Button btnCancel = new Button() + { + Y = btnLine.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 = btnLine.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 += (sender, e) => + { + dialog.Close(); + }; + btnMsg1.MouseUpEventHandler += (sender, e) => + { + string url = "https://developer.hdlcontrol.com/浜鸿劯淇℃伅閲囬泦鍗忚.html"; + if (Language.CurrentLanguage != "Chinese") + { + url = "https://developer.hdlcontrol.com/Face information collection protocol.html"; + } + new WebViewDialog().LoadPage("浜鸿劯淇℃伅閲囬泦鍗忚", url); + + dialog.Close(); + }; + btnConfirm.MouseUpEventHandler = (sender, e) => + { + dialog.Close(); + OnAppConfig.Instance.FaceManagementTip = true; + OnAppConfig.Instance.SaveConfig(); + LoadPictureOptionView(); + }; + }; view4.MouseUpEventHandler = eHandler; btnFaceManagementTitle.MouseUpEventHandler = eFaceHandler; @@ -360,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