From bba578c2f0acf2eca747edcb69426771e0cadd32 Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期一, 23 三月 2020 18:20:50 +0800 Subject: [PATCH] 2020-03-23-3 --- ZigbeeApp/Shared/Phone/Login/AccountLogin.cs | 329 +++++++++++++++++++++++++++++------------------------- 1 files changed, 177 insertions(+), 152 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs b/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs index 8027fc8..bf17f89 100644 --- a/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs +++ b/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs @@ -28,9 +28,13 @@ /// </summary> private EmailLoginRowForm emailRow; /// <summary> - /// pwdRow + /// phonePwdRow /// </summary> - private PwdLoginRowForm pwdRow; + private PwdLoginRowForm phonePwdRow; + /// <summary> + /// emailPwdRow + /// </summary> + private PwdLoginRowForm emailPwdRow; /// <summary> /// 璐﹀彿瀵嗙爜fl @@ -57,14 +61,6 @@ /// </summary> private Button registerBtn; /// <summary> - /// 璐﹀彿 - /// </summary> - private string account; - /// <summary> - /// 瀵嗙爜 - /// </summary> - private string password; - /// <summary> /// wechat /// </summary> private Button wechatBtn; @@ -72,7 +68,10 @@ /// qq /// </summary> private Button qqBtn; - + /// <summary> + /// 杈撳叆鐨勭櫥闄嗚处鍙�(閲嶆柊鐧婚檰鏃朵娇鐢�) + /// </summary> + private string oldInputAccount = string.Empty; #endregion @@ -110,7 +109,7 @@ } else { - LoginViewShow(account, password); + LoginViewShow(account); } } @@ -118,11 +117,12 @@ /// Logins the view show. /// </summary> /// <param name="account">Account.</param> - /// <param name="password">Password.</param> - public void LoginViewShow(string account = "", string password = "") + public void LoginViewShow(string account = "") { - this.account = account; - this.password = password; + //璁剧疆涓�涓嬪垵濮嬪�� + if (account.Contains("@") == true) { this.oldInputAccount = account; } + else { this.oldInputAccount = account; } + #region midFrameLayout midFrameLayout = new FrameLayout() { @@ -229,8 +229,7 @@ SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor, BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor, Radius = (uint)Application.GetRealHeight(127 / 2), - Enable = !string.IsNullOrEmpty(pwdRow.PasswrodET?.Text), - IsSelected = !string.IsNullOrEmpty(pwdRow.PasswrodET?.Text), + Enable = false, IsBold=true }; midFrameLayout.AddChidren(loginBtn); @@ -286,14 +285,9 @@ BindEvent(); - if (string.IsNullOrEmpty(account) == false && AccountLogic.Instance.CheckEmail(account) == true) + if (account.Contains("@") == true) { SelectPhoneOrEmail_MouseUpEvent(phoneEmailForm.SelectedEmail, null); - this.account = string.Empty; - } - else - { - this.account = string.Empty; } } @@ -336,11 +330,11 @@ { if (phoneEmailForm.SelectedPhone.IsSelected) { - Login(phoneRow.AccountET.Text.Trim(), pwdRow.PasswrodET.Text.Trim()); + Login(phoneRow.AccountET.Text.Trim(), phonePwdRow.PasswrodET.Text.Trim()); } else { - Login(emailRow.AccountET.Text.Trim(), pwdRow.PasswrodET.Text.Trim()); + Login(emailRow.AccountET.Text.Trim(), emailPwdRow.PasswrodET.Text.Trim()); } } @@ -351,124 +345,124 @@ /// <param name="accountStr">Account.</param> /// <param name="passwordStr">Password.</param> private void Login(string accountStr, string passwordStr) - { + { //Application.RunOnMainThread( () => //{ Action action = async () => { try { - if(CheckAccount(accountStr)==false) - { - return; - } - + if(CheckAccount(accountStr)==false) + { + return; + } + CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining)); - var requestObj = new SendDataToServer.LoginObj - { - Account = accountStr, - Password = passwordStr, - Source = CommonPage.Source, - Company = CommonPage.Company - }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj); - var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson)); - if (revertObj == null) - { - CommonPage.Instance.FailureToServer(); - CommonPage.Loading.Hide(); - return; - } - var stateCodeStr = revertObj.StateCode.ToUpper(); - //Error 涓嶈兘鐩存帴浠庢湇鍔″櫒鍙栵紝鍙兘鏍规嵁鐘舵�佺爜閫愪竴鍒ゆ柇 - if (stateCodeStr == "SUCCESS") - { - if (revertObj.ResponseData == null) - { - return; - } - + var requestObj = new SendDataToServer.LoginObj + { + Account = accountStr, + Password = passwordStr, + Source = CommonPage.Source, + Company = CommonPage.Company + }; + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj); + var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson)); + if (revertObj == null) + { + CommonPage.Instance.FailureToServer(); + CommonPage.Loading.Hide(); + return; + } + var stateCodeStr = revertObj.StateCode.ToUpper(); + //Error 涓嶈兘鐩存帴浠庢湇鍔″櫒鍙栵紝鍙兘鏍规嵁鐘舵�佺爜閫愪竴鍒ゆ柇 + if (stateCodeStr == "SUCCESS") + { + if (revertObj.ResponseData == null) + { + return; + } + HomePage.Instance.ShowLoginLoadView(); - new System.Threading.Thread(async () => - { - //瀛樺偍鏁版嵁 - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString()); - var revertData = responseDataObj; - Config.ReFresh(); - Config.Instance.Account = revertData.Account; + new System.Threading.Thread(async () => + { + //瀛樺偍鏁版嵁 + var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString()); + var revertData = responseDataObj; + Config.ReFresh(); + Config.Instance.Account = revertData.Account; Config.Instance.Password = passwordStr; Config.Instance.MD5PWD = revertData.MD5PWD; - Config.Instance.Guid = revertData.Guid; - Config.Instance.LoginDateTime = DateTime.Now; - Config.Instance.LoginToken = revertData.Token; - if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null) - { - Config.Instance.AccountList.Add(revertData.Account); - } - Config.Instance.Save(); - - var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID(); - var homes = await House.GetHomeLists(); - //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ + Config.Instance.Guid = revertData.Guid; + Config.Instance.LoginDateTime = DateTime.Now; + Config.Instance.LoginToken = revertData.Token; + if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null) + { + Config.Instance.AccountList.Add(revertData.Account); + } + Config.Instance.Save(); + + var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID(); + var homes = await House.GetHomeLists(); + //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); //鍚姩ZigBee - ZigBee.Common.Application.Init(); - - UserCenter.HdlRoomLogic.Current.InitAllRoom(); - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - this.RemoveFromParent(); + ZigBee.Common.Application.Init(); + + UserCenter.HdlRoomLogic.Current.InitAllRoom(); + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + this.RemoveFromParent(); CommonPage.Instance.RemoveViewByTag("Login"); - UserPage.Instance.Fresh(); - }); - }) - { IsBackground = true }.Start(); + UserPage.Instance.Fresh(); + }); + }) + { IsBackground = true }.Start(); + } + else if (stateCodeStr == "NOTVERIFY") + { + CommonPage.Loading.Hide(); + //鏈縺娲� + loginErrorBtn.TextID = R.MyInternationalizationString.NOTVERIFY; + } + else if (stateCodeStr == "NOTENABLE") + { + CommonPage.Loading.Hide(); + //璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤 + loginErrorBtn.TextID = R.MyInternationalizationString.NOTENABLE; + } + else if (stateCodeStr == "USERNAMEORPWDERROR") + { + CommonPage.Loading.Hide(); + //璐﹀彿鎴栧瘑鐮侀敊璇� + loginErrorBtn.TextID = R.MyInternationalizationString.USERNAMEORPWDERROR; + } + else if (stateCodeStr == "ACCOUNTNOEXISTS") + { + CommonPage.Loading.Hide(); + //璐﹀彿涓嶅瓨鍦� + loginErrorBtn.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS; + } + else if (stateCodeStr == "YOUDATANOISLOCALREGION") + { + CommonPage.Loading.Hide(); + //涓嶅湪鏈尯鍩燂紝闇�瑕侀噸瀹氬悜鍖哄煙鍚庡啀娆¤姹傜櫥褰� + if (revertObj.ResponseData == null) + { + return; + } + var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString()); + CommonPage.RequestHttpsHost = responseDataObj.RegionServer; + //鍐嶆鐧诲綍 + Login(accountStr, passwordStr); + } + else + { + loginErrorBtn.TextID = R.MyInternationalizationString.RequestServerFailed; } - else if (stateCodeStr == "NOTVERIFY") - { - CommonPage.Loading.Hide(); - //鏈縺娲� - loginErrorBtn.TextID = R.MyInternationalizationString.NOTVERIFY; - } - else if (stateCodeStr == "NOTENABLE") - { - CommonPage.Loading.Hide(); - //璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤 - loginErrorBtn.TextID = R.MyInternationalizationString.NOTENABLE; - } - else if (stateCodeStr == "USERNAMEORPWDERROR") - { - CommonPage.Loading.Hide(); - //璐﹀彿鎴栧瘑鐮侀敊璇� - loginErrorBtn.TextID = R.MyInternationalizationString.USERNAMEORPWDERROR; - } - else if (stateCodeStr == "ACCOUNTNOEXISTS") - { - CommonPage.Loading.Hide(); - //璐﹀彿涓嶅瓨鍦� - loginErrorBtn.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS; - } - else if (stateCodeStr == "YOUDATANOISLOCALREGION") - { - CommonPage.Loading.Hide(); - //涓嶅湪鏈尯鍩燂紝闇�瑕侀噸瀹氬悜鍖哄煙鍚庡啀娆¤姹傜櫥褰� - if (revertObj.ResponseData == null) - { - return; - } - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString()); - CommonPage.RequestHttpsHost = responseDataObj.RegionServer; - //鍐嶆鐧诲綍 - Login(accountStr, passwordStr); - } - else - { - loginErrorBtn.TextID = R.MyInternationalizationString.RequestServerFailed; - } - } + } catch (Exception ex) { System.Console.WriteLine($"鐧诲綍澶辫触--{ex.Message}"); @@ -550,14 +544,14 @@ else { new System.Threading.Thread(async () => - { + { var re = await isBindAuthAsync(authStr); if (re) { - Application.RunOnMainThread(() => + Application.RunOnMainThread(() => { //鐩存帴鐧诲綍 - HomePage.Instance.ShowLoginLoadView(); + HomePage.Instance.ShowLoginLoadView(); }); var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID(); var homes = await House.GetHomeLists(); @@ -738,24 +732,56 @@ /// <param name="phoneOrEmail"></param> private void AddPhoneOrEmailFL(FrameLayout accountPwdFrameLayout,string phoneOrEmail) { - accountPwdFrameLayout.RemoveAll(); - if (phoneOrEmail == "Phone") { + if (phoneRow != null) + { + phoneRow.Visible = true; + phonePwdRow.Visible = true; + if (emailRow != null) + { + emailRow.Visible = false; + emailPwdRow.Visible = false; + } + this.Pwd_TextChange(phonePwdRow); + return; + } phoneRow = new PhoneLoginRowForm(); - phoneRow.Init(accountPwdFrameLayout, this, this.account, 29, 29); - phoneRow.AccountET.TextChangeEventHandler += Account_TextChange; + phoneRow.Init(accountPwdFrameLayout, this, this.oldInputAccount, 29, 29); + phoneRow.AccountET.TextChangeEventHandler += Account_TextChange; + + phonePwdRow = new PwdLoginRowForm(); + phonePwdRow.Init(accountPwdFrameLayout, 29, 225); + phonePwdRow.PasswrodET.TextChangeEventHandler += (sender, e) => + { + this.Pwd_TextChange(phonePwdRow); + }; } else { + if (emailRow != null) + { + emailRow.Visible = true; + emailPwdRow.Visible = true; + if (phoneRow != null) + { + phoneRow.Visible = false; + phonePwdRow.Visible = false; + } + this.Pwd_TextChange(emailPwdRow); + return; + } emailRow = new EmailLoginRowForm(); - emailRow.Init(accountPwdFrameLayout, this.account, 29, 29); - emailRow.AccountET.TextChangeEventHandler += Account_TextChange; + emailRow.Init(accountPwdFrameLayout, this.oldInputAccount, 29, 29); + emailRow.AccountET.TextChangeEventHandler += Account_TextChange; + + emailPwdRow = new PwdLoginRowForm(); + emailPwdRow.Init(accountPwdFrameLayout, 29, 225); + emailPwdRow.PasswrodET.TextChangeEventHandler += (sender, e) => + { + this.Pwd_TextChange(emailPwdRow); + }; } - - pwdRow = new PwdLoginRowForm(); - pwdRow.Init(accountPwdFrameLayout, 29, 225); - pwdRow.PasswrodET.TextChangeEventHandler += Pwd_TextChange; } #endregion @@ -803,23 +829,22 @@ /// <summary> /// 瀵嗙爜鐩戝惉浜嬩欢 /// </summary> - /// <param name="sender">Sender.</param> - /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> - private void Pwd_TextChange(object sender,string mouseEventArgs) + /// <param name="pwdRow">Sender.</param> + private void Pwd_TextChange(PwdLoginRowForm pwdRow) { loginErrorBtn.Text = string.Empty; - if (1 <= pwdRow.PasswrodET.Text.Trim().Length && pwdRow.PasswrodET.Text.Trim().Length <= 16 && (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length>0)) + string pswText = pwdRow.PasswrodET.Text.Trim(); + if (1 <= pswText.Length && pswText.Length <= 16 && (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length>0)) { loginBtn.Enable = loginBtn.IsSelected = true; } - else if (pwdRow.PasswrodET.Text.Trim().Length > 16) + else if (pswText.Length > 16) { - pwdRow.PasswrodET.Text = mouseEventArgs.Remove(16); - } - else if (pwdRow.PasswrodET.Text.Trim().Length > 16 && (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length > 0)) - { - loginBtn.Enable = loginBtn.IsSelected = true; - pwdRow.PasswrodET.Text = mouseEventArgs.Remove(16); + pwdRow.PasswrodET.Text = pswText.Substring(0, 16); + if (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length > 0) + { + loginBtn.Enable = loginBtn.IsSelected = true; + } } else { -- Gitblit v1.8.0