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 VideoDoorlockFaceUnlockTriggerSettingPage :FrameLayout { FrameLayout bodyView; Function device; FaceUnlockSetupObj faceUnlockSetup; Action updataAction; public VideoDoorlockFaceUnlockTriggerSettingPage(Function function,FaceUnlockSetupObj setupObj,Action action) { updataAction = action; bodyView = this; device = function; faceUnlockSetup = setupObj; } public void LoadPage() { new TopViewDiv(bodyView, Language.StringByID(StringId.TriggerMode)).LoadTopView(); bodyView.BackgroundColor = CSS_Color.MainBackgroundColor; var contentView = new FrameLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(600), }; bodyView.AddChidren(contentView); #region 自动触发 var autoView = new FrameLayout() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(20), Width = Application.GetRealWidth(164), Height = Application.GetRealWidth(60), Radius = (uint)Application.GetRealWidth(12), BackgroundColor = faceUnlockSetup.mode == 0 ? CSS_Color.MainColor : CSS_Color.MainBackgroundColor, BorderColor = CSS_Color.MainColor, BorderWidth = 1, }; contentView.AddChidren(autoView); var btnAutoIcon = new Button() { X = Application.GetRealWidth(28), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = faceUnlockSetup.mode == 0 ? "FunctionIcon/DoorLock/AutomaitcTriggerIcon_white.png" : "FunctionIcon/DoorLock/AutomaitcTriggerIcon_blue.png", }; autoView.AddChidren(btnAutoIcon); var btnAutoText = new Button { X = btnAutoIcon.Right + Application.GetRealWidth(4), Width = Application.GetRealWidth(90), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.HeadlineFontSize, TextColor = faceUnlockSetup.mode == 1 ? CSS_Color.MainColor : CSS_Color.MainBackgroundColor, TextID = StringId.AutomaticTriggering, }; autoView.AddChidren(btnAutoText); #endregion #region 手动触发 var manualView = new FrameLayout() { X = Application.GetRealWidth(196), Y = Application.GetRealHeight(20), Width = Application.GetRealWidth(164), Height = Application.GetRealWidth(60), Radius = (uint)Application.GetRealWidth(12), BackgroundColor = faceUnlockSetup.mode == 1 ? CSS_Color.MainColor : CSS_Color.MainBackgroundColor, BorderColor = CSS_Color.MainColor, BorderWidth = 1, }; contentView.AddChidren(manualView); var btnManualIcon = new Button() { X = Application.GetRealWidth(28), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = faceUnlockSetup.mode == 1 ? "FunctionIcon/DoorLock/ManualTriggerIcon_white.png" : "FunctionIcon/DoorLock/ManualTriggerIcon_blue.png", }; manualView.AddChidren(btnManualIcon); var btnManualText = new Button { X = btnManualIcon.Right + Application.GetRealWidth(4), Width = Application.GetRealWidth(90), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.HeadlineFontSize, TextColor = faceUnlockSetup.mode == 0 ? CSS_Color.MainColor : CSS_Color.MainBackgroundColor, TextID = StringId.ManualTriggering, }; manualView.AddChidren(btnManualText); #endregion btnAutoText.MouseUpEventHandler = (sender, e) => { if (faceUnlockSetup.mode == 0) return; var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(""); new System.Threading.Thread(() => { try { var pack = ApiUtlis.Ins.HttpRequest.SetFaceUnlockCfg(device.deviceId, faceUnlockSetup.enabled, 0); if (pack != null && pack.Code == StateCode.SUCCESS) { faceUnlockSetup.mode = 0; Application.RunOnMainThread(() => { //更新界面 autoView.BackgroundColor = CSS_Color.MainColor; btnAutoIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/AutomaitcTriggerIcon_white.png"; btnAutoText.TextColor = CSS_Color.MainBackgroundColor; manualView.BackgroundColor = CSS_Color.MainBackgroundColor; btnManualIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/ManualTriggerIcon_blue.png"; btnManualText.TextColor = CSS_Color.MainColor; automaitcTipView.Visible = true; manualTipView.Visible = false; updataAction?.Invoke(0); }); } else { //失败提示 Application.RunOnMainThread(() => { 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(); }; btnManualText.MouseUpEventHandler = (sender, e) => { if (faceUnlockSetup.mode == 1) return; var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(""); new System.Threading.Thread(() => { try { var pack = ApiUtlis.Ins.HttpRequest.SetFaceUnlockCfg(device.deviceId, faceUnlockSetup.enabled, 1); if (pack != null && pack.Code == StateCode.SUCCESS) { Application.RunOnMainThread(() => { faceUnlockSetup.mode = 1; //更新界面 autoView.BackgroundColor = CSS_Color.MainBackgroundColor; btnAutoIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/AutomaitcTriggerIcon_blue.png"; btnAutoText.TextColor = CSS_Color.MainColor; manualView.BackgroundColor = CSS_Color.MainColor; btnManualIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/ManualTriggerIcon_white.png"; btnManualText.TextColor = CSS_Color.MainBackgroundColor; automaitcTipView.Visible = false; manualTipView.Visible = true; updataAction?.Invoke(1); }); } else { //失败提示 Application.RunOnMainThread(() => { 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(); }; loadAutomaitcTipView(); loadManualTipView(); if(faceUnlockSetup.mode == 0) { automaitcTipView.Visible = true; manualTipView.Visible = false; } else { automaitcTipView.Visible = false; manualTipView.Visible = true; } } FrameLayout automaitcTipView; FrameLayout manualTipView; /// /// 加载自动触发方式提示 /// void loadAutomaitcTipView() { automaitcTipView = new FrameLayout() { Y = Application.GetRealHeight(128 + 64), Height = Application.GetRealHeight(667 - 128 - 64), BackgroundColor = CSS_Color.MainBackgroundColor }; bodyView.AddChidren(automaitcTipView); var btnAutomaitcImage = new Button() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(200), Height = Application.GetRealWidth(200), UnSelectedImagePath = "FunctionIcon/DoorLock/FaceUnlockImage.png", }; automaitcTipView.AddChidren(btnAutomaitcImage); var btnAutomaitcTip = new Button() { Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(30), Gravity = Gravity.CenterHorizontal, Y = btnAutomaitcImage.Bottom, TextSize = CSS_FontSize.TextFontSize, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.TopCenter, IsMoreLines = true, TextID = StringId.FaceUnlockTip }; automaitcTipView.AddChidren(btnAutomaitcTip); var btnAutomaitcNote = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(400), Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(50), TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextColor = CSS_Color.PromptingColor1, TextID = StringId.FaceUnlockNote, IsMoreLines = true, }; automaitcTipView.AddChidren(btnAutomaitcNote); } /// /// 加载手动触发方式提示 /// void loadManualTipView() { manualTipView = new FrameLayout() { Y = Application.GetRealHeight(128 + 64), Height = Application.GetRealHeight(667 - 128 - 64), BackgroundColor = CSS_Color.MainBackgroundColor }; bodyView.AddChidren(manualTipView); var btnNumber1 = new Button() { X = Application.GetRealWidth(84), //Y = Application.GetRealHeight() Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), Radius = (uint)Application.GetRealWidth(12), BorderColor = CSS_Color.MainColor, BorderWidth = 1, TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.MainColor, TextAlignment = TextAlignment.Center, Text = "1", }; manualTipView.AddChidren(btnNumber1); var btnNumber2 = new Button() { X = Application.GetRealWidth(267), //Y = Application.GetRealHeight() Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), Radius = (uint)Application.GetRealWidth(12), BorderColor = CSS_Color.MainColor, BorderWidth = 1, TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.MainColor, TextAlignment = TextAlignment.Center, Text = "2", }; manualTipView.AddChidren(btnNumber2); var btnImage1 = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(31), Width = Application.GetRealWidth(160), Height = Application.GetRealWidth(160), UnSelectedImagePath = "FunctionIcon/DoorLock/TouchUnlcokImage.png", }; manualTipView.AddChidren(btnImage1); var btnAutomaitcImage = new Button() { X = btnImage1.Right + Application.GetRealWidth(24), Y = Application.GetRealHeight(31), Width = Application.GetRealWidth(160), Height = Application.GetRealWidth(160), UnSelectedImagePath = "FunctionIcon/DoorLock/FaceUnlockImage.png", }; manualTipView.AddChidren(btnAutomaitcImage); var btnManualTip = new Button() { Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(30), Gravity = Gravity.CenterHorizontal, Y = btnAutomaitcImage.Bottom, TextSize = CSS_FontSize.TextFontSize, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.TopCenter, IsMoreLines = true, TextID = StringId.FaceManualUnlockTip }; manualTipView.AddChidren(btnManualTip); } } }