| | |
| | | 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 = ""; |
| | |
| | | public AppUnlockGesturePage(string pw, Action action) |
| | | { |
| | | bodyView = this; |
| | | bodyView.Tag = "unlockpage"; |
| | | oldPasswrod = pw; |
| | | backAction = action; |
| | | } |
| | |
| | | IsBold = true, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.EmphasisFontSize_Secondary, |
| | | TextID = optionType == "7" ? StringId.SetGesturePassword : StringId.VerifyGesturePassword, |
| | | TextID = StringId.VerifyGesturePassword, |
| | | }; |
| | | bodyView.AddChidren(btnTipTitle); |
| | | |
| | | Button btnTipMsg = new Button() |
| | | btnTipMsg = new Button() |
| | | { |
| | | Y = btnTipTitle.Bottom, |
| | | TextAlignment = TextAlignment.Center, |
| | |
| | | TextColor = CSS_Color.TextualColor, |
| | | SelectedTextColor = CSS_Color.WarningColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | TextID = optionType == "2" ? StringId.DrawUnlockPatternAgain : StringId.DrawUnlockPattern, |
| | | TextID = StringId.DrawUnlockPattern, |
| | | }; |
| | | bodyView.AddChidren(btnTipMsg); |
| | | |
| | | if (optionType == "7") |
| | | if (optionType == "1") |
| | | { |
| | | btnTipTitle.TextID = StringId.DrawUnlockPattern; |
| | | btnTipMsg.TextID = string.IsNullOrEmpty(oldPasswrod) ? StringId.DrawUnlockPattern : StringId.DrawUnlockPatternAgain; |
| | | //设置手势密码 |
| | | btnTipTitle.TextID = StringId.SetGesturePassword; |
| | | }else if(optionType == "2") |
| | | { |
| | | //请输入原手势密码 |
| | | btnTipTitle.TextID = StringId.PleaseDrawTheOriginalGesturePassword; |
| | | } |
| | | |
| | | //if (optionType == "7") |
| | | //{ |
| | | // //请绘制解锁图案 |
| | | // btnTipTitle.TextID = StringId.DrawUnlockPattern; |
| | | //} |
| | | |
| | | |
| | | GestureLockView mGestureLockView = new GestureLockView |
| | | { |
| | |
| | | } |
| | | 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 == "5" || optionType == "6" || optionType == "7") |
| | | |
| | | if (optionType == "7") |
| | | { |
| | | Button btnLoginAccountVerify = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(517), |
| | | Height =Application.GetRealHeight(60), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | TextColor = CSS_Color.MainColor, |
| | | TextID = StringId.EnterLoginPasswordVerification, |
| | | }; |
| | | bodyView.AddChidren(btnLoginAccountVerify); |
| | | |
| | | btnLoginAccountVerify.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (optionType == "7") |
| | | { |
| | | MainPage.GoLoginPage(MainPage.LoginUser); |
| | | } |
| | | else |
| | | { |
| | | Action<string> action = (pw) => { |
| | | var loginResult = new DAL.Server.HttpServerRequest().LoginByPassword(MainPage.LoginUser.accountString, pw); |
| | | if (loginResult.StateCode.ToUpper() == "SUCCESS") |
| | | { |
| | | MainPage.LoginUser.appUnlockPasswrod = ""; |
| | | MainPage.LoginUser.appUnlockType = new System.Collections.Generic.List<string>(); |
| | | MainPage.LoginUser.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 = 1, |
| | | Direction = AMPopTipDirection.None |
| | | }; |
| | | tip.Show(bodyView); |
| | | }); |
| | | } |
| | | |
| | | }; |
| | | new PublicAssmebly().LoadDialog_EditParater(StringId.EnterLoginPasswordVerification, "", action,StringId.PlsEntryPassword,0,new System.Collections.Generic.List<string>(),true); |
| | | } |
| | | }; |
| | | //使用账户密码登录按钮 提示按钮 |
| | | AddLoginTipButton(); |
| | | } |
| | | else if (optionType != "1") |
| | | { |
| | | //输入登录密码验证 提示按钮 |
| | | AddInputPasswordTipButton(optionType); |
| | | } |
| | | |
| | | |
| | | //if (optionType == "5" || optionType == "6" || optionType == "7") |
| | | //{ |
| | | // Button btnLoginAccountVerify = new Button() |
| | | // { |
| | | // Y = Application.GetRealHeight(517), |
| | | // Height = Application.GetRealHeight(60), |
| | | // TextAlignment = TextAlignment.Center, |
| | | // TextSize = CSS_FontSize.TextFontSize, |
| | | // TextColor = CSS_Color.MainColor, |
| | | // TextID = StringId.EnterLoginPasswordVerification, |
| | | // }; |
| | | // bodyView.AddChidren(btnLoginAccountVerify); |
| | | |
| | | // btnLoginAccountVerify.MouseUpEventHandler = (sender, e) => |
| | | // { |
| | | // if (optionType == "7") |
| | | // { |
| | | // MainPage.GoLoginPage(UserInfo.Current); |
| | | // } |
| | | // else |
| | | // { |
| | | // Action<string> action = (pw) => |
| | | // { |
| | | // var resultObj = new HttpServerRequest().LoginByPassword(UserInfo.Current.AccountString, pw); |
| | | // if (resultObj.Code == StateCode.SUCCESS) |
| | | // { |
| | | // UserInfo.Current.appUnlockPasswrod = ""; |
| | | // UserInfo.Current.appUnlockType = new System.Collections.Generic.List<string>(); |
| | | // UserInfo.Current.SaveUserInfo(); |
| | | // this.RemoveFromParent(); |
| | | // backAction(); |
| | | // } |
| | | // else |
| | | // { |
| | | // //登录失败 |
| | | // IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code); |
| | | // } |
| | | |
| | | // }; |
| | | // 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) |
| | | { |
| | | var unlockType = TouchIDUtils.getTouchIDSupperType() == TouchIDUtils.TouchIDSupperType.TouchID ? "3" : "4"; |
| | | |
| | | //如果之前没设置指纹或者面容ID才显示是否开启 |
| | | if (!UserInfo.Current.appUnlockType.Contains(unlockType)) |
| | | { |
| | | Action<bool> action = (result) => |
| | | { |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 使用账户密码登录按钮 提示按钮 |
| | | /// </summary> |
| | | void AddLoginTipButton() |
| | | { |
| | | Button btnLoginAccountVerify = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(517), |
| | | Height = Application.GetRealHeight(60), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | TextColor = CSS_Color.MainColor, |
| | | TextID = StringId.LogWithAccountAndPassword, |
| | | }; |
| | | bodyView.AddChidren(btnLoginAccountVerify); |
| | | |
| | | btnLoginAccountVerify.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | //退出登录 |
| | | HDLCommon.Current.Logout(); |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 输入登录密码验证 提示按钮 |
| | | /// </summary> |
| | | void AddInputPasswordTipButton(string optionType) |
| | | { |
| | | Button btnLoginAccountVerify = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(517), |
| | | Height = Application.GetRealHeight(60), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | TextColor = CSS_Color.MainColor, |
| | | TextID = StringId.EnterLoginPasswordVerification, |
| | | }; |
| | | bodyView.AddChidren(btnLoginAccountVerify); |
| | | |
| | | btnLoginAccountVerify.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | //输入登录密码验证 |
| | | Action<string> action = (pw) => |
| | | { |
| | | AuthenticationByLoginPassword(pw, optionType); |
| | | //var resultObj = new HttpServerRequest().LoginByPassword(UserInfo.Current.AccountString, pw); |
| | | //if (resultObj.Code == StateCode.SUCCESS) |
| | | //{ |
| | | // PasswordInputPassed(optionType); |
| | | //} |
| | | //else |
| | | //{ |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // Utlis.ShowTip(Language.StringByID(StringId.AuthenticationFailedPasswordError)); |
| | | // }); |
| | | //} |
| | | |
| | | }; |
| | | new PublicAssmebly().LoadDialog_EditParater(StringId.EnterLoginPasswordVerification, "", action, StringId.PlsEntryPassword, 0, new System.Collections.Generic.List<string>(), true); |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 登录密码验证 |
| | | /// </summary> |
| | | /// <param name="pw"></param> |
| | | /// <param name="optionType"></param> |
| | | void AuthenticationByLoginPassword(string pw, string optionType) |
| | | { |
| | | var waitPage = new Loading(); |
| | | bodyView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | var resultObj = new HttpServerRequest().LoginByPassword(UserInfo.Current.AccountString, pw); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (resultObj.Code == StateCode.SUCCESS) |
| | | { |
| | | PasswordInputPassed(optionType); |
| | | } |
| | | else |
| | | { |
| | | Utlis.ShowTip(Language.StringByID(StringId.AuthenticationFailedPasswordError)); |
| | | } |
| | | }); |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.RemoveFromParent(); |
| | | waitPage = null; |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | } |
| | | } |