wei
2020-12-12 73cd2b147d98acb3a945b7b5daad39103fd4377d
HDL_ON/UI/UI2/4-PersonalCenter/UnlockSetting/AppUnlockGesturePage.cs
@@ -1,11 +1,23 @@
using System;
using HDL_ON.UI.CSS;
using Shared;
using HDL_ON.DAL.Server;
namespace HDL_ON.UI
{
    /// <summary>
    /// 手势解锁
    /// </summary>
    public class AppUnlockGesturePage : FrameLayout
    {
        /// <summary>
        ///
        /// </summary>
        FrameLayout bodyView;
        /// <summary>
        /// 错误提示按钮
        /// </summary>
        Button btnTipMsg;
        string passwrod = "";
        string oldPasswrod = "";
@@ -58,7 +70,7 @@
            };
            bodyView.AddChidren(btnTipTitle);
            Button btnTipMsg = new Button()
            btnTipMsg = new Button()
            {
                Y = btnTipTitle.Bottom,
                TextAlignment = TextAlignment.Center,
@@ -112,150 +124,161 @@
                }
                else
                {
                    if (optionType == "2")
                    {
                        //移除当前界面,每次返回都返回到最上级
                        this.RemoveFromParent();
                        var page = new AppUnlockGesturePage("", backAction);
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage("1");
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        return;
                    }
                    if(optionType == "7")
                    {
                        if (passwrod == oldPasswrod)
                        {
                            this.RemoveFromParent();
                            backAction();
                        }
                        else
                        {
                            btnTipMsg.TextID = StringId.AuthenticationFailedGestureError;
                            btnTipMsg.IsSelected = true;
                            btnTipMsg.Visible = true;
                        }
                        return;
                    }
                    if (optionType == "3" || optionType == "4")
                    {
                        if (passwrod == oldPasswrod)
                        {
                            if (optionType == "4")
                            {
                                backAction();
                                this.RemoveFromParent();
                                return;
                            }
                            if (MainPage.LoginUser.appUnlockType.Contains("2"))
                            {
                                MainPage.LoginUser.appUnlockType = new System.Collections.Generic.List<string>();
                                MainPage.LoginUser.appUnlockPasswrod = "";
                                MainPage.LoginUser.SaveUserInfo();
                                this.RemoveFromParent();
                                backAction();
                            }
                        }
                        else
                        {
                            btnTipMsg.TextID = StringId.AuthenticationFailedGestureError;
                            btnTipMsg.IsSelected = true;
                            btnTipMsg.Visible = true;
                        }
                        return;
                    }
                    if (optionType == "5" || optionType == "6"|| optionType == "8" || optionType == "9")
                    {
                        if (passwrod == oldPasswrod)
                        {
                            if (optionType == "5" )//&& MainPage.LoginUser.appUnlockType.Contains("3"))
                            {
                                if (MainPage.LoginUser.appUnlockType.Contains("3"))
                                    MainPage.LoginUser.appUnlockType.Remove("3");
                                else
                                    MainPage.LoginUser.appUnlockType.Add("3");
                                MainPage.LoginUser.SaveUserInfo();
                                this.RemoveFromParent();
                            }
                            if ( optionType == "6")
                            {
                                if (MainPage.LoginUser.appUnlockType.Contains("4"))
                                    MainPage.LoginUser.appUnlockType.Remove("4");
                                else
                                    MainPage.LoginUser.appUnlockType.Add("4");
                                MainPage.LoginUser.SaveUserInfo();
                                this.RemoveFromParent();
                            }
                            if (optionType == "8" && !MainPage.LoginUser.appUnlockType.Contains("3"))
                            {
                                MainPage.LoginUser.appUnlockType.Add("3");
                                MainPage.LoginUser.SaveUserInfo();
                                this.RemoveFromParent();
                            }
                            if (!MainPage.LoginUser.appUnlockType.Contains("4") && optionType == "9")
                            {
                                MainPage.LoginUser.appUnlockType.Remove("4");
                                MainPage.LoginUser.SaveUserInfo();
                                this.RemoveFromParent();
                            }
                            backAction();
                        }
                        else
                        {
                            btnTipMsg.TextID = StringId.AuthenticationFailedGestureError;
                            btnTipMsg.IsSelected = true;
                            btnTipMsg.Visible = true;
                        }
                        return;
                    }
                    //2020-12-11 密码校验
                    if (passwrod == oldPasswrod)
                    {
                        this.RemoveFromParent();
                        var page = new OperationResultDisPalyPage();
                        page.Show();
                        page.LoadPage(true, Language.StringByID(StringId.SetSuccessfully), Language.StringByID(StringId.SetSuccessfully), "");
                        //page.LoadPage(true, Language.StringByID(StringId.SetSuccessfully), Language.StringByID(StringId.SetSuccessfully), "");
                        string tipMsg = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? Language.StringByID(StringId.TurnOnFingerprintUnlocking) :
                                        Language.StringByID(StringId.TurnOnFaceIdUnlocking);
                        if (TouchIDUtils.getTouchIDSupperType() != TouchIDUtils.TouchIDSupperType.None)
                        {
                            Action<bool> action = (result) =>
                            {
                                var unlockType = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? "3" : "4";
                                if (result)
                                {
                                    if (!MainPage.LoginUser.appUnlockType.Contains(unlockType))
                                    {
                                        MainPage.LoginUser.appUnlockType.Add(unlockType);
                                    }
                                }
                                else
                                {
                                    if (MainPage.LoginUser.appUnlockType.Contains(unlockType))
                                    {
                                        MainPage.LoginUser.appUnlockType.Remove(unlockType);
                                    }
                                }
                                MainPage.LoginUser.SaveUserInfo();
                                backAction();
                            };
                            page.AdditionalOperations(tipMsg, action);
                        }
                        if (!MainPage.LoginUser.appUnlockType.Contains("2"))
                        {
                            MainPage.LoginUser.appUnlockType.Add("2");
                        }
                        MainPage.LoginUser.appUnlockPasswrod = passwrod;
                        MainPage.LoginUser.SaveUserInfo();
                        backAction();
                        //密码验证通过
                        PasswordInputPassed(optionType);
                    }
                    else
                    {
                        btnTipMsg.Text = Language.StringByID(StringId.DrawingInconsistencyError);
                        btnTipMsg.IsSelected = true;
                        //密码验证失败
                        PasswordInputError(optionType);
                    }
                    //if (optionType == "2")
                    //{
                    //    //移除当前界面,每次返回都返回到最上级
                    //    this.RemoveFromParent();
                    //    var page = new AppUnlockGesturePage("", backAction);
                    //    MainPage.BasePageView.AddChidren(page);
                    //    page.LoadPage("1");
                    //    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    //    return;
                    //}
                    //if(optionType == "7")
                    //{
                    //    if (passwrod == oldPasswrod)
                    //    {
                    //        this.RemoveFromParent();
                    //        backAction();
                    //    }
                    //    else
                    //    {
                    //        btnTipMsg.TextID = StringId.AuthenticationFailedGestureError;
                    //        btnTipMsg.IsSelected = true;
                    //        btnTipMsg.Visible = true;
                    //    }
                    //    return;
                    //}
                    //if (optionType == "3" || optionType == "4")
                    //{
                    //    if (passwrod == oldPasswrod)
                    //    {
                    //        if (optionType == "4")
                    //        {
                    //            backAction();
                    //            this.RemoveFromParent();
                    //            return;
                    //        }
                    //        if (UserInfo.Current.appUnlockType.Contains("2"))
                    //        {
                    //            UserInfo.Current.appUnlockType = new System.Collections.Generic.List<string>();
                    //            UserInfo.Current.appUnlockPasswrod = "";
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //            backAction();
                    //        }
                    //    }
                    //    else
                    //    {
                    //        btnTipMsg.TextID = StringId.AuthenticationFailedGestureError;
                    //        btnTipMsg.IsSelected = true;
                    //        btnTipMsg.Visible = true;
                    //    }
                    //    return;
                    //}
                    //if (optionType == "5" || optionType == "6"|| optionType == "8" || optionType == "9")
                    //{
                    //    if (passwrod == oldPasswrod)
                    //    {
                    //        if (optionType == "5" )//&& UserInfo.Current.appUnlockType.Contains("3"))
                    //        {
                    //            if (UserInfo.Current.appUnlockType.Contains("3"))
                    //                UserInfo.Current.appUnlockType.Remove("3");
                    //            else
                    //                UserInfo.Current.appUnlockType.Add("3");
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //        }
                    //        if ( optionType == "6")
                    //        {
                    //            if (UserInfo.Current.appUnlockType.Contains("4"))
                    //                UserInfo.Current.appUnlockType.Remove("4");
                    //            else
                    //                UserInfo.Current.appUnlockType.Add("4");
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //        }
                    //        if (optionType == "8" && !UserInfo.Current.appUnlockType.Contains("3"))
                    //        {
                    //            UserInfo.Current.appUnlockType.Add("3");
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //        }
                    //        if (!UserInfo.Current.appUnlockType.Contains("4") && optionType == "9")
                    //        {
                    //            UserInfo.Current.appUnlockType.Remove("4");
                    //            UserInfo.Current.SaveUserInfo();
                    //            this.RemoveFromParent();
                    //        }
                    //        backAction();
                    //    }
                    //    else
                    //    {
                    //        btnTipMsg.TextID = StringId.AuthenticationFailedGestureError;
                    //        btnTipMsg.IsSelected = true;
                    //        btnTipMsg.Visible = true;
                    //    }
                    //    return;
                    //}
                    //if (passwrod == oldPasswrod)
                    //{
                    //    this.RemoveFromParent();
                    //    var page = new OperationResultDisPalyPage();
                    //    page.Show();
                    //    page.LoadPage(true, Language.StringByID(StringId.SetSuccessfully), Language.StringByID(StringId.SetSuccessfully), "");
                    //    //page.LoadPage(true, Language.StringByID(StringId.SetSuccessfully), Language.StringByID(StringId.SetSuccessfully), "");
                    //    string tipMsg = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? Language.StringByID(StringId.TurnOnFingerprintUnlocking) :
                    //                    Language.StringByID(StringId.TurnOnFaceIdUnlocking);
                    //    if (TouchIDUtils.getTouchIDSupperType() != TouchIDUtils.TouchIDSupperType.None)
                    //    {
                    //        Action<bool> action = (result) =>
                    //        {
                    //            var unlockType = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? "3" : "4";
                    //            if (result)
                    //            {
                    //                if (!UserInfo.Current.appUnlockType.Contains(unlockType))
                    //                {
                    //                    UserInfo.Current.appUnlockType.Add(unlockType);
                    //                }
                    //            }
                    //            else
                    //            {
                    //                if (UserInfo.Current.appUnlockType.Contains(unlockType))
                    //                {
                    //                    UserInfo.Current.appUnlockType.Remove(unlockType);
                    //                }
                    //            }
                    //            UserInfo.Current.SaveUserInfo();
                    //            backAction();
                    //        };
                    //        page.AdditionalOperations(tipMsg, action);
                    //    }
                    //    if (!UserInfo.Current.appUnlockType.Contains("2"))
                    //    {
                    //        UserInfo.Current.appUnlockType.Add("2");
                    //    }
                    //    UserInfo.Current.appUnlockPasswrod = passwrod;
                    //    UserInfo.Current.SaveUserInfo();
                    //    backAction();
                    //}
                    //else
                    //{
                    //    btnTipMsg.Text = Language.StringByID(StringId.DrawingInconsistencyError);
                    //    btnTipMsg.IsSelected = true;
                    //}
                }
            };
@@ -265,7 +288,7 @@
                Button btnLoginAccountVerify = new Button()
                {
                    Y = Application.GetRealHeight(517),
                    Height  =Application.GetRealHeight(60),
                    Height = Application.GetRealHeight(60),
                    TextAlignment = TextAlignment.Center,
                    TextSize = CSS_FontSize.TextFontSize,
                    TextColor = CSS_Color.MainColor,
@@ -277,61 +300,166 @@
                {
                    if (optionType == "7")
                    {
                        MainPage.GoLoginPage(MainPage.LoginUser.accountString);
                        MainPage.GoLoginPage(UserInfo.Current);
                    }
                    else
                    {
                        Action<string> action = (pw) => {
                            var loginResult = new DAL.Server.HttpServerRequest().LoginByPassword(MainPage.LoginUser.accountString, pw);
                            if (loginResult.StateCode.ToUpper() == "SUCCESS")
                        Action<string> action = (pw) =>
                        {
                            var resultObj = new HttpServerRequest().LoginByPassword(UserInfo.Current.AccountString, pw);
                            if (resultObj.Code == StateCode.SUCCESS)
                            {
                                MainPage.LoginUser.appUnlockPasswrod = "";
                                MainPage.LoginUser.appUnlockType = new System.Collections.Generic.List<string>();
                                MainPage.LoginUser.SaveUserInfo();
                                UserInfo.Current.appUnlockPasswrod = "";
                                UserInfo.Current.appUnlockType = new System.Collections.Generic.List<string>();
                                UserInfo.Current.SaveUserInfo();
                                this.RemoveFromParent();
                                backAction();
                            }
                            //登录失败
                            else
                            {
                                string tipStr = "Sever erorr";
                                switch (loginResult.StateCode)
                                {
                                    case "ValidCodeAndPhoneNoEqual":
                                        tipStr = Language.StringByID(StringId.VerificationCodeError);
                                        break;
                                    case "USERNAMEORPWDERROR":
                                        tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError);
                                        break;
                                    case "ACCOUNTNOEXISTS":
                                        tipStr = Language.StringByID(StringId.ACCOUNTNOEXISTS);
                                        break;
                                    case "NoRecord":
                                        tipStr = Language.StringByID(StringId.PlsGetTheVerificationCode);
                                        break;
                                    case "Self:Net_Error":
                                        tipStr = Language.StringByID(StringId.NetworkAnomaly);
                                        break;
                                }
                                //账号或者密码错误
                                Application.RunOnMainThread(() =>
                                {
                                    //提示原因
                                    var tip = new Tip()
                                    {
                                        Text = tipStr,
                                        CloseTime = 3,
                                        Direction = AMPopTipDirection.None
                                    };
                                    tip.Show(bodyView);
                                });
                                //登录失败
                                IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                            }
                        };
                        new PublicAssmebly().LoadDialog_EditParater(StringId.EnterLoginPasswordVerification, "", action,StringId.PlsEntryPassword,0,new System.Collections.Generic.List<string>(),true);
                        new PublicAssmebly().LoadDialog_EditParater(StringId.EnterLoginPasswordVerification, "", action, StringId.PlsEntryPassword, 0, new System.Collections.Generic.List<string>(), true);
                    }
                };
            }
        }
        /// <summary>
        /// 手势密码输入错误显示错误信息
        /// </summary>
        /// <param name="optionType">1:设置密码;2:验证密码;3:关闭密码;4:关闭解锁设置;5:指纹ID开关;6:面容ID开关;7:解锁验证</param>
        void PasswordInputError(string optionType)
        {
            int errorTextID = 0;
            if (optionType == "1")
            {
                //2次绘制点图案不一致,请重新绘制
                errorTextID = StringId.DrawingInconsistencyError;
            }
            else
            {
                //验证失败,密码错误.
                errorTextID = StringId.AuthenticationFailedPasswordError;
            }
            btnTipMsg.TextID = errorTextID;
            btnTipMsg.IsSelected = true;
            btnTipMsg.Visible = true;
        }
        /// <summary>
        /// 手势密码验证通过后的操作
        /// </summary>
        /// <param name="optionType">1:设置密码;2:验证密码;3:关闭密码;4:关闭解锁设置;5:指纹ID开关;6:面容ID开关;7:解锁验证</param>
        void PasswordInputPassed(string optionType)
        {
            if (optionType == "1")
            {
                //设置密码 验证通过
                this.RemoveFromParent();
                var page = new OperationResultDisPalyPage();
                page.Show();
                page.LoadPage(true, Language.StringByID(StringId.SetSuccessfully), Language.StringByID(StringId.SetSuccessfully), "");
                //page.LoadPage(true, Language.StringByID(StringId.SetSuccessfully), Language.StringByID(StringId.SetSuccessfully), "");
                string tipMsg = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? Language.StringByID(StringId.TurnOnFingerprintUnlocking) :
                                Language.StringByID(StringId.TurnOnFaceIdUnlocking);
                if (TouchIDUtils.getTouchIDSupperType() != TouchIDUtils.TouchIDSupperType.None)
                {
                    Action<bool> action = (result) =>
                    {
                        var unlockType = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? "3" : "4";
                        if (result)
                        {
                            if (!UserInfo.Current.appUnlockType.Contains(unlockType))
                            {
                                UserInfo.Current.appUnlockType.Add(unlockType);
                            }
                        }
                        else
                        {
                            if (UserInfo.Current.appUnlockType.Contains(unlockType))
                            {
                                UserInfo.Current.appUnlockType.Remove(unlockType);
                            }
                        }
                        UserInfo.Current.SaveUserInfo();
                        backAction();
                    };
                    page.AdditionalOperations(tipMsg, action);
                }
                if (!UserInfo.Current.appUnlockType.Contains("2"))
                {
                    UserInfo.Current.appUnlockType.Add("2");
                }
                UserInfo.Current.appUnlockPasswrod = passwrod;
                UserInfo.Current.SaveUserInfo();
                backAction();
            }
            else if (optionType == "2")
            {
                //验证密码通过
                //移除当前界面,每次返回都返回到最上级
                this.RemoveFromParent();
                var page = new AppUnlockGesturePage("", backAction);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage("1");
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            }
            else if (optionType == "3" || optionType == "4")
            {
                //3:关闭密码;4:关闭解锁设置 通过
                if (optionType == "4")
                {
                    backAction();
                    this.RemoveFromParent();
                    return;
                }
                if (UserInfo.Current.appUnlockType.Contains("2"))
                {
                    UserInfo.Current.appUnlockType = new System.Collections.Generic.List<string>();
                    UserInfo.Current.appUnlockPasswrod = "";
                    UserInfo.Current.SaveUserInfo();
                    this.RemoveFromParent();
                    backAction();
                }
            }
            else if (optionType == "5")
            {
                //5:指纹ID开关 通过
                if (UserInfo.Current.appUnlockType.Contains("3"))
                    UserInfo.Current.appUnlockType.Remove("3");
                else
                    UserInfo.Current.appUnlockType.Add("3");
                UserInfo.Current.SaveUserInfo();
                this.RemoveFromParent();
                backAction();
            }
            else if (optionType == "6")
            {
                //6:面容ID开关 通过
                if (UserInfo.Current.appUnlockType.Contains("4"))
                    UserInfo.Current.appUnlockType.Remove("4");
                else
                    UserInfo.Current.appUnlockType.Add("4");
                UserInfo.Current.SaveUserInfo();
                this.RemoveFromParent();
            }
            else if (optionType == "7")
            {
                //7:解锁验证 通过
                this.RemoveFromParent();
                backAction();
            }
        }
    }
}