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