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(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<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)
|
{
|
#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<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;
|
|
};
|
#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
|
|
}
|
|
}
|
|
/// <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;
|
|
}
|
}
|