| | |
| | | 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 |
| | | { |
| | | /// <summary> |
| | | /// 萤石视频门锁-人脸开锁设置页面 |
| | | /// </summary> |
| | | public class UnlockSettingFacePage : FrameLayout |
| | | { |
| | | FrameLayout bodyView; |
| | | bool faceUnlockSwitch; |
| | | |
| | | Function device; |
| | | |
| | | public UnlockSettingFacePage() |
| | | public UnlockSettingFacePage(Function function) |
| | | { |
| | | bodyView = this; |
| | | device = function; |
| | | } |
| | | |
| | | public void LoadPage() |
| | | { |
| | | new TopViewDiv(bodyView, Language.StringByID(StringId.FaceUnlockSetting)).LoadTopView(); |
| | | 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); |
| | | |
| | |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | IsMoreLines = true, |
| | | TextID = StringId.FaceUnlockTip |
| | | 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 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() |
| | |
| | | BackgroundColor = CSS_Color.BackgroundColor, |
| | | }); |
| | | |
| | | |
| | | #region 触发方式 TriggerMode |
| | | var triggerModeView = new FrameLayout() |
| | | var view = new VerticalScrolViewLayout() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | | BackgroundColor = CSS.CSS_Color.MainBackgroundColor, |
| | | Height = Application.GetRealHeight(300), |
| | | }; |
| | | contentView.AddChidren(triggerModeView); |
| | | contentView.AddChidren(view); |
| | | |
| | | var btnTriggerModeRight = new Button() |
| | | |
| | | //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<FaceUnlockSetupObj>(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) |
| | | { |
| | | X = Application.GetRealWidth(339), |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetMinRealAverage(16), |
| | | Height = Application.GetMinRealAverage(16), |
| | | UnSelectedImagePath = "Public/Right.png", |
| | | }; |
| | | triggerModeView.AddChidren(btnTriggerModeRight); |
| | | #region 触发方式 TriggerMode |
| | | var triggerModeView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | | BackgroundColor = CSS.CSS_Color.MainBackgroundColor, |
| | | }; |
| | | view.AddChidren(triggerModeView); |
| | | |
| | | var btnTriggerModeStateText = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(223), |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextID = StringId.ManualTriggering, |
| | | }; |
| | | triggerModeView.AddChidren(btnTriggerModeStateText); |
| | | 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 btnTriggerModeText = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = StringId.TriggerMode, |
| | | }; |
| | | triggerModeView.AddChidren(btnTriggerModeText); |
| | | 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; |
| | | |
| | | btnTriggerModeText.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | 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); |
| | | |
| | | }; |
| | | #endregion |
| | | btnTriggerModeText.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | Action<int> 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; |
| | | |
| | | contentView.AddChidren(new Button() |
| | | { |
| | | Height = 1, |
| | | BackgroundColor = CSS_Color.PromptingColor1, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | }); |
| | | }; |
| | | #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, |
| | | }; |
| | | contentView.AddChidren(faceEntryHelpView); |
| | | view.AddChidren(faceEntryHelpView); |
| | | |
| | | var btnFaceEntryHelpRight = new Button() |
| | | { |
| | |
| | | }; |
| | | faceEntryHelpView.AddChidren(btnFaceEntryHelpRight); |
| | | |
| | | |
| | | |
| | | var btnFaceEntryHelpText = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | |
| | | }; |
| | | faceEntryHelpView.AddChidren(btnFaceEntryHelpText); |
| | | |
| | | btnFaceEntryHelpText.MouseUpEventHandler = (sender, e) => { |
| | | |
| | | btnFaceEntryHelpText.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | var page = new VideoDoorlockFaceUnlockHelpPage(); |
| | | MainPage.BasePageView.AddChidren(page); |
| | | page.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | #endregion |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 人脸开锁配置 |
| | | /// </summary> |
| | | public class FaceUnlockSetupObj |
| | | { |
| | | /// <summary> |
| | | /// 开关 |
| | | /// </summary> |
| | | public bool enabled = true; |
| | | /// <summary> |
| | | /// 解锁方式 0-自动 1-手动 |
| | | /// </summary> |
| | | public int mode; |
| | | /// <summary> |
| | | /// 灵敏度 0-高 1-低 |
| | | /// </summary> |
| | | public int sensitivity; |
| | | |
| | | } |
| | | } |