using System; using HDL_ON.Common; using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock { /// /// 萤石视频门锁-人脸开锁设置页面 /// public class UnlockSettingFacePage : FrameLayout { FrameLayout bodyView; bool faceUnlockSwitch; Function device; public UnlockSettingFacePage(Function function) { bodyView = this; device = function; } public void LoadPage() { var faceUnlockSetup = new FaceUnlockSetupObj(); new TopViewDiv(bodyView, Language.StringByID(StringId.FaceUnlockSetting)).LoadTopView(); var contentView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(600), ScrollEnabled = false, BackgroundColor = CSS_Color.BackgroundColor, }; bodyView.AddChidren(contentView); #region 人脸开锁 var faceUnlockView = new FrameLayout() { Height = Application.GetRealHeight(74), BackgroundColor = CSS_Color.MainBackgroundColor, }; contentView.AddChidren(faceUnlockView); var btnFaceUnlockText = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(7), Height = Application.GetRealHeight(37), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextID = StringId.FaceUnlock, }; faceUnlockView.AddChidren(btnFaceUnlockText); var btnFaceUnlockTipText = new Button() { X = Application.GetRealWidth(16), Y = btnFaceUnlockText.Bottom, Width = Application.GetRealWidth(339), Height = Application.GetRealHeight(37), TextAlignment = TextAlignment.TopLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, IsMoreLines = true, TextID = StringId.FaceUnlockOpenTip }; faceUnlockView.AddChidren(btnFaceUnlockTipText); //var btnFaceUnlockSwitchIcon = new Button() //{ // X = Application.GetRealWidth(322), // Y = Application.GetRealHeight(8), // Width = Application.GetMinRealAverage(36), // Height = Application.GetMinRealAverage(36), // UnSelectedImagePath = "Public/Switch_2.png", // SelectedImagePath = "Public/SwitchOn_2.png", // IsSelected = faceUnlockSwitch, //}; //faceUnlockView.AddChidren(btnFaceUnlockSwitchIcon); var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(""); #endregion contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8), BackgroundColor = CSS_Color.BackgroundColor, }); var view = new VerticalScrolViewLayout() { Height = Application.GetRealHeight(300), }; contentView.AddChidren(view); //btnFaceUnlockSwitchIcon.MouseUpEventHandler = (sender, e) => //{ // waitPage.Start(""); // bool changeState = false; // if (!btnFaceUnlockSwitchIcon.IsSelected) // { // btnFaceUnlockSwitchIcon.IsSelected = true; // changeState = true; // } // new System.Threading.Thread(() => // { // try // { // var pack = ApiUtlis.Ins.HttpRequest.SetFaceUnlockCfg(device.deviceId, changeState, faceUnlockSetup.mode); // if (pack != null && pack.Code == StateCode.SUCCESS) // { // Application.RunOnMainThread(() => // { // //更新界面 // faceUnlockSetup.enabled = btnFaceUnlockSwitchIcon.IsSelected = changeState; // loadSubView(view, faceUnlockSetup); // }); // } // else // { // //失败提示 // Application.RunOnMainThread(() => // { // if (!string.IsNullOrEmpty(pack.message)) // { // 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($"btnFaceUnlockSwitchIcon error : {ex.Message}"); // } // finally // { // Application.RunOnMainThread(() => // { // waitPage.Hide(); // }); // } // }) // { IsBackground = true }.Start(); //}; //new System.Threading.Thread(() => { // try // { // var pack = ApiUtlis.Ins.HttpRequest.GetFaceUnlockCfg(device.deviceId); // if (pack != null && pack.Code == StateCode.SUCCESS) // { // Application.RunOnMainThread(() => // { // //更新界面 // faceUnlockSetup = Newtonsoft.Json.JsonConvert.DeserializeObject(pack.Data.ToString()); // btnFaceUnlockSwitchIcon.IsSelected = faceUnlockSetup.enabled; // loadSubView(view, faceUnlockSetup); // }); // } // else // { // //失败提示 // Application.RunOnMainThread(() => // { // if (!string.IsNullOrEmpty(pack.message)) // { // 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($"UnlockSettingPage error : {ex.Message}"); // } // finally // { // Application.RunOnMainThread(() => // { // waitPage.Hide(); // }); // } //}) //{ IsBackground = true }.Start(); } void loadSubView(VerticalScrolViewLayout view, FaceUnlockSetupObj faceUnlockSetup) { view.RemoveAll(); if (faceUnlockSetup.enabled) { #region 触发方式 TriggerMode var triggerModeView = new FrameLayout() { Height = Application.GetRealHeight(50), BackgroundColor = CSS.CSS_Color.MainBackgroundColor, }; view.AddChidren(triggerModeView); var btnTriggerModeRight = new Button() { X = Application.GetRealWidth(339), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/Right.png", }; triggerModeView.AddChidren(btnTriggerModeRight); var btnTriggerModeStateText = new Button() { X = Application.GetRealWidth(100), Width = Application.GetRealWidth(223), TextAlignment = TextAlignment.CenterRight, TextSize = CSS_FontSize.TextFontSize, TextColor = CSS_Color.PromptingColor1, }; triggerModeView.AddChidren(btnTriggerModeStateText); btnTriggerModeStateText.TextID = faceUnlockSetup.mode == 0 ? StringId.AutomaticTriggering : StringId.ManualTriggering; var btnTriggerModeText = new Button() { X = Application.GetRealWidth(16), TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.CenterLeft, TextID = StringId.TriggerMode, }; triggerModeView.AddChidren(btnTriggerModeText); btnTriggerModeText.MouseUpEventHandler = (sender, e) => { Action updataAction = (faceUnlockSetupMode) => { btnTriggerModeStateText.TextID = faceUnlockSetupMode == 0 ? StringId.AutomaticTriggering : StringId.ManualTriggering; }; var page = new VideoDoorlockFaceUnlockTriggerSettingPage(device, faceUnlockSetup,updataAction); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion view.AddChidren(new Button { Height = 1, BackgroundColor = CSS_Color.DividingLineColor }); } #region 人脸录入帮助 var faceEntryHelpView = new FrameLayout() { Height = Application.GetRealHeight(50), BackgroundColor = CSS.CSS_Color.MainBackgroundColor, }; view.AddChidren(faceEntryHelpView); var btnFaceEntryHelpRight = new Button() { X = Application.GetRealWidth(339), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/Right.png", }; faceEntryHelpView.AddChidren(btnFaceEntryHelpRight); var btnFaceEntryHelpText = new Button() { X = Application.GetRealWidth(16), TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.CenterLeft, TextID = StringId.FaceEntryHelp, }; faceEntryHelpView.AddChidren(btnFaceEntryHelpText); btnFaceEntryHelpText.MouseUpEventHandler = (sender, e) => { var page = new VideoDoorlockFaceUnlockHelpPage(); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion } } /// /// 人脸开锁配置 /// public class FaceUnlockSetupObj { /// /// 开关 /// public bool enabled = true; /// /// 解锁方式 0-自动 1-手动 /// public int mode; /// /// 灵敏度 0-高 1-低 /// public int sensitivity; } }