From e22fdb94322e6cec38e5e4a9aec13d431a133fde Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 28 四月 2020 16:32:35 +0800
Subject: [PATCH] 上传合并后的代码

---
 ZigbeeApp/Shared/Phone/Login/AccountLogin.cs | 1303 +++++++++++-----------------------------------------------
 1 files changed, 252 insertions(+), 1,051 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs b/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs
index ff07e07..8bafd8e 100755
--- a/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs
+++ b/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs
@@ -1,855 +1,31 @@
-锘縰sing System;
-using Shared.Common;
-using Shared.Phone.UserView;
-using Shared.Phone.Device.CommonForm;
+锘縰sing System;
+using Shared.Common;
+using Shared.Phone.UserView;
+using Shared.Phone.Device.CommonForm;
 using Shared.Phone.UserCenter;
 
-namespace Shared.Phone.Login
-{
-    /// <summary>
-    /// 鐧诲綍鐣岄潰
-    /// </summary>
-    public class AccountLogin : FrameLayout
-    {
-        #region 鈼� 鍙橀噺____________________________
-        /// <summary>
-        /// 鑳屾櫙瑙嗗浘
-        /// </summary>
-        private FrameLayout midFrameLayout;
-        /// <summary>
-        /// 鎵嬫満閭
-        /// </summary>
-        private PhoneEmailForm phoneEmailForm;
-        /// <summary>
-        /// phoneRowForm
-        /// </summary>
-        private PhoneLoginRowForm phoneRow;
-        /// <summary>
-        /// emailRow
-        /// </summary>
-        private EmailLoginRowForm emailRow;
-        /// <summary>
-        /// phonePwdRow
-        /// </summary>
-        private PwdLoginRowForm phonePwdRow;
-        /// <summary>
-        /// emailPwdRow
-        /// </summary>
-        private PwdLoginRowForm emailPwdRow;
-
-        /// <summary>
-        /// 璐﹀彿瀵嗙爜fl
-        /// </summary>
-        private FrameLayout accountPwdFL;
-        /// <summary>
-        /// 鐧诲綍閿欒鎻愮ず鎸夐挳
-        /// </summary>
-        private Button loginErrorBtn;
-        /// <summary>
-        /// 蹇樿瀵嗙爜鎸夐挳
-        /// </summary>
-        private Button forgotPasswordBtn;
-        /// <summary>
-        /// 鐧诲綍鎸夐挳
-        /// </summary>
-        private Button loginBtn;
-        /// <summary>
-        /// 楠岃瘉鐮佺櫥褰曟寜閽�
-        /// </summary>
-        private Button loginByCodeBtn;
-        /// <summary>
-        /// 娉ㄥ唽鎸夐挳
-        /// </summary>
-        private Button registerBtn;
-        /// <summary>
-        /// wechat
-        /// </summary>
-        private Button wechatBtn;
-        /// <summary>
-        /// qq
-        /// </summary>
-        private Button qqBtn;
-        /// <summary>
-        /// 杈撳叆鐨勭櫥闄嗚处鍙�(閲嶆柊鐧婚檰鏃朵娇鐢�)
-        /// </summary>
-        private string oldInputPhone = string.Empty;
-        /// <summary>
-        /// 杈撳叆鐨勭櫥闄嗚处鍙�(閲嶆柊鐧婚檰鏃朵娇鐢�)
-        /// </summary>
-        private string oldInputEmail = string.Empty;
-
-        #endregion
-
-        #region 鈼� 鏋勯�犳柟娉昣________________________
-
-        /// <summary>
-        /// 鏋勯�犳柟娉�
-        /// </summary>
-        public AccountLogin()
-        {
-            CommonPage.Instance.IsDrawerLockMode = true;
-            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
-            Tag = "Login";
-        }
-
-        public override void RemoveFromParent()
-        {
-            base.RemoveFromParent();
-        }
-
-        #endregion
-
-        #region 鈼� 鏄剧ず鐣岄潰_________________________
-
-        /// <summary>
-        /// 鏄剧ず鐣岄潰
-        /// </summary>
-        /// <param name="account">Account.</param>
-        /// <param name="password">Password.</param>
-        public void Show(string account = "", string password = "")
-        {
-            if (Config.Instance.IsLogin)
-            {
-
-            }
-            else
-            {
-                LoginViewShow(account);
-            }
-        }
-
-        /// <summary>
-        /// Logins the view show.
-        /// </summary>
-        /// <param name="account">Account.</param>
-        public void LoginViewShow(string account = "")
-        {
-            //璁剧疆涓�涓嬪垵濮嬪��
-            if (account.Contains("@") == true) { this.oldInputEmail = account; }
-            else { this.oldInputPhone = account; }
-
-            #region midFrameLayout
-            midFrameLayout = new FrameLayout()
-            {
-                Width = LayoutParams.MatchParent,
-                Height = Application.GetRealHeight(CommonPage.AppRealHeight),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            AddChidren(midFrameLayout);
-            #endregion
-
-            #region 甯冨眬璐︽埛锛屽瘑鐮侊紝蹇樿瀵嗙爜锛屾敞鍐�  鎵嬫満楠岃瘉鐮佺櫥褰�
-
-            var logoBG = new Button()
-            {
-                Height = Application.GetRealHeight(619),
-                UnSelectedImagePath = "Account/Logo_loginBG.png"
-            };
-            midFrameLayout.AddChidren(logoBG);
-
-            var phoneEmailBGFL = new FrameLayout()
-            {
-                Y = logoBG.Bottom,
-                Height = Application.GetRealHeight(1921),
-                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
-            };
-            midFrameLayout.AddChidren(phoneEmailBGFL);
-
-            var logo = new Button()
-            {
-                Width = Application.GetMinRealAverage(184),
-                Height = Application.GetMinRealAverage(184),
-                Y = Application.GetRealHeight(230),
-                UnSelectedImagePath = "Account/Logo_White.png",
-                Gravity = Gravity.CenterHorizontal
-            };
-            midFrameLayout.AddChidren(logo);
-
-            var logoName = new Button()
-            {
-                Y = logo.Bottom,
-                Height = Application.GetRealHeight(69),
-                Width = Application.GetRealWidth(300),
-                Gravity = Gravity.CenterHorizontal,
-                TextID = R.MyInternationalizationString.AppName,
-                TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                TextSize = 16
-            };
-            midFrameLayout.AddChidren(logoName);
-
-            phoneEmailForm = new PhoneEmailForm();
-            phoneEmailForm.Init(midFrameLayout);
-
-
-            //閿欒鎻愮ずBtn
-            loginErrorBtn = new Button()
-            {
-                X = Application.GetRealWidth(242),
-                Y = Application.GetRealHeight(740),
-                Width = Application.GetRealWidth(700),
-                Height = Application.GetRealHeight(58),
-                TextColor = ZigbeeColor.Current.GXCTextRed,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = CommonFormResouce.TextSize,
-                IsBold = true
-            };
-            midFrameLayout.AddChidren(loginErrorBtn);
-
-            accountPwdFL = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(801),
-                Height = Application.GetRealHeight(553),
-                Width = Application.GetRealWidth(942),
-                Gravity = Gravity.CenterHorizontal,
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                Radius = (uint)Application.GetRealHeight(17)
-            };
-            midFrameLayout.AddChidren(accountPwdFL);
-
-            AddPhoneOrEmailFL(accountPwdFL, "Phone");
-
-            forgotPasswordBtn = new Button()
-            {
-                X = Application.GetRealWidth(CommonPage.AppRealWidth - 115 - 250),
-                Y = Application.GetRealHeight(1198),
-                Width = Application.GetRealWidth(250),
-                Height = Application.GetRealHeight(58),
-                TextID = R.MyInternationalizationString.ForgotPWD_1,
-                TextSize = CommonFormResouce.loginTextSize,
-                TextColor = Shared.Common.ZigbeeColor.Current.GXCTextGrayColor,
-                TextAlignment = TextAlignment.CenterRight
-            };
-            midFrameLayout.AddChidren(forgotPasswordBtn);
-
-            loginBtn = new Button()
-            {
-                Y = Application.GetRealHeight(1293),
-                Width = Application.GetRealWidth(688),
-                Height = Application.GetRealHeight(127),
-                Gravity = Gravity.CenterHorizontal,
-                TextID = R.MyInternationalizationString.Login,
-                TextSize = 16,
-                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
-                SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor,
-                BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor,
-                Radius = (uint)Application.GetRealHeight(127 / 2),
-                Enable = false,
-                IsBold = true
-            };
-            midFrameLayout.AddChidren(loginBtn);
-
-            loginByCodeBtn = new Button()
-            {
-                X = Application.GetRealWidth(98),
-                Y = Application.GetRealHeight(1466),
-                Width = Application.GetRealWidth(300),
-                Height = Application.GetRealHeight(49),
-                TextID = R.MyInternationalizationString.LoginByCode,
-                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = CommonFormResouce.loginTextSize
-            };
-            midFrameLayout.AddChidren(loginByCodeBtn);
-
-            registerBtn = new Button()
-            {
-                X = Application.GetRealWidth(738),
-                Y = Application.GetRealHeight(1466),
-                Width = Application.GetRealWidth(244),
-                Height = Application.GetRealHeight(49),
-                TextID = R.MyInternationalizationString.Register,
-                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
-                TextAlignment = TextAlignment.CenterRight,
-                TextSize = CommonFormResouce.loginTextSize
-            };
-            midFrameLayout.AddChidren(registerBtn);
-
-            wechatBtn = new Button
-            {
-                X = Application.GetRealWidth(395),
-                Y = Application.GetRealHeight(1737),
-                Width = Application.GetMinRealAverage(115),
-                Height = Application.GetMinRealAverage(115),
-                UnSelectedImagePath = "Account/Wechat.png",
-                Gravity = Gravity.CenterHorizontal
-            };
-            midFrameLayout.AddChidren(wechatBtn);
-
-            qqBtn = new Button
-            {
-                X = Application.GetRealWidth(567),
-                Y = Application.GetRealHeight(1737),
-                Width = Application.GetMinRealAverage(115),
-                Height = Application.GetMinRealAverage(115),
-                UnSelectedImagePath = "Account/QQ.png"
-            };
-            //midFrameLayout.AddChidren(qqBtn);
-
-            //娣诲姞鏈嶅姟鍗忚鎺т欢
-            //this.AddServiceAgreementControl(phoneEmailBGFL);
-
-            #endregion
-
-            BindEvent();
-
-            if (account.Contains("@") == true)
-            {
-                SelectPhoneOrEmail_MouseUpEvent(phoneEmailForm.SelectedEmail, null);
-            }
-        }
-
-        #endregion
-
-        #region 鈼� 缁戝畾浜嬩欢_________________________
-
-        /// <summary>
-        /// 缁戝畾鎸夐挳浜嬩欢
-        /// </summary>
-        private void BindEvent()
-        {
-            //閫夋嫨鎵嬫満閭
-            phoneEmailForm.SelectedPhone.MouseUpEventHandler += SelectPhoneOrEmail_MouseUpEvent;
-            phoneEmailForm.SelectedEmail.MouseUpEventHandler += SelectPhoneOrEmail_MouseUpEvent;
-            //鐧诲綍浜嬩欢
-            loginBtn.MouseUpEventHandler += LoginBtnEvent;
-            //鐭俊鐧诲綍
-            loginByCodeBtn.MouseUpEventHandler += LoginByCode;
-            //娉ㄥ唽浜嬩欢
-            registerBtn.MouseUpEventHandler += Register;
-            //蹇樿瀵嗙爜
-            forgotPasswordBtn.MouseUpEventHandler += ForgetPWD_MouseUpEvent;
-            //wechat
-            wechatBtn.MouseUpEventHandler += LoginByWechat;
-            //qq
-            qqBtn.MouseUpEventHandler += LoginByQQ;
-        }
-
-        #endregion
-
-        #region 鈼� 鐧诲綍____________________________
-
-        /// <summary>
-        /// 鐧诲綍浜嬩欢
-        /// </summary>
-        /// <param name="sender">Sender.</param>
-        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
-        private void LoginBtnEvent(object sender, MouseEventArgs mouseEventArgs)
-        {
-            //妫�娴嬮殣绉佸崗璁�
-            if (this.CheckPrivacyPolicy() == false)
-            {
-                return;
-            }
-            if (phoneEmailForm.SelectedPhone.IsSelected)
-            {
-                Login(phoneRow.AccountET.Text.Trim(), phonePwdRow.PasswrodET.Text.Trim());
-            }
-            else
-            {
-                Login(emailRow.AccountET.Text.Trim(), emailPwdRow.PasswrodET.Text.Trim());
-            }
-
-        }
-
-        /// <summary>
-        /// 鐧诲綍
-        /// </summary>
-        /// <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;
-                    }
+namespace Shared.Phone.Login
+{
+    /// <summary>
+    /// 鐧诲綍鐣岄潰
+    /// </summary>
+    public class AccountLogin : FrameLayoutBase
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
 
-                    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;
-                        }
-
-                        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();
-                            //鏍囪涓婁竴娆℃槸涓嶆槸鍚屼竴涓处鍙风櫥闄�
-                            UserCenter.UserCenterResourse.ResidenceOption.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid;
-                            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;
-                            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();
-                                CommonPage.Instance.RemoveViewByTag("Login");
-                                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;
-                    }
-                }
-                catch (Exception ex)
-                {
-                    System.Console.WriteLine($"鐧诲綍澶辫触--{ex.Message}");
-                    CommonPage.Loading.Hide();
-                    CommonPage.Instance.FailureToServer();
-                }
-                finally
-                {
-                    //CommonPage.Loading.Hide();
-                }
-                //});
-            };
-            action();
-        }
-
-        /// <summary>
-        /// CheckAccount
-        /// </summary>
-        /// <param name="accountStr"></param>
-        /// <returns></returns>
-        private bool CheckAccount(string accountStr)
-        {
-            if (phoneEmailForm.SelectedEmail.IsSelected)
-            {
-                if (AccountLogic.Instance.CheckEmail(accountStr) == false)
-                {
-                    loginErrorBtn.TextID = R.MyInternationalizationString.TheEmailError;
-                    return false;
-                }
-            }
-            else
-            {
-                if (AccountLogic.Instance.CheckPhone(accountStr) == false)
-                {
-                    loginErrorBtn.TextID = R.MyInternationalizationString.ThePhoneError;
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        /// <summary>
-        /// 閫氳繃楠岃瘉鐮佺櫥褰�
-        /// </summary>
-        /// <param name="sender">Sender.</param>
-        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
-        private void LoginByCode(object sender, MouseEventArgs mouseEventArgs)
-        {
-            //妫�娴嬮殣绉佸崗璁�
-            if (this.CheckPrivacyPolicy() == false)
-            {
-                return;
-            }
-            //this.RemoveFromParent();
-            var loginByCodePage = new AccountLoginByCode();
-            CommonPage.Instance.AddChidren(loginByCodePage);
-            loginByCodePage.Show();
-        }
-
-        /// <summary>
-        /// wechat鐧诲綍
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="mouseEventArgs"></param>
-        private void LoginByWechat(object sender, MouseEventArgs mouseEventArgs)
-        {
-            //妫�娴嬮殣绉佸崗璁�
-            if (this.CheckPrivacyPolicy() == false)
-            {
-                return;
-            }
-#if Android
-            //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP),
-            //    Language.StringByID(R.MyInternationalizationString.LoginByWechat),
-            //    Language.StringByID(R.MyInternationalizationString.Cancel),
-            //    Language.StringByID(R.MyInternationalizationString.Confrim));
-            //alert.Show();
-            //alert.ResultEventHandler += (send, e) =>
-            //{
-            //if (e)
-            //{
-            com.hdl.home.Application.WXLogin();
-            com.hdl.home.WXEntryActivity.RespAction = (authStr) =>
-            {
-                if (authStr == null)
-                {
-
-                }
-                else
-                {
-                    new System.Threading.Thread(async () =>
-                    {
-                        var re = await isBindAuthAsync(authStr);
-                        if (re)
-                        {
-                            Application.RunOnMainThread(() =>
-                            {
-                                //鐩存帴鐧诲綍
-                                HomePage.Instance.ShowLoginLoadView();
-                            });
-                            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(() =>
-                            {
-                                this.RemoveFromParent();
-                                CommonPage.Instance.RemoveViewByTag("Login");
-                                UserPage.Instance.Fresh();
-                            });
-                        }
-                        else
-                        {
-                            var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
-                            Application.RunOnMainThread(() =>
-                            {
-                                var registerPage = new AccountRegister();
-                                Shared.Common.CommonPage.Instance.AddChidren(registerPage);
-                                registerPage.OpenID = authRes.openid;
-                                registerPage.Show();
-                            });
-                        }
-                    })
-                    { IsBackground = true }.Start();
-                }
-            };
-            //}
-            //};
-#endif
-
-#if iOS
-            Home.IOS.AppDelegate.WXLogin();
-            Home.IOS.AppDelegate.RespAction = (authStr) =>
-            {
-                if (authStr == null)
-                {
-
-                }
-                else
-                {
-                    new System.Threading.Thread(async () =>
-                    {
-
-                        var re = await isBindAuthAsync(authStr);
-                        if (re)
-                        {
-                            //鐩存帴鐧诲綍
-                            //this.RemoveFromParent();
-
-                            //UserPage.Instance.Fresh();
-                            var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
-                            var homes = await House.GetHomeLists();
-                            //鍚姩ZigBee
-                            ZigBee.Common.Application.Init();
-                            //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
-                            await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
-                            UserCenter.HdlRoomLogic.Current.InitAllRoom();
-                            Application.RunOnMainThread(() =>
-                            {
-                                this.RemoveFromParent();
-                                UserPage.Instance.Fresh();
-                            });
-                        }
-                        else
-                        {
-                            var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
-                            Application.RunOnMainThread(() =>
-                            {
-                                var registerPage = new AccountRegister();
-                                Shared.Common.CommonPage.Instance.AddChidren(registerPage);
-                                registerPage.OpenID = authRes.openid;
-                                registerPage.Show();
-                            });
-                        }
-                    })
-                    { IsBackground = true }.Start();
-                }
-            };
-#endif
-
-
-
-        }
-
-        /// <summary>
-        /// qq鐧诲綍
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="mouseEventArgs"></param>
-        private void LoginByQQ(object sender, MouseEventArgs mouseEventArgs)
-        {
-
-        }
-
-        /// <summary>
-        /// phone/email 閫夋嫨
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="mouseEventArgs"></param>
-        private void SelectPhoneOrEmail_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
-        {
-            phoneEmailForm.SelectedPhone.IsSelected = phoneEmailForm.SelectedEmail.IsSelected = false;
-            phoneEmailForm.SelectedPhone.IsBold = phoneEmailForm.SelectedEmail.IsBold = false;
-            loginBtn.Enable = loginBtn.IsSelected = false;
-            loginErrorBtn.Text = string.Empty;
-            (sender as Button).IsSelected = (sender as Button).IsBold = true;
-            if ((sender as Button).Tag.ToString() == "Phone")
-            {
-                AddPhoneOrEmailFL(accountPwdFL, "Phone");
-            }
-            else
-            {
-                AddPhoneOrEmailFL(accountPwdFL, "Email");
-            }
-        }
-        /// <summary>
-        /// AddPhoneOrEmailFL
-        /// </summary>
-        /// <param name="accountPwdFrameLayout"></param>
-        /// <param name="phoneOrEmail"></param>
-        private void AddPhoneOrEmailFL(FrameLayout accountPwdFrameLayout, string phoneOrEmail)
-        {
-            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.oldInputPhone, 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.oldInputEmail, 29, 29);
-                emailRow.AccountET.TextChangeEventHandler += Account_TextChange;
-
-                emailPwdRow = new PwdLoginRowForm();
-                emailPwdRow.Init(accountPwdFrameLayout, 29, 225);
-                emailPwdRow.PasswrodET.TextChangeEventHandler += (sender, e) =>
-                {
-                    this.Pwd_TextChange(emailPwdRow);
-                };
-            }
-        }
-        #endregion
-
-
-        #region 鈼� 蹇樿瀵嗙爜________________________
-        /// <summary>
-        /// 蹇樿瀵嗙爜
-        /// </summary>
-        private void ForgetPWD_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
-        {
-            //妫�娴嬮殣绉佸崗璁�
-            if (this.CheckPrivacyPolicy() == false)
-            {
-                return;
-            }
-            var forgot = new AccountForgetPWD();
-            CommonPage.Instance.AddChidren(forgot);
-            forgot.Show();
-        }
-
-        #endregion
-
-        #region 鈼� 娉ㄥ唽_____________________________
-
-        /// <summary>
-        /// 娉ㄥ唽
-        /// </summary>
-        /// <param name="sender">Sender.</param>
-        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
-        private void Register(object sender, MouseEventArgs mouseEventArgs)
-        {
-            //妫�娴嬮殣绉佸崗璁�
-            if (this.CheckPrivacyPolicy() == false)
-            {
-                return;
-            }
-            var registerPage = new AccountRegister();
-            CommonPage.Instance.AddChidren(registerPage);
-            registerPage.Show();
-        }
-
-        #endregion
-
-        #region 鈼� 璐﹀彿瀵嗙爜鐩戝惉______________________
-        /// <summary>
-        /// 璐﹀彿鐩戝惉
-        /// </summary>
-        /// <param name="sender">Sender.</param>
-        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
-        private void Account_TextChange(object sender, string mouseEventArgs)
-        {
-            loginErrorBtn.Text = string.Empty;
-        }
-
-        /// <summary>
-        /// 瀵嗙爜鐩戝惉浜嬩欢
-        /// </summary>
-        /// <param name="pwdRow">Sender.</param>
-        private void Pwd_TextChange(PwdLoginRowForm pwdRow)
-        {
-            loginErrorBtn.Text = string.Empty;
-            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 (pswText.Length > 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
-            {
-                loginBtn.Enable = loginBtn.IsSelected = false;
-            }
-        }
-
-
-        #endregion
-
-
-
-
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
         /// <summary>
         /// 閿欒鎻愮ず鎺т欢
-        /// </summary>
-        private NormalViewControl btnErrorMsg = null;
+        /// </summary>
+        private NormalViewControl btnErrorMsg = null;
         /// <summary>
         /// 鏄惁鍚屾剰闅愮鍗忚
-        /// </summary>
-        private bool isAgreePrivacyPolicy = true;
-
-        #endregion
+        /// </summary>
+        private bool isAgreePrivacyPolicy = true;
 
-        #region 鈻� 鍒濆鍖朹____________________________
-
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
         /// <summary>
         /// 鐣岄潰鏄剧ず
         /// </summary>
@@ -860,57 +36,57 @@
             {
                 return;
             }
-            CommonPage.Instance.IsDrawerLockMode = true;
-            this.Tag = "Login";
-
-            //鐣岄潰涓婇儴鐨勯粦鑹插浘鐗�
-            var btnTopBlackPic = new NormalViewControl(this.Width, Application.GetRealHeight(619), false);
-            btnTopBlackPic.UnSelectedImagePath = "Account/Logo_loginBG.png";
-            this.AddChidren(btnTopBlackPic);
-
-            //涓棿娴呯櫧鑹茬殑鑳屾櫙
-            var frameMidBack = new FrameLayout();
-            frameMidBack.Y = btnTopBlackPic.Bottom;
-            frameMidBack.Height = this.Height - btnTopBlackPic.Bottom;
-            frameMidBack.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
-            this.AddChidren(frameMidBack);
-
-            //HdlHome鐨勫浘鏍�
-            var btnLogoIcon = new PicViewControl(184, 184);
-            btnLogoIcon.Y = Application.GetRealHeight(230);
-            btnLogoIcon.UnSelectedImagePath = "Account/Logo_White.png";
+            CommonPage.Instance.IsDrawerLockMode = true;
+            this.Tag = "Login";
+
+            //鐣岄潰涓婇儴鐨勯粦鑹插浘鐗�
+            var btnTopBlackPic = new NormalViewControl(this.Width, Application.GetRealHeight(619), false);
+            btnTopBlackPic.UnSelectedImagePath = "Account/Logo_loginBG.png";
+            this.AddChidren(btnTopBlackPic);
+
+            //涓棿娴呯櫧鑹茬殑鑳屾櫙
+            var frameMidBack = new FrameLayout();
+            frameMidBack.Y = btnTopBlackPic.Bottom;
+            frameMidBack.Height = this.Height - btnTopBlackPic.Bottom;
+            frameMidBack.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            this.AddChidren(frameMidBack);
+
+            //HdlHome鐨勫浘鏍�
+            var btnLogoIcon = new PicViewControl(184, 184);
+            btnLogoIcon.Y = Application.GetRealHeight(230);
+            btnLogoIcon.UnSelectedImagePath = "Account/Logo_White.png";
             btnLogoIcon.Gravity = Gravity.CenterHorizontal;
-            this.AddChidren(btnLogoIcon);
-            //Hdl Home
+            this.AddChidren(btnLogoIcon);
+            //Hdl Home
             var btnLogoName = new NormalViewControl(300, 69, true);
             btnLogoName.Y = btnLogoIcon.Bottom;
             btnLogoName.Gravity = Gravity.CenterHorizontal;
             btnLogoName.TextID = R.MyInternationalizationString.AppName;
             btnLogoName.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
             btnLogoName.TextAlignment = TextAlignment.Center;
-            btnLogoName.TextSize = 16;
+            btnLogoName.TextSize = 16;
             this.AddChidren(btnLogoName);
 
             //1:鎵嬫満鍙�  2锛氶偖绠�
             int selectIndex = account.Contains("@") == false ? 1 : 2;
 
             //鍒濆鍖� 鎵嬫満璐﹀彿鐧婚檰绐楀彛
-            var frameAccLoginPhoneback = this.InitAccoutLoginWindow(frameMidBack, selectIndex == 1 ? account : string.Empty, 1);
+            var frameAccLoginPhoneback = this.InitAccoutLoginWindow(frameMidBack, selectIndex == 1 ? account : string.Empty, 1);
             //鍒濆鍖� 閭璐﹀彿鐧婚檰绐楀彛
             var frameEmailLoginPhoneback = this.InitAccoutLoginWindow(frameMidBack, selectIndex == 1 ? string.Empty : account, 2);
             //鍒濆鍖� 鎵嬫満璐﹀彿楠岃瘉鐮佺櫥闄嗙獥鍙�
-            var frameAccCodeLoginPhoneback = this.InitCodeLoginWindow(frameMidBack, selectIndex == 1 ? account : string.Empty, 1);
+            var frameAccCodeLoginPhoneback = this.InitCodeLoginWindow(frameMidBack, selectIndex == 1 ? account : string.Empty, 1);
             //鍒濆鍖� 閭璐﹀彿楠岃瘉鐮佺櫥闄嗙獥鍙�
-            var frameEmailCodeLoginPhoneback = this.InitCodeLoginWindow(frameMidBack, selectIndex == 1 ? string.Empty : account, 2);
-
-            //瀹氫箟杩欎袱涓笢瑗�,鏄负浜嗗噺灏戝垽鏂殑浠g爜
-            var framePhone = frameAccLoginPhoneback;
-            var frameEmail = frameEmailLoginPhoneback;
-
-            //閭,鎵嬫満鍙风殑鍒囨崲鎺т欢
-            var sitchControl = new Controls.PhoneEmailSelectControl();
-            sitchControl.Y = Application.GetRealHeight(559);
-            this.AddChidren(sitchControl);
+            var frameEmailCodeLoginPhoneback = this.InitCodeLoginWindow(frameMidBack, selectIndex == 1 ? string.Empty : account, 2);
+
+            //瀹氫箟杩欎袱涓笢瑗�,鏄负浜嗗噺灏戝垽鏂殑浠g爜
+            var framePhone = frameAccLoginPhoneback;
+            var frameEmail = frameEmailLoginPhoneback;
+
+            //閭,鎵嬫満鍙风殑鍒囨崲鎺т欢
+            var sitchControl = new Controls.PhoneEmailSelectControl();
+            sitchControl.Y = Application.GetRealHeight(559);
+            this.AddChidren(sitchControl);
             sitchControl.SelectMenuEvent += (selectMenu) =>
             {
                 selectIndex = selectMenu;
@@ -926,26 +102,26 @@
                     framePhone.Visible = false;
                     frameEmail.Visible = true;
                 }
-            };
-            //鎵ц鍒濆鍖�
-            sitchControl.InitControl(ZigbeeColor.Current.GXCButtonSelectedColor, selectIndex);
-
-            //閿欒鎻愮ず鎺т欢
-            this.btnErrorMsg = new NormalViewControl(700, 60, true);
-            btnErrorMsg.Y = frameAccLoginPhoneback.Y - Application.GetRealHeight(60 + 3);
-            btnErrorMsg.X = Application.GetRealWidth(288);
-            btnErrorMsg.TextColor = ZigbeeColor.Current.GXCTextRed;
-            btnErrorMsg.IsBold = true;
+            };
+            //鎵ц鍒濆鍖�
+            sitchControl.InitControl(ZigbeeColor.Current.GXCButtonSelectedColor, selectIndex);
+
+            //閿欒鎻愮ず鎺т欢
+            this.btnErrorMsg = new NormalViewControl(700, 60, true);
+            btnErrorMsg.Y = frameAccLoginPhoneback.Y - Application.GetRealHeight(60 + 3);
+            btnErrorMsg.X = Application.GetRealWidth(288);
+            btnErrorMsg.TextColor = ZigbeeColor.Current.GXCTextRed;
+            btnErrorMsg.IsBold = true;
             frameMidBack.AddChidren(btnErrorMsg);
 
             //楠岃瘉鐮佺櫥闄�
             //1:璐﹀彿鐧婚檰  2:楠岃瘉鐮佺櫥闄�
             int codeDiv = 1;
-            var btnLoginByCode = new NormalViewControl(300, 100, true);
+            var btnLoginByCode = new NormalViewControl(300, 100, true);
             btnLoginByCode.X = Application.GetRealWidth(98);
-            btnLoginByCode.Y = frameAccLoginPhoneback.Bottom + Application.GetRealHeight(21);
-            btnLoginByCode.TextID = R.MyInternationalizationString.LoginByCode;
-            btnLoginByCode.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnLoginByCode.Y = frameAccLoginPhoneback.Bottom + Application.GetRealHeight(21);
+            btnLoginByCode.TextID = R.MyInternationalizationString.LoginByCode;
+            btnLoginByCode.TextColor = UserCenterColor.Current.TextGrayColor3;
             btnLoginByCode.TextSize = 12;
             frameMidBack.AddChidren(btnLoginByCode);
             btnLoginByCode.ButtonClickEvent += (sender, e) =>
@@ -979,12 +155,12 @@
             };
 
             //娉ㄥ唽鐢ㄦ埛
-            var btnRegister = new NormalViewControl(244, 100, true);
-            btnRegister.Y = btnLoginByCode.Y;
-            btnRegister.X = frameMidBack.Width - Application.GetRealWidth(98 + 244);
-            btnRegister.TextID = R.MyInternationalizationString.Register;
-            btnRegister.TextColor = UserCenterColor.Current.TextGrayColor3;
-            btnRegister.TextSize = 12;
+            var btnRegister = new NormalViewControl(300, 100, true);
+            btnRegister.Y = btnLoginByCode.Y;
+            btnRegister.X = frameMidBack.Width - Application.GetRealWidth(98 + 300);
+            btnRegister.TextID = R.MyInternationalizationString.Register;
+            btnRegister.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnRegister.TextSize = 12;
             btnRegister.TextAlignment = TextAlignment.CenterRight;
             frameMidBack.AddChidren(btnRegister);
             btnRegister.ButtonClickEvent += (sender, e) =>
@@ -995,9 +171,9 @@
             };
 
             //寰俊鍥炬爣
-            var btnWebChat = new IconViewControl(115);
-            btnWebChat.Y = frameMidBack.Height - Application.GetRealHeight(69) - btnWebChat.IconSize;
-            btnWebChat.UnSelectedImagePath = "Account/Wechat.png";
+            var btnWebChat = new IconViewControl(115);
+            btnWebChat.Y = frameMidBack.Height - Application.GetRealHeight(69) - btnWebChat.IconSize;
+            btnWebChat.UnSelectedImagePath = "Account/Wechat.png";
             btnWebChat.Gravity = Gravity.CenterHorizontal;
             frameMidBack.AddChidren(btnWebChat);
             btnWebChat.ButtonClickEvent += (sender, e) =>
@@ -1007,19 +183,46 @@
             };
 
             //娣诲姞鏈嶅姟鍗忚鎺т欢
-           // this.AddServiceAgreementControl(frameMidBack);
+            //this.AddServiceAgreementControl(frameMidBack);
+
+            //娓稿浣撻獙
+            var btnTiyan = new NormalViewControl(300, 100, true);
+            btnTiyan.Y = btnLoginByCode.Y;
+            btnTiyan.TextAlignment = TextAlignment.Center;
+            btnTiyan.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTiyan.TextSize = 12;
+            btnTiyan.Gravity = Gravity.CenterHorizontal;
+            btnTiyan.Text = "娓稿浣撻獙";
+            frameMidBack.AddChidren(btnTiyan);
+            btnTiyan.ButtonClickEvent += (sender, e) =>
+            {
+                btnTiyan.CanClick = false;
+                //鏄剧ず鍚姩椤�
+                HomePage.Instance.ShowLoginLoadView();
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    //鍒濆鍖栧叏閮ㄤ綋楠屾暟鎹�
+                    HdlExperienceAccountLogic.Current.InitAllExperienceData();
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        this.RemoveFromParent();
+                        CommonPage.Instance.RemoveViewByTag("Login");
+                        UserPage.Instance.Fresh();
+                    });
+                });
+            };
         }
 
-        #endregion
+        #endregion
 
-        #region 鈻� 鍒濆鍖栬处鍙风櫥闄嗙獥鍙________________
-
+        #region 鈻� 鍒濆鍖栬处鍙风櫥闄嗙獥鍙________________
+
         /// <summary>
         /// 鍒濆鍖栬处鍙风櫥闄嗙獥鍙�
         /// </summary>
         /// <param name="frameMidBack">涓棿娴呰壊鐨勮儗鏅鍣�</param>
         /// <param name="i_account">鐧婚檰璐﹀彿</param>
-        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
+        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
         private FrameLayout InitAccoutLoginWindow(FrameLayout frameMidBack, string i_account, int i_div)
         {
             //鐧婚檰鎸夐挳
@@ -1077,10 +280,7 @@
             txtAccount.TextChangeEventHandler += (sender, e) =>
             {
                 //闅愯棌閿欒鎻愮ず
-                if (this.btnErrorMsg.Visible == true)
-                {
-                    this.btnErrorMsg.Visible = false;
-                }
+                this.btnErrorMsg.Text = string.Empty;
                 if (txtAccount.Text.Trim().Length > 0 && txtPsw.Text.Length > 0)
                 {
                     //鑳藉鐧婚檰
@@ -1139,9 +339,9 @@
             //闅愯棌鎴栬�呮樉绀哄瘑鐮佺殑鍥炬爣
             var btnHiden = new IconViewControl(92);
             btnHiden.X = rowPassword.Width - Application.GetRealWidth(46) - btnHiden.IconSize;
-            btnHiden.SelectedImagePath = "Account/UnhidePwd.png";
+            btnHiden.SelectedImagePath = "Account/UnhidePwd.png";
             btnHiden.UnSelectedImagePath = "Account/HidePwd.png";
-            btnHiden.Gravity = Gravity.CenterVertical;
+            btnHiden.Gravity = Gravity.CenterVertical;
             rowPassword.AddChidren(btnHiden);
             btnHiden.ButtonClickEvent += (sender, e) =>
             {
@@ -1170,13 +370,13 @@
             };
 
             //蹇樿瀵嗙爜?
-            var btnForgot = new NormalViewControl(250, 90, true);
-            btnForgot.Y = rowPassword.Bottom + Application.GetRealHeight(15);
-            btnForgot.X = frameWhiteBack.Width - Application.GetRealWidth(250 + 35);
-            btnForgot.TextSize = 12;
-            btnForgot.TextColor = UserCenterColor.Current.TextGrayColor3;
-            btnForgot.TextAlignment = TextAlignment.CenterRight;
-            btnForgot.TextID = R.MyInternationalizationString.ForgotPWD_1;
+            var btnForgot = new NormalViewControl(250, 90, true);
+            btnForgot.Y = rowPassword.Bottom + Application.GetRealHeight(15);
+            btnForgot.X = frameWhiteBack.Width - Application.GetRealWidth(250 + 35);
+            btnForgot.TextSize = 12;
+            btnForgot.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnForgot.TextAlignment = TextAlignment.CenterRight;
+            btnForgot.TextID = R.MyInternationalizationString.ForgotPWD_1;
             frameWhiteBack.AddChidren(btnForgot);
             btnForgot.ButtonClickEvent += (sender, e) =>
             {
@@ -1201,7 +401,7 @@
             return frameBack;
         }
 
-        #endregion
+        #endregion
 
         #region 鈻� 鍒濆鍖栭獙璇佺爜鐧婚檰绐楀彛_______________
 
@@ -1210,7 +410,7 @@
         /// </summary>
         /// <param name="frameMidBack">涓棿娴呰壊鐨勮儗鏅鍣�</param>
         /// <param name="i_account">鐧婚檰璐﹀彿</param>
-        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
+        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
         private FrameLayout InitCodeLoginWindow(FrameLayout frameMidBack, string i_account, int i_div)
         {
             //鐧婚檰鎸夐挳
@@ -1286,12 +486,9 @@
             txtAccount.TextChangeEventHandler += (sender, e) =>
             {
                 //闅愯棌閿欒鎻愮ず
-                if (this.btnErrorMsg.Visible == true)
-                {
-                    this.btnErrorMsg.Visible = false;
-                }
+                this.btnErrorMsg.Text = string.Empty;
                 //蹇呴』瑕佸彂閫佹垚鍔熸墠琛�
-                if (hadSendCode = true && txtAccount.Text.Trim().Length > 0 && txtVerCode.Text.Length > 0)
+                if (hadSendCode == true && txtAccount.Text.Trim().Length > 0 && txtVerCode.Text.Length > 0)
                 {
                     //鑳藉鐧婚檰
                     if (btnLogin.CanClick == false) { btnLogin.CanClick = true; }
@@ -1339,25 +536,24 @@
             txtVerCode.Gravity = Gravity.CenterVertical;
             txtVerCode.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputVerificationCode);
             txtVerCode.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
-            txtVerCode.SecureTextEntry = true;
             rowVerCode.AddChidren(txtVerCode);
             txtVerCode.TextChangeEventHandler += (sender, e) =>
             {
                 txtAccount.TextChangeEventHandler(sender, e);
             };
             //绔栫嚎
-            var btnLine2 = new NormalViewControl(1, Application.GetRealHeight(66), false);
+            var btnLine2 = new NormalViewControl(1, Application.GetRealHeight(66), false);
             btnLine2.X = Application.GetRealWidth(611);
             btnLine2.Gravity = Gravity.CenterVertical;
             btnLine2.BackgroundColor = ZigbeeColor.Current.GXCLineColor;
             rowVerCode.AddChidren(btnLine2);
             //鑾峰彇楠岃瘉鐮�
-            var btnSendCode = new NormalViewControl(250, 70, true);
-            btnSendCode.X = btnLine2.Right + Application.GetRealWidth(36);
-            btnSendCode.Gravity = Gravity.CenterVertical;
+            var btnSendCode = new NormalViewControl(250, 70, true);
+            btnSendCode.X = btnLine2.Right + Application.GetRealWidth(36);
+            btnSendCode.Gravity = Gravity.CenterVertical;
             btnSendCode.TextID = R.MyInternationalizationString.SendVerificationCode;
             btnSendCode.TextColor = UserCenterColor.Current.TextGrayColor3;
-            btnSendCode.TextAlignment = TextAlignment.Center;
+            btnSendCode.TextAlignment = TextAlignment.Center;
             btnSendCode.IsBold = true;
             rowVerCode.AddChidren(btnSendCode);
             btnSendCode.ButtonClickEvent += async (sender, e) =>
@@ -1393,13 +589,13 @@
             };
 
             //蹇樿瀵嗙爜?
-            var btnForgot = new NormalViewControl(250, 90, true);
-            btnForgot.Y = rowVerCode.Bottom + Application.GetRealHeight(15);
-            btnForgot.X = frameWhiteBack.Width - Application.GetRealWidth(250 + 35);
-            btnForgot.TextSize = 12;
-            btnForgot.TextColor = UserCenterColor.Current.TextGrayColor3;
-            btnForgot.TextAlignment = TextAlignment.CenterRight;
-            btnForgot.TextID = R.MyInternationalizationString.ForgotPWD_1;
+            var btnForgot = new NormalViewControl(250, 90, true);
+            btnForgot.Y = rowVerCode.Bottom + Application.GetRealHeight(15);
+            btnForgot.X = frameWhiteBack.Width - Application.GetRealWidth(250 + 35);
+            btnForgot.TextSize = 12;
+            btnForgot.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnForgot.TextAlignment = TextAlignment.CenterRight;
+            btnForgot.TextID = R.MyInternationalizationString.ForgotPWD_1;
             frameWhiteBack.AddChidren(btnForgot);
             btnForgot.ButtonClickEvent += (sender, e) =>
             {
@@ -1423,7 +619,7 @@
             return frameBack;
         }
 
-        #endregion
+        #endregion
 
         #region 鈻� 鏈嶅姟鍗忚___________________________
 
@@ -1434,7 +630,7 @@
         private void AddServiceAgreementControl(FrameLayout frameBack)
         {
             var frameRow = new FrameLayout();
-            frameRow.Height = Application.GetMinRealAverage(110);
+            frameRow.Height = this.GetPictrueRealSize(110);
             frameRow.Y = Application.GetRealHeight(959);
             frameRow.Gravity = Gravity.CenterHorizontal;
 
@@ -1512,7 +708,7 @@
             btnIcon.SelectedImagePath = "Item/Check1Selected.png";
 
             //璁$畻琛屾帶浠剁殑瀹藉害
-            frameRow.Width = fontWidth + Application.GetMinRealAverage(42) + Application.GetRealWidth(23) - speceilValue * 3;
+            frameRow.Width = fontWidth + this.GetPictrueRealSize(42) + Application.GetRealWidth(23) - speceilValue * 3;
             frameBack.AddChidren(frameRow);
 
             //鍥炬爣鎺т欢鍒濆鍖�
@@ -1541,14 +737,14 @@
 
         #endregion
 
-        #region 鈻� 璐﹀彿瀵嗙爜鐧婚檰_______________________
+        #region 鈻� 璐﹀彿瀵嗙爜鐧婚檰_______________________
 
         /// <summary>
         /// 璐﹀彿瀵嗙爜鐧婚檰
         /// </summary>
         /// <param name="i_account">璐﹀彿</param>
-        /// <param name="i_psw">瀵嗙爜</param>
-        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
+        /// <param name="i_psw">瀵嗙爜</param>
+        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
         private void LoginByAccountAndPsw(string i_account, string i_psw, int i_div)
         {
             //妫�娴嬭处鍙�
@@ -1578,59 +774,59 @@
             });
         }
 
-        /// <summary>
-        /// 妫�娴嬭緭鍏ョ殑璐﹀彿
-        /// </summary>
-        /// <param name="i_areaCode">鍦板尯鐮�</param>
-        /// <param name="i_account">璐﹀彿</param>
-        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
-        /// <returns></returns>
-        private bool CheckInputAccount(string i_areaCode, string i_account, int i_div)
-        {
+        /// <summary>
+        /// 妫�娴嬭緭鍏ョ殑璐﹀彿
+        /// </summary>
+        /// <param name="i_areaCode">鍦板尯鐮�</param>
+        /// <param name="i_account">璐﹀彿</param>
+        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
+        /// <returns></returns>
+        private bool CheckInputAccount(string i_areaCode, string i_account, int i_div)
+        {
             if (i_div == 1)
             {
                 //妫�娴嬫墜鏈�
-                if (i_areaCode != string.Empty && AccountLogic.Instance.CheckPhoneWithZone(i_account, i_areaCode) == false)
-                {
-                    btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError;
-                    return false;
+                if (i_areaCode != string.Empty && AccountLogic.Instance.CheckPhoneWithZone(i_account, i_areaCode) == false)
+                {
+                    btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError;
+                    return false;
                 }
                 //妫�娴嬫墜鏈�
-                if (i_areaCode == string.Empty && AccountLogic.Instance.CheckPhone(i_account) == false)
-                {
-                    btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError;
-                    return false;
+                if (i_areaCode == string.Empty && AccountLogic.Instance.CheckPhone(i_account) == false)
+                {
+                    btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError;
+                    return false;
                 }
-            }
-            else
+            }
+            else
             {
                 //妫�娴嬮偖绠�
-                if (AccountLogic.Instance.CheckEmail(i_account) == false)
-                {
-                    btnErrorMsg.TextID = R.MyInternationalizationString.TheEmailError;
-                    return false;
+                if (AccountLogic.Instance.CheckEmail(i_account) == false)
+                {
+                    btnErrorMsg.TextID = R.MyInternationalizationString.TheEmailError;
+                    return false;
                 }
-            }
-            return true;
+            }
+            return true;
         }
 
-        #endregion
+        #endregion
 
-        #region 鈻� 寰俊鐧婚檰___________________________
+        #region 鈻� 寰俊鐧婚檰___________________________
 
-        /// <summary>
-        /// 寰俊鐧诲綍
-        /// </summary>
-        private void LoginByWechat()
+        /// <summary>
+        /// 寰俊鐧诲綍
+        /// </summary>
+        private void LoginByWechat()
         {
 #if Android
             com.hdl.home.Application.WXLogin();
             com.hdl.home.WXEntryActivity.RespAction = (authStr) =>
             {
 #endif
-#if iOS
+#if iOS
             Home.IOS.AppDelegate.WXLogin();
-            Home.IOS.AppDelegate.RespAction = (authStr) =>
+            Home.IOS.AppDelegate.RespAction = (authStr) =>
             {
 #endif
                 if (authStr == null)
@@ -1677,19 +873,19 @@
             };
         }
 
-        /// <summary>
-        /// 鏄惁宸茬粦瀹�
-        /// </summary>
-        /// <param name="authStr"></param>
-        /// <returns></returns>
-        private async System.Threading.Tasks.Task<bool> isBindAuthAsync(string authStr)
-        {
-            var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
-            var auth = new SendDataToServer.AuthUser()
-            {
-                AccessToken = authRes.access_token,
-                RefreshToken = authRes.refresh_token,
-                OpenID = authRes.openid
+        /// <summary>
+        /// 鏄惁宸茬粦瀹�
+        /// </summary>
+        /// <param name="authStr"></param>
+        /// <returns></returns>
+        private async System.Threading.Tasks.Task<bool> isBindAuthAsync(string authStr)
+        {
+            var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
+            var auth = new SendDataToServer.AuthUser()
+            {
+                AccessToken = authRes.access_token,
+                RefreshToken = authRes.refresh_token,
+                OpenID = authRes.openid
             };
             //鑾峰彇寰俊鏄电О
             var strUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + authRes.access_token;
@@ -1701,44 +897,44 @@
             }
             var receipData = System.Text.Encoding.UTF8.GetString(byteData);
             var nickData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserCenter.NicknameInfo>(receipData);
-            auth.UserName = nickData.nickname;
-
-            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(auth);
-            var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/InsertOrUpdateAuthUser", System.Text.Encoding.UTF8.GetBytes(requestJson));
-            if (revertObj == null)
-            {
-                return false;
-            }
-            var stateCodeStr = revertObj.StateCode.ToUpper();
-            if (stateCodeStr == "SUCCESS")
-            {
-                var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString());
+            auth.UserName = nickData.nickname;
+
+            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(auth);
+            var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/InsertOrUpdateAuthUser", System.Text.Encoding.UTF8.GetBytes(requestJson));
+            if (revertObj == null)
+            {
+                return false;
+            }
+            var stateCodeStr = revertObj.StateCode.ToUpper();
+            if (stateCodeStr == "SUCCESS")
+            {
+                var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString());
                 var revertData = responseDataObj;
                 //鏍囪涓婁竴娆℃槸涓嶆槸鍚屼竴涓处鍙风櫥闄�
-                UserCenter.UserCenterResourse.ResidenceOption.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid;
-                Config.Instance.Account = revertData.Account;
-                Config.Instance.MD5PWD = revertData.MD5PWD;
-                Config.Instance.Guid = revertData.Guid;
-                Config.Instance.LoginDateTime = DateTime.Now;
-                Config.Instance.Save();
-                return true;
-            }
-            else
-            {
-                return false;
-            }
+                UserCenter.UserCenterResourse.ResidenceOption.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid;
+                Config.Instance.Account = revertData.Account;
+                Config.Instance.MD5PWD = revertData.MD5PWD;
+                Config.Instance.Guid = revertData.Guid;
+                Config.Instance.LoginDateTime = DateTime.Now;
+                Config.Instance.Save();
+                return true;
+            }
+            else
+            {
+                return false;
+            }
         }
 
-        #endregion
+        #endregion
 
-        #region 鈻� 楠岃瘉鐮佺櫥闄哶________________________
+        #region 鈻� 楠岃瘉鐮佺櫥闄哶________________________
 
         /// <summary>
         /// 楠岃瘉鐮佺櫥闄�
         /// </summary>
         /// <param name="i_account">璐﹀彿</param>
-        /// <param name="i_verCode">楠岃瘉鐮�</param>
-        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
+        /// <param name="i_verCode">楠岃瘉鐮�</param>
+        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
         private async void LoginByVerCode(string i_account, string i_verCode, int i_div)
         {
             var pra = new SendDataToServer.LoginValidCodeOBJ()
@@ -1751,15 +947,15 @@
             var result = await CommonFormResouce.LoginByCode(pra);
             //澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹�
             this.AdjustLoginSuccessData(result, pra, i_account, string.Empty, i_div);
-        }
-
+        }
+
         /// <summary>
         /// 鍙戦�侀獙璇佺爜
         /// </summary>
         /// <param name="btnSendCode">鍙戦�佹寜閽�</param>
         /// <param name="account">璐﹀彿</param>
         /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
-        /// <returns></returns>
+        /// <returns></returns>
         private async System.Threading.Tasks.Task<bool> SendVerCode(NormalViewControl btnSendCode, string account, int i_div)
         {
             //涓嶈兘鍐嶇偣鍑�
@@ -1831,12 +1027,12 @@
             });
 
             return false;
-        }
-
+        }
+
         /// <summary>
         /// 寮�鍚彂閫侀獙璇佺爜鐨勫�掕鏃�
         /// </summary>
-        /// <param name="btnSendCode"></param>
+        /// <param name="btnSendCode"></param>
         private void StartSendVerCodeTimeOutThread(NormalViewControl btnSendCode)
         {
             HdlThreadLogic.Current.RunThread(() =>
@@ -1851,16 +1047,21 @@
                         btnSendCode.Text = time + "s" + strText;
                     });
                     time--;
+                    System.Threading.Thread.Sleep(1000);
                 }
                 //鍊掕鏃跺畬鎴愪箣鍚�,鍙互鍐嶆鐐瑰嚮
                 btnSendCode.CanClick = true;
-                btnSendCode.TextID = R.MyInternationalizationString.SendVerificationCode;//鑾峰彇楠岃瘉鐮�
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鑾峰彇楠岃瘉鐮�
+                    btnSendCode.Text = Language.StringByID(R.MyInternationalizationString.SendVerificationCode);
+                });
             });
         }
 
-        #endregion
+        #endregion
 
-        #region 鈻� 澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹甠________________
+        #region 鈻� 澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹甠________________
 
         /// <summary>
         /// 澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹�
@@ -1868,8 +1069,8 @@
         /// <param name="revertObj">浜戠杩斿洖鐨勬暟鎹�</param>
         /// <param name="pra">鎺ュ彛璇锋眰鍙傛暟</param>
         /// <param name="i_account">璐﹀彿</param>
-        /// <param name="i_psw">瀵嗙爜锛岄獙璇佺爜鐧婚檰鏃�,璁剧疆涓� string.Empty</param>
-        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
+        /// <param name="i_psw">瀵嗙爜锛岄獙璇佺爜鐧婚檰鏃�,璁剧疆涓� string.Empty</param>
+        /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param>
         private async void AdjustLoginSuccessData(Common.ResponseEntity.ResponsePack revertObj, object pra,
             string i_account, string i_psw, int i_div)
         {
@@ -1936,15 +1137,15 @@
                     //璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤
                     btnErrorMsg.TextID = R.MyInternationalizationString.NOTENABLE;
                 }
-                else if (stateCodeStr == "PARAMETEROREMPTY")
-                {
-                    //鎻愪緵鐨勫弬鏁伴敊璇�
-                    btnErrorMsg.TextID = R.MyInternationalizationString.PARAMETEROREMPTY;
+                else if (stateCodeStr == "PARAMETEROREMPTY")
+                {
+                    //鎻愪緵鐨勫弬鏁伴敊璇�
+                    btnErrorMsg.TextID = R.MyInternationalizationString.PARAMETEROREMPTY;
                 }
-                else if (stateCodeStr == "VALIDCODEANDPHONENOEQUAL")
-                {
-                    //楠岃瘉鐮侀敊璇紝璇烽噸鏂拌緭鍏�
-                    btnErrorMsg.TextID = R.MyInternationalizationString.VALIDCODEANDPHONENOEQUAL;
+                else if (stateCodeStr == "VALIDCODEANDPHONENOEQUAL")
+                {
+                    //楠岃瘉鐮侀敊璇紝璇烽噸鏂拌緭鍏�
+                    btnErrorMsg.TextID = R.MyInternationalizationString.VALIDCODEANDPHONENOEQUAL;
                 }
                 else if (stateCodeStr == "USERNAMEORPWDERROR")
                 {
@@ -1956,10 +1157,10 @@
                     //璐﹀彿涓嶅瓨鍦�
                     btnErrorMsg.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS;
                 }
-                else if (stateCodeStr == "NORECORD" && i_psw == string.Empty)
-                {
-                    //璇峰厛鑾峰彇楠岃瘉鐮�
-                    btnErrorMsg.TextID = R.MyInternationalizationString.NORECORD;
+                else if (stateCodeStr == "NORECORD" && i_psw == string.Empty)
+                {
+                    //璇峰厛鑾峰彇楠岃瘉鐮�
+                    btnErrorMsg.TextID = R.MyInternationalizationString.NORECORD;
                 }
                 else if (stateCodeStr == "YOUDATANOISLOCALREGION")
                 {
@@ -1989,14 +1190,14 @@
             });
         }
 
-        #endregion
+        #endregion
 
-        #region 鈻� 涓�鑸柟娉昣__________________________
-
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
         /// <summary>
         /// 妫�娴嬮殣绉佸崗璁�
         /// </summary>
-        /// <returns></returns>
+        /// <returns></returns>
         private bool CheckPrivacyPolicy()
         {
             if (isAgreePrivacyPolicy == false)
@@ -2007,8 +1208,8 @@
                 return false;
             }
             return true;
-        }
-
-        #endregion
-    }
-}
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0