From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 16 四月 2020 17:10:57 +0800 Subject: [PATCH] 请合并代码 --- ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs | 282 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 282 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs new file mode 100755 index 0000000..9036ecd --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs @@ -0,0 +1,282 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Phone.UserCenter.Password +{ + /// <summary> + /// 缂栬緫浜屾楠岃瘉鐨勬墜鍔块獙璇佺晫闈� + /// </summary> + public class EditorGesturePasswordForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 褰撳墠鐣岄潰妯″紡 + /// </summary> + private FormMode formMode = FormMode.A鏂板缓瀵嗙爜; + /// <summary> + /// 绗竴娆″瘑鐮� + /// </summary> + private string firstPssword = string.Empty; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + public void ShowForm() + { + //鐣岄潰鍙冲垝涓嶅彲 + this.ScrollEnabled = false; + + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uGestureAuthentication)); + + if (string.IsNullOrEmpty(UserCenterResourse.AccountOption.GestureAuthentication) == false) + { + formMode = FormMode.A楠岃瘉鍓嶅洖瀵嗙爜; + } + + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); + + string titleText = string.Empty; + if (formMode == FormMode.A鏂板缓瀵嗙爜) + { + //璇疯緭鍏ユ柊鎵嬪娍 + titleText = Language.StringByID(R.MyInternationalizationString.uPleaseInputNewGesture); + } + else if (formMode == FormMode.A楠岃瘉鍓嶅洖瀵嗙爜) + { + //璇疯緭鍏ユ墜鍔� + titleText = Language.StringByID(R.MyInternationalizationString.uPleaseInputGesture); + } + else if (formMode == FormMode.A纭鏂板缓瀵嗙爜 + || formMode == FormMode.A纭淇敼瀵嗙爜) + { + //璇峰啀娆¤緭鍏ユ墜鍔� + titleText = Language.StringByID(R.MyInternationalizationString.uPleaseConfirmPswAgain); + } + else if (formMode == FormMode.A淇敼瀵嗙爜) + { + //鏇存敼鎵嬪娍锛岃杈撳叆鎵嬪娍 + titleText = Language.StringByID(R.MyInternationalizationString.uEditorGesturePleaseInputNewGesture); + } + + //鎵嬪娍鎺т欢 + var pswControl = new PswGestureInputControl(titleText); + pswControl.Y = Application.GetRealHeight(173); + pswControl.Gravity = Gravity.CenterHorizontal; + bodyFrameLayout.AddChidren(pswControl); + pswControl.InitControl(); + pswControl.FinishInputEvent += (password, pswleng) => + { + //鏍¢獙瀵嗙爜 + this.DoAdjustPssword(password, pswleng, pswControl); + }; + + if (formMode == FormMode.A楠岃瘉鍓嶅洖瀵嗙爜) + { + //蹇樿鎵嬪娍锛� + var btnForgotPsw = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(49), false); + btnForgotPsw.Y = Application.GetRealHeight(1492); + btnForgotPsw.TextSize = 12; + btnForgotPsw.TextColor = UserCenterColor.Current.TextOrangeColor; + btnForgotPsw.TextID = R.MyInternationalizationString.ForgotPasswordMsg; + btnForgotPsw.TextAlignment = TextAlignment.Center; + bodyFrameLayout.AddChidren(btnForgotPsw); + btnForgotPsw.ButtonClickEvent += (sender, e) => + { + var form = new ForgotSecondaryPasswordForm(); + form.AddForm(); + }; + //搴曠嚎 + int lineWidth = btnForgotPsw.GetRealWidthByText(); + var btnLine = new NormalViewControl(lineWidth, ControlCommonResourse.BottomLineHeight, false); + btnLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor; + btnLine.Gravity = Gravity.CenterHorizontal; + btnLine.Y = btnForgotPsw.Bottom - Application.GetRealHeight(8); + bodyFrameLayout.AddChidren(btnLine); + } + } + + #endregion + + #region 鈻� 鏍¢獙瀵嗙爜___________________________ + + /// <summary> + /// 鏍¢獙瀵嗙爜 + /// </summary> + /// <param name="i_Psw"></param> + /// <param name="pswLength"></param> + /// <param name="pswControl"></param> + private void DoAdjustPssword(string i_Psw, int pswLength, PswGestureInputControl pswControl) + { + if (formMode == FormMode.A鏂板缓瀵嗙爜) + { + if (pswLength <= 4) + { + //鎵嬪娍瀵嗙爜闀垮害蹇呴』澶т簬4 + string msg = Language.StringByID(R.MyInternationalizationString.uGesturePswLenthError).Replace("{0}", "4"); + pswControl.SetErrorMsg(msg); + return; + } + //杈撳叆浜屾瀵嗙爜 + this.firstPssword = i_Psw; + formMode = FormMode.A纭鏂板缓瀵嗙爜; + this.InitMiddleFrame(); + } + else if (formMode == FormMode.A纭鏂板缓瀵嗙爜) + { + if (this.firstPssword != i_Psw) + { + //纭鎵嬪娍閿欒锛岃閲嶆柊璁剧疆 + pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uGestureNotEqual)); + return; + } + //淇濆瓨瀵嗙爜 + this.SaveSecondaryPassword(pswControl, i_Psw); + } + else if (formMode == FormMode.A楠岃瘉鍓嶅洖瀵嗙爜) + { + if (UserCenterResourse.AccountOption.GestureAuthentication != i_Psw) + { + UserCenterResourse.AccountOption.PasswordGestureInputCount--; + if (UserCenterResourse.AccountOption.PasswordGestureInputCount <= 0) + { + //绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰� + string msg2 = Language.StringByID(R.MyInternationalizationString.uCheckAdministratorFailAndReload); + this.ShowMassage(ShowMsgType.Tip, msg2); + UserCenterLogic.ReLoginAgain(Common.Config.Instance.Account); + return; + } + //鎵嬪娍閿欒锛岃閲嶆柊杈撳叆 + pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uOldGestureIsError)); + return; + } + //閲嶇疆鍓╀綑瀵嗙爜娆℃暟 + UserCenterResourse.AccountOption.ResetPasswordCount(); + + formMode = FormMode.A淇敼瀵嗙爜; + this.InitMiddleFrame(); + } + else if (formMode == FormMode.A淇敼瀵嗙爜) + { + if (i_Psw == UserCenterResourse.AccountOption.GestureAuthentication) + { + //鏂板瘑鐮佸拰鍘熷瘑鐮佷竴鑷达紝璇烽噸鏂拌緭鍏� + pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uNewPswAndOldPswIsEqual)); + return; + } + if (pswLength <= 4) + { + //鎵嬪娍瀵嗙爜闀垮害蹇呴』澶т簬4 + string msg = Language.StringByID(R.MyInternationalizationString.uGesturePswLenthError).Replace("{0}", "4"); + pswControl.SetErrorMsg(msg); + return; + } + //杈撳叆浜屾瀵嗙爜 + this.firstPssword = i_Psw; + formMode = FormMode.A纭淇敼瀵嗙爜; + this.InitMiddleFrame(); + } + else if (formMode == FormMode.A纭淇敼瀵嗙爜) + { + if (this.firstPssword != i_Psw) + { + //纭鎵嬪娍閿欒锛岃閲嶆柊璁剧疆 + pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uGestureNotEqual)); + return; + } + //淇濆瓨瀵嗙爜 + this.SaveSecondaryPassword(pswControl, i_Psw); + } + } + + #endregion + + #region 鈻� 澶栭儴鎸囧畾妯″紡_______________________ + + /// <summary> + /// 寮哄埗鎸囧畾鏂板瘑鐮佹ā寮�(鐢卞閮ㄨ皟鐢�) + /// </summary> + public void SetNewPasswordFormMode() + { + formMode = FormMode.A鏂板缓瀵嗙爜; + this.InitMiddleFrame(); + } + + #endregion + + #region 鈻� 淇濆瓨瀵嗙爜___________________________ + + /// <summary> + /// 淇濆瓨瀵嗙爜 + /// </summary> + /// <param name="contr">鎺т欢</param> + /// <param name="psw">瀵嗙爜</param> + private void SaveSecondaryPassword(PswGestureInputControl contr, string psw) + { + HdlThreadLogic.Current.RunThread(async () => + { + //鎵撳紑杩涘害鏉� + this.ShowProgressBar(); + var pra = new + { + RequestVersion = Common.CommonPage.RequestVersion, + LoginAccessToken = Common.Config.Instance.Token, + GesturePwd = psw, + StringPwd = UserCenterResourse.AccountOption.PswAuthentication + }; + var result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/UpdatEexpandPwd", false, pra); + //鍏抽棴杩涘害鏉� + this.CloseProgressBar(); + + HdlThreadLogic.Current.RunMain(() => + { + if (result == false) + { + contr.SetErrorMsg(string.Empty); + } + else + { + UserCenterResourse.AccountOption.GestureAuthentication = psw; + UserCenterResourse.AccountOption.Save(); + //鐣岄潰鍏抽棴 + this.CloseForm(); + } + }); + }); + } + + #endregion + + #region 鈻� 缁撴瀯浣揰____________________________ + + /// <summary> + /// 鐣岄潰妯″紡 + /// </summary> + private enum FormMode + { + A鏂板缓瀵嗙爜 = 1, + A纭鏂板缓瀵嗙爜 = 2, + A楠岃瘉鍓嶅洖瀵嗙爜 = 3, + A淇敼瀵嗙爜 = 4, + A纭淇敼瀵嗙爜 = 5 + } + + #endregion + } +} -- Gitblit v1.8.0