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); } } } }