using System;
using Shared;
namespace HDL_ON.UI
{
public partial class AppUnlockSettingsPage
{
Action refreshAction;
void LoadEventList()
{
LoadEvent_OptionChange();
LoadEvent_InitOptionState();
refreshAction = () =>
{
LoadView_UnlockView();
//fingerprintUnlockDiv.Visible = sTouchID && (UserInfo.Current.appUnlockType.Contains("1") || UserInfo.Current.appUnlockType.Contains("2"));
//faceIdUnlockDiv.Visible = sFaceID && (UserInfo.Current.appUnlockType.Contains("1") || UserInfo.Current.appUnlockType.Contains("2"));
//btnFingerprintUnlockSwtichIcon.IsSelected = UserInfo.Current.appUnlockType.Contains("3");
//btnFaceIdUnlockSwtichIcon.IsSelected = UserInfo.Current.appUnlockType.Contains("4");
};
}
///
/// 加载密码选项事件
///
void LoadEvent_OptionChange()
{
EventHandler eventHandler1 = (sender, e1) =>
{
Action action = () =>
{
btnUnprotectedBg.IsSelected = btnUnprotectedSelectionIcon.IsSelected = btnUnprotectedSelectionTip.IsSelected = true;
btnStartupBg.IsSelected = btnStartupSelectionIcon.IsSelected = btnStartupSelectionTip.IsSelected = false;
#region F3阶段
//btnSecurityBg.IsSelected = btnSecuritySelectionIcon.IsSelected = btnSecuritySelectionTip.IsSelected = false;
btnDoorlockBg.IsSelected = btnDoorlockSelectionIcon.IsSelected = btnDoorlockSelectionTip.IsSelected = false;
#endregion
btnTipMsg.TextID = StringId.UnprotectedTipMsg;
UserInfo.Current.appUnlockPage = new System.Collections.Generic.List();
UserInfo.Current.appUnlockType = new System.Collections.Generic.List();
UserInfo.Current.appUnlockPasswrod = "";
UserInfo.Current.SaveUserInfo();
unlockOptionView.Visible = false;
refreshAction();
};
Action action1 = () =>
{
if (!btnUnprotectedBg.IsSelected)
{
//1:验证指纹
if (UserInfo.Current.appUnlockType.Contains("3"))
{
TouchIDVerification_TurnOffUnlock(action);
}
else if (UserInfo.Current.appUnlockType.Contains("4"))
{
//Face ID验证
FaceIDVerification_TurnOffUnlock(action);
}
else if (UserInfo.Current.appUnlockType.Contains("1"))
{
var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, action);
MainPage.BasePageView.AddChidren(page);
page.LoadPage("4");
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
else if (UserInfo.Current.appUnlockType.Contains("2"))
{
var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
MainPage.BasePageView.AddChidren(page);
page.LoadPage("4");
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
}
};
if (UserInfo.Current.appUnlockPasswrod != "")
{
new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.TipTurnOffUnlockingSetting, action1);
}
else
{
action();
}
};
btnUnprotectedBg.MouseUpEventHandler = eventHandler1;
btnUnprotectedSelectionIcon.MouseUpEventHandler = eventHandler1;
btnUnprotectedSelectionTip.MouseUpEventHandler = eventHandler1;
EventHandler eventHandler2 = (sender, e) =>
{
bool result = !btnStartupBg.IsSelected;
if (!result)
{
//如果启动解锁 不能取消启动解锁
if (!CheckIfCanDeselect("1")) return;
}
btnStartupBg.IsSelected = btnStartupSelectionIcon.IsSelected = btnStartupSelectionTip.IsSelected = result;
btnTipMsg.Text = Language.StringByID(StringId.AtStartupTipMsg);
if (result)
{
btnUnprotectedBg.IsSelected = btnUnprotectedSelectionIcon.IsSelected = btnUnprotectedSelectionTip.IsSelected = false;
if (!UserInfo.Current.appUnlockPage.Contains("1"))
{
UserInfo.Current.appUnlockPage.Add("1");
if (UserInfo.Current.appUnlockPasswrod != "")
UserInfo.Current.SaveUserInfo();
}
unlockOptionView.Visible = true;
}
else
{
if (UserInfo.Current.appUnlockPage.Contains("1"))
{
UserInfo.Current.appUnlockPage.Remove("1");
}
if (UserInfo.Current.appUnlockPage.Count == 0)
{
btnUnprotectedBg.IsSelected = btnUnprotectedSelectionIcon.IsSelected = btnUnprotectedSelectionTip.IsSelected = true;
btnTipMsg.TextID = StringId.UnprotectedTipMsg;
UserInfo.Current.appUnlockPasswrod = "";
unlockOptionView.Visible = false;
refreshAction();
}
UserInfo.Current.SaveUserInfo();
}
};
btnStartupBg.MouseUpEventHandler = eventHandler2;
btnStartupSelectionIcon.MouseUpEventHandler = eventHandler2;
btnStartupSelectionTip.MouseUpEventHandler = eventHandler2;
#region F3阶段
//EventHandler eventHandler3 = (sender, e) =>
//{
// bool result = !btnSecurityBg.IsSelected;
// if (!result)
// {
// //如果只剩布防/撤防一种 不能取消布防/撤防
// if (!CheckIfCanDeselect("2")) return;
// }
// btnSecurityBg.IsSelected = btnSecuritySelectionIcon.IsSelected = btnSecuritySelectionTip.IsSelected = result;
// btnTipMsg.Text = Language.StringByID(StringId.DefenseAndUndefenseTipMsg);
// if (result)
// {
// btnUnprotectedBg.IsSelected = btnUnprotectedSelectionIcon.IsSelected = btnUnprotectedSelectionTip.IsSelected = false;
// if (!UserInfo.Current.appUnlockPage.Contains("2"))
// {
// UserInfo.Current.appUnlockPage.Add("2");
// if (UserInfo.Current.appUnlockPasswrod != "")
// UserInfo.Current.SaveUserInfo();
// }
// unlockOptionView.Visible = true;
// }
// else
// {
// if (UserInfo.Current.appUnlockPage.Contains("2"))
// {
// UserInfo.Current.appUnlockPage.Remove("2");
// }
// if (UserInfo.Current.appUnlockPage.Count == 0)
// {
// btnUnprotectedBg.IsSelected = btnUnprotectedSelectionIcon.IsSelected = btnUnprotectedSelectionTip.IsSelected = result;
// btnTipMsg.TextID = StringId.UnprotectedTipMsg;
// UserInfo.Current.appUnlockPasswrod = "";
// unlockOptionView.Visible = false;
// refreshAction();
// }
// UserInfo.Current.SaveUserInfo();
// }
//};
//btnSecurityBg.MouseUpEventHandler = eventHandler3;
//btnSecuritySelectionIcon.MouseUpEventHandler = eventHandler3;
//btnSecuritySelectionTip.MouseUpEventHandler = eventHandler3;
EventHandler eventHandler4 = (sender, e) =>
{
bool result = !btnDoorlockBg.IsSelected;
if (!result)
{
//如果只剩远程开锁不能取消远程开锁
if (!CheckIfCanDeselect("3")) return;
}
btnDoorlockBg.IsSelected = btnDoorlockSelectionIcon.IsSelected = btnDoorlockSelectionTip.IsSelected = result;
btnTipMsg.Text = Language.StringByID(StringId.RemoteUnlockingTipMsg);
if (result)
{
btnUnprotectedBg.IsSelected = btnUnprotectedSelectionIcon.IsSelected = btnUnprotectedSelectionTip.IsSelected = false;
if (!UserInfo.Current.appUnlockPage.Contains("3"))
{
UserInfo.Current.appUnlockPage.Add("3");
if (UserInfo.Current.appUnlockPasswrod != "")
UserInfo.Current.SaveUserInfo();
}
unlockOptionView.Visible = true;
}
else
{
if (UserInfo.Current.appUnlockPage.Contains("3"))
{
UserInfo.Current.appUnlockPage.Remove("3");
}
if (UserInfo.Current.appUnlockPage.Count == 0)
{
btnUnprotectedBg.IsSelected = btnUnprotectedSelectionIcon.IsSelected = btnUnprotectedSelectionTip.IsSelected = true;
btnTipMsg.TextID = StringId.UnprotectedTipMsg;
UserInfo.Current.appUnlockPasswrod = "";
unlockOptionView.Visible = false;
refreshAction();
}
UserInfo.Current.SaveUserInfo();
}
};
btnDoorlockBg.MouseUpEventHandler = eventHandler4;
btnDoorlockSelectionIcon.MouseUpEventHandler = eventHandler4;
btnDoorlockSelectionTip.MouseUpEventHandler = eventHandler4;
#endregion
}
///
/// 加载用户密码选项状态
///
void LoadEvent_InitOptionState()
{
if (UserInfo.Current.appUnlockPage.Count == 0)
{
btnUnprotectedBg.IsSelected = btnUnprotectedSelectionIcon.IsSelected = btnUnprotectedSelectionTip.IsSelected = true;
}
else
{
if (UserInfo.Current.appUnlockPage.Contains("1"))
{
btnStartupBg.IsSelected = btnStartupSelectionIcon.IsSelected = btnStartupSelectionTip.IsSelected = true;
btnTipMsg.Text = Language.StringByID(StringId.AtStartupTipMsg);
}
#region F3阶段
//if (UserInfo.Current.appUnlockPage.Contains("2"))
//{
// btnSecurityBg.IsSelected = btnSecuritySelectionIcon.IsSelected = btnSecuritySelectionTip.IsSelected = true;
// btnTipMsg.Text = Language.StringByID(StringId.DefenseAndUndefenseTipMsg);
//}
if (UserInfo.Current.appUnlockPage.Contains("3"))
{
btnDoorlockBg.IsSelected = btnDoorlockSelectionIcon.IsSelected = btnDoorlockSelectionTip.IsSelected = true;
btnTipMsg.Text = Language.StringByID(StringId.RemoteUnlockingTipMsg);
}
#endregion
}
}
///
/// 密码设置跳转事件列表
///
void LoadEvet_SkipEventList()
{
btnPasswordUnlockTitle.MouseUpEventHandler = (sender, e) =>
{
var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, refreshAction);
MainPage.BasePageView.AddChidren(page);
page.LoadPage(UserInfo.Current.appUnlockType.Contains("1") ? "3" : "1");
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
btnResetPasswordTitle.MouseUpEventHandler = (sender, e) =>
{
var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, refreshAction);
MainPage.BasePageView.AddChidren(page);
page.LoadPage("2");
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
btnGestureUnlockTitle.MouseUpEventHandler = (sender, e) =>
{
var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, refreshAction);
MainPage.BasePageView.AddChidren(page);
page.LoadPage(UserInfo.Current.appUnlockType.Contains("2") ? "3" : "1");
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
btnResetGestureTitle.MouseUpEventHandler = (sender, e) =>
{
var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, refreshAction);
MainPage.BasePageView.AddChidren(page);
page.LoadPage("2");//2020-12-11
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
if (sTouchID)
{
btnFingerprintUnlockSwtichIcon.MouseUpEventHandler = (sender, e1) =>
{
TouchIDVerification_SwtichOnOff();
};
}
if (sFaceID)
{
btnFaceIdUnlockSwtichIcon.MouseUpEventHandler = (sender, e1) =>
{
FaceIDVerification_SwtichOnOff();
};
}
}
///
/// 判断是否能够取消,如果只剩最后一种解锁方案禁止取消
///
/// 1:启动时 2:布防撤防时 3:远程开锁时
///
bool CheckIfCanDeselect(string appUnlockPageType)
{
if (UserInfo.Current.appUnlockPage.Count == 1 && UserInfo.Current.appUnlockPage.Contains(appUnlockPageType))
{
return false;
}
return true;
}
///
/// 面容ID验证弹窗
///
///
///
void FaceIDVerification_Show(Action successAction, Action goToVerifyPasswordAction)
{
//提示数字密码验证还是绘制手势验证
string verificationTitleString = GetVerificationTitleString();
TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.VerifyFaceID));
TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
{
if (e == TouchIDUtils.TouchIDState.Success)
{
MainPage.Log("KK:FaceID验证成功");
successAction?.Invoke();
}
else if (e == TouchIDUtils.TouchIDState.NotSupport)
{
MainPage.Log("KK:当前设备不支持FaceID验证,请输入密码来验证");
goToVerifyPasswordAction();
}
else if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
{
MainPage.Log("KK:用户选择手动输入密码");
goToVerifyPasswordAction();
}
};
}
///
/// 面容ID开启和关闭
///
/// 验证成功事件
void FaceIDVerification_SwtichOnOff()
{
//4:面容ID
string faceIDUnlockType = "4";
//6:面容ID开关
string optionType = "6";
//成功事件
Action successAction = () =>
{
var result = btnFaceIdUnlockSwtichIcon.IsSelected = !btnFaceIdUnlockSwtichIcon.IsSelected;
if (result)
{
if (!UserInfo.Current.appUnlockType.Contains(faceIDUnlockType))
{
UserInfo.Current.appUnlockType.Add(faceIDUnlockType);
UserInfo.Current.SaveUserInfo();
}
}
else
{
if (UserInfo.Current.appUnlockType.Contains(faceIDUnlockType))
{
UserInfo.Current.appUnlockType.Remove(faceIDUnlockType);
UserInfo.Current.SaveUserInfo();
}
}
};
//跳转数字密码或者手势密码验证页面
Action goToVerifyPasswordAction = () =>
{
//关闭解锁验证
GotogoToVerifyPasswordPage(optionType, successAction);
};
FaceIDVerification_Show(successAction, goToVerifyPasswordAction);
}
///
/// FaceID验证 关闭解锁设置
///
/// 验证成功事件
void FaceIDVerification_TurnOffUnlock(Action successAction)
{
//调整数字密码或者手势密码验证页面
Action goToVerifyPasswordAction = () =>
{
//关闭解锁验证
GotogoToVerifyPasswordPage("4", successAction);
};
FaceIDVerification_Show(successAction, goToVerifyPasswordAction);
}
///
/// 指纹ID统一弹出
///
///
///
///
void TouchIDVerification_Show(Action successAction, Action goToVerifyPasswordAction)
{
//提示数字密码验证还是绘制手势验证
string verificationTitleString = GetVerificationTitleString();
TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
{
if (e == TouchIDUtils.TouchIDState.NotSupport)
{
MainPage.Log("KK:当前设备不支持TouchID验证,请输入密码来验证");
goToVerifyPasswordAction?.Invoke();
}
else if (e == TouchIDUtils.TouchIDState.Success)
{
MainPage.Log("KK:TouchID验证成功");
successAction?.Invoke();
}
else if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
{
MainPage.Log("KK:用户选择手动输入密码");
goToVerifyPasswordAction?.Invoke();
}
};
}
///
/// 指纹ID开启和关闭 5:指纹ID开关
///
void TouchIDVerification_SwtichOnOff()
{
//指纹关闭成功事件 成功事件
Action successAction = () =>
{
var result = btnFingerprintUnlockSwtichIcon.IsSelected = !btnFingerprintUnlockSwtichIcon.IsSelected;
if (result)
{
if (!UserInfo.Current.appUnlockType.Contains("3"))
{
UserInfo.Current.appUnlockType.Add("3");
UserInfo.Current.SaveUserInfo();
}
}
else
{
if (UserInfo.Current.appUnlockType.Contains("3"))
{
UserInfo.Current.appUnlockType.Remove("3");
UserInfo.Current.SaveUserInfo();
}
}
};
//5:指纹ID开关
string optionType = "5";
//跳转数字密码或者手势密码验证页面
Action goToVerifyPasswordAction = () =>
{
//5:指纹ID开关
GotogoToVerifyPasswordPage(optionType, successAction);
};
TouchIDVerification_Show(successAction, goToVerifyPasswordAction);
}
///
/// TouchID验证 4:关闭解锁设置
///
/// 验证成功事件
void TouchIDVerification_TurnOffUnlock(Action successAction)
{
//跳转数字密码或者手势密码验证页面
Action goToVerifyPasswordAction = () =>
{
//4.关闭解锁验证
GotogoToVerifyPasswordPage("4", successAction);
};
TouchIDVerification_Show(successAction, goToVerifyPasswordAction);
}
///
/// 跳转手势或者密码验证界面
///
/// 1:设置密码;2:验证密码;3:关闭密码;4:关闭解锁设置;5:指纹ID开关;6:面容ID开关;7:解锁验证
///
void GotogoToVerifyPasswordPage(string optionType, Action successAction)
{
if (UserInfo.Current.appUnlockType.Contains("1"))
{
var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
MainPage.BasePageView.AddChidren(page);
page.LoadPage(optionType);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
else if (UserInfo.Current.appUnlockType.Contains("2"))
{
var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
MainPage.BasePageView.AddChidren(page);
page.LoadPage(optionType);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
}
///
/// 判断是否数字验证、否则绘制手势验证
///
///
bool CheckIfUnlockPassword()
{
return UserInfo.Current.appUnlockType.Contains("1");
}
///
/// 判断是否数字验证、否则绘制手势验证
///
///
string GetVerificationTitleString()
{
if (CheckIfUnlockPassword())
{
return Language.StringByID(StringId.PasswordVerification);
}
else
{
return Language.StringByID(StringId.GestureVerification);
}
}
}
}