wei
2021-08-27 eda3fb873e59544ff36301b51e05aef64f87b0f9
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockSettingsPageBLL.cs
@@ -32,8 +32,10 @@
                {
                    btnUnprotectedBg.IsSelected = btnUnprotectedSelectionIcon.IsSelected = btnUnprotectedSelectionTip.IsSelected = true;
                    btnStartupBg.IsSelected = btnStartupSelectionIcon.IsSelected = btnStartupSelectionTip.IsSelected = false;
                    btnSecurityBg.IsSelected = btnSecuritySelectionIcon.IsSelected = btnSecuritySelectionTip.IsSelected = false;
                    #region F3阶段
                    //btnSecurityBg.IsSelected = btnSecuritySelectionIcon.IsSelected = btnSecuritySelectionTip.IsSelected = false;
                    btnDoorlockBg.IsSelected = btnDoorlockSelectionIcon.IsSelected = btnDoorlockSelectionTip.IsSelected = false;
                    #endregion
                    btnTipMsg.TextID = StringId.UnprotectedTipMsg;
@@ -44,48 +46,19 @@
                    unlockOptionView.Visible = false;
                    refreshAction();
                };
                Action action1 = () => {
                Action action1 = () =>
                {
                    if (!btnUnprotectedBg.IsSelected)
                    {
                        //1:验证指纹
                        if (UserInfo.Current.appUnlockType.Contains("3"))
                        {
                            TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
                            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
                            {
                                if (e == TouchIDUtils.TouchIDState.NotSupport)
                                {
                                    MainPage.Log("KK:当前设备不支持TouchID验证,请输入密码来验证");
                                }
                                else if (e == TouchIDUtils.TouchIDState.Success)
                                {
                                    MainPage.Log("KK:TouchID验证成功");
                                    action();
                                }
                                else if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
                                {
                                    MainPage.Log("KK:用户选择手动输入密码");
                                    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("1"))
                                    {
                                        var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
                                        MainPage.BasePageView.AddChidren(page);
                                        page.LoadPage("4");
                                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                                    }
                                }
                            };
                            TouchIDVerification_TurnOffUnlock(action);
                        }
                        else if (UserInfo.Current.appUnlockType.Contains("4"))
                        {
                            //Face ID验证
                            //
                            FaceIDVerification_TurnOffUnlock(action);
                        }
                        else if (UserInfo.Current.appUnlockType.Contains("1"))
                        {
@@ -160,50 +133,48 @@
            btnStartupSelectionIcon.MouseUpEventHandler = eventHandler2;
            btnStartupSelectionTip.MouseUpEventHandler = eventHandler2;
            EventHandler<MouseEventArgs> 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;
            #region F3阶段
            //EventHandler<MouseEventArgs> 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<MouseEventArgs> eventHandler4 = (sender, e) =>
            {
@@ -248,6 +219,7 @@
            btnDoorlockBg.MouseUpEventHandler = eventHandler4;
            btnDoorlockSelectionIcon.MouseUpEventHandler = eventHandler4;
            btnDoorlockSelectionTip.MouseUpEventHandler = eventHandler4;
            #endregion
        }
        /// <summary>
@@ -266,16 +238,18 @@
                    btnStartupBg.IsSelected = btnStartupSelectionIcon.IsSelected = btnStartupSelectionTip.IsSelected = true;
                    btnTipMsg.Text = Language.StringByID(StringId.AtStartupTipMsg);
                }
                if (UserInfo.Current.appUnlockPage.Contains("2"))
                {
                    btnSecurityBg.IsSelected = btnSecuritySelectionIcon.IsSelected = btnSecuritySelectionTip.IsSelected = true;
                    btnTipMsg.Text = Language.StringByID(StringId.DefenseAndUndefenseTipMsg);
                }
                #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
            }
        }
@@ -319,64 +293,14 @@
            {
                btnFingerprintUnlockSwtichIcon.MouseUpEventHandler = (sender, e1) =>
                {
                    Action fingerAction = () => {
                        TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
                    };
                    new AppUnlockPage().LoadGesturePage("5",fingerAction);
                    TouchIDUtils.Instance.showTouchIDWithDescribe(null, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
                    TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
                    {
                        if (e == TouchIDUtils.TouchIDState.Success)
                        {
                            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();
                                }
                            }
                            //MainPage.BasePageView.RemoveAt(MainPage.BasePageView.ChildrenCount - 1);
                            MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                        }
                        else// if (e == TouchIDUtils.TouchIDState.InputPassword || e == TouchIDUtils.TouchIDState.TouchIDLockout)
                        {
                            if (UserInfo.Current.appUnlockType.Contains("1"))
                            {
                                var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, refreshAction);
                                MainPage.BasePageView.AddChidren(page);
                                page.LoadPage("5");
                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            }
                            else if (UserInfo.Current.appUnlockType.Contains("2"))
                            {
                                var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, refreshAction);
                                MainPage.BasePageView.AddChidren(page);
                                page.LoadPage("5");
                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            }
                        }
                    };
                    TouchIDVerification_SwtichOnOff();
                };
            }
            if (sFaceID)
            {
                btnFaceIdUnlockSwtichIcon.MouseUpEventHandler = (sender, e1) =>
                {
                    //btnFaceIdUnlockSwtichIcon.IsSelected = !btnFaceIdUnlockSwtichIcon.IsSelected;
                    if (!btnFaceIdUnlockSwtichIcon.IsSelected)
                    { }
                    FaceIDVerification_SwtichOnOff();
                };
            }
        }
@@ -396,5 +320,232 @@
            return true;
        }
        /// <summary>
        /// 面容ID验证弹窗
        /// </summary>
        /// <param name="successAction"></param>
        /// <param name="goToVerifyPasswordAction"></param>
        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();
                }
            };
        }
        /// <summary>
        /// 面容ID开启和关闭
        /// </summary>
        /// <param name="successAction">验证成功事件</param>
        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);
        }
        /// <summary>
        /// FaceID验证 关闭解锁设置
        /// </summary>
        /// <param name="action">验证成功事件</param>
        void FaceIDVerification_TurnOffUnlock(Action successAction)
        {
            //调整数字密码或者手势密码验证页面
            Action goToVerifyPasswordAction = () =>
            {
                //关闭解锁验证
                GotogoToVerifyPasswordPage("4", successAction);
            };
            FaceIDVerification_Show(successAction, goToVerifyPasswordAction);
        }
        /// <summary>
        /// 指纹ID统一弹出
        /// </summary>
        /// <param name="optionType"></param>
        /// <param name="successAction"></param>
        /// <param name="goToVerifyPasswordAction"></param>
        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();
                }
            };
        }
        /// <summary>
        /// 指纹ID开启和关闭 5:指纹ID开关
        /// </summary>
        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);
        }
        /// <summary>
        /// TouchID验证 4:关闭解锁设置
        /// </summary>
        /// <param name="action">验证成功事件</param>
        void TouchIDVerification_TurnOffUnlock(Action successAction)
        {
            //跳转数字密码或者手势密码验证页面
            Action goToVerifyPasswordAction = () =>
            {
                //4.关闭解锁验证
                GotogoToVerifyPasswordPage("4", successAction);
            };
            TouchIDVerification_Show(successAction, goToVerifyPasswordAction);
        }
        /// <summary>
        /// 跳转手势或者密码验证界面
        /// </summary>
        /// <param name="optionType">1:设置密码;2:验证密码;3:关闭密码;4:关闭解锁设置;5:指纹ID开关;6:面容ID开关;7:解锁验证</param>
        /// <param name="successAction"></param>
        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;
            }
        }
        /// <summary>
        /// 判断是否数字验证、否则绘制手势验证
        /// </summary>
        /// <returns></returns>
        bool CheckIfUnlockPassword()
        {
            return UserInfo.Current.appUnlockType.Contains("1");
        }
        /// <summary>
        /// 判断是否数字验证、否则绘制手势验证
        /// </summary>
        /// <returns></returns>
        string GetVerificationTitleString()
        {
            if (CheckIfUnlockPassword())
            {
                return Language.StringByID(StringId.PasswordVerification);
            }
            else
            {
                return Language.StringByID(StringId.GestureVerification);
            }
        }
    }
}