using System; using System.Collections.Generic; using System.Threading; using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI.UI1Login { public partial class RegisterPage : Dialog { #region 控件列表 /// /// 等待提示 /// Loading waitPage; /// /// 当前界面 /// FrameLayout bodyView; /// /// 选择手机登录按钮 /// Button btnPhoneLogin; /// /// 选择邮箱登录按钮 /// Button btnEmailLogin; /// /// 账号子区域 /// FrameLayout accountView; /// /// 国际区号按钮 /// Button btnGlobalRoaming; /// /// 账号子区域里面的分割线 /// Button btnDividingLineVertical_AccountView; /// /// 账号文本框 /// EditText etAccount; /// /// 账号Icon按钮 /// Button btnAccountIcon; /// /// 账号子区域底部横线 /// Button btnVerificationCodeViewBottomLine; /// /// 密码子区域 /// FrameLayout passwordView; /// /// 密码Icon按钮 /// Button btnPasswordIcon; /// /// 密码文本框 /// EditText etPassword; /// /// 密码子区域里面的分割线1 /// Button btnDividingLineVertical_PasswordView1; /// /// 密码是否可见按钮 /// Button btnVisiblePassword; /// /// 密码子区域底部横线 /// Button btnPasswordViewBottomLine; /// /// 确认密码子区域 /// FrameLayout repeatPasswordView; /// /// 确认密码Icon按钮 /// Button btnRepeatPasswordIcon; /// /// 确认密码文本框 /// EditText etRepeatPassword; /// /// 确认密码子区域里面的分割线1 /// Button btnRepeatDividingLineVertical_PasswordView1; /// /// 确认密码是否可见按钮 /// Button btnRepeatVisiblePassword; /// /// 确认密码子区域底部横线 /// Button btnRepeatPasswordViewBottomLine; /// /// 验证码子区域 /// FrameLayout verificationCodeView; /// /// 验证码图标 /// Button btnVerificationCodeIcon; /// /// 验证码子区域分割线 /// Button btnDividingLineVertical_VerificationCodeView1; /// /// 验证码文本输入框 /// EditText etVerificationCode; /// /// 获取验证码按钮 /// Button btnGetVerificationCode_Phone; /// /// 获取验证码按钮 /// Button btnGetVerificationCode_Mail; /// /// 验证码子区域底部分割线 /// Button btnAccountViewBottomLine; /// /// 注册按钮 /// Button btnRegister; #endregion #region 局部变量列表 /// /// 账号类型 /// 0:手机 /// 1:邮箱 /// int accountType = 0; /// /// 手机号码是否有效 /// bool ValidMobileNumber = false; /// /// 密码是否有效 /// bool ValidPassword = false; /// /// 服务器请求对象 /// HttpServerRequest pm; /// /// 回调事件 /// //Action callbackAction; /// /// 注册类型 /// 0:手机 /// 1:邮箱 /// int registerType; string registerPhone; string registerEmail; #endregion public RegisterPage() { bodyView = new FrameLayout() { BackgroundColor = CSS_Color.BackgroundColor, }; AddChidren(bodyView); pm = new HttpServerRequest(); } //public RegisterPage(Action action) //{ // bodyView = new FrameLayout() // { // BackgroundColor = CSS_Color.MainBackgroundColor, // }; // AddChidren(bodyView); // pm = new HttpServerRequest(); // callbackAction = action; //} public void ShowDialog() { new TopViewDiv(this, bodyView, Language.StringByID(StringId.Register)).LoadTopView(); //new PublicAssmebly().LoadTopView(this, bodyView, Language.StringByID(StringId.Register)); #region 注册方式选择 btnPhoneLogin = new Button() { X = Application.GetRealWidth(28), Y = Application.GetRealHeight(112), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(40), TextID = StringId.RegisterByPhone, TextColor = CSS_Color.MainColor, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, }; bodyView.AddChidren(btnPhoneLogin); btnEmailLogin = new Button() { X = btnPhoneLogin.Right, Y = Application.GetRealHeight(112), Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(40), TextID = StringId.RegisterByEmail, TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.Center, TextSize = CSS_FontSize.TextFontSize, }; bodyView.AddChidren(btnEmailLogin); #endregion #region 账号填写 accountView = new FrameLayout() { X = Application.GetRealWidth(28), Y = Application.GetRealHeight(167), Width = Application.GetRealWidth(319), Height = Application.GetRealHeight(44), }; bodyView.AddChidren(accountView); btnGlobalRoaming = new Button() { Width = Application.GetRealWidth(57), X = Application.GetRealWidth(9), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, Text = "+86", TextSize = CSS_FontSize.TextFontSize, }; if (accountType == 0) { accountView.AddChidren(btnGlobalRoaming); } //btnDividingLineVertical_AccountView = new Button() //{ // X = Application.GetRealWidth(65), // Gravity = Gravity.CenterVertical, // Width = 1, // Height = Application.GetRealHeight(20), // BackgroundColor = CSS_Color.DividingLineColor, //}; //accountView.AddChidren(btnDividingLineVertical_AccountView); etAccount = new EditText() { X = Application.GetRealWidth(49), Width = Application.GetRealWidth(319 - 78), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, PlaceholderTextColor = CSS_Color.PromptingColor1, PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber), }; accountView.AddChidren(etAccount); btnAccountViewBottomLine = new Button() { Y = Application.GetRealHeight(42), BackgroundColor = CSS_Color.DividingLineColor, Height = Application.GetRealHeight(1), }; accountView.AddChidren(btnAccountViewBottomLine); btnAccountIcon = new Button() { X = Application.GetRealWidth(9), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(20), Height = Application.GetMinRealAverage(20), UnSelectedImagePath = "LoginIcon/AccountIcon.png", }; if (accountType == 1) { accountView.AddChidren(btnAccountIcon); } #endregion #region 密码填写 passwordView = new FrameLayout() { X = Application.GetRealWidth(28), Y = Application.GetRealHeight(223), Width = Application.GetRealWidth(319), Height = Application.GetRealHeight(44), }; bodyView.AddChidren(passwordView); btnPasswordIcon = new Button() { X = Application.GetRealWidth(9), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(20), Height = Application.GetMinRealAverage(20), UnSelectedImagePath = "LoginIcon/PasswordIcon.png", }; passwordView.AddChidren(btnPasswordIcon); //btnDividingLineVertical_PasswordView1 = new Button() //{ // X = Application.GetRealWidth(65), // Gravity = Gravity.CenterVertical, // Width = 1, // Height = Application.GetRealHeight(20), // BackgroundColor = CSS_Color.DividingLineColor, //}; //passwordView.AddChidren(btnDividingLineVertical_PasswordView1); etPassword = new EditText() { X = Application.GetRealWidth(49), Width = Application.GetRealWidth(319 - 78), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, PlaceholderTextColor = CSS_Color.PromptingColor1, PlaceholderText = Language.StringByID(StringId.PlsRegisterPassword), SecureTextEntry = true, }; passwordView.AddChidren(etPassword); #region 密码登录-控件加载 btnVisiblePassword = new Button() { X = Application.GetRealWidth(295), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(20), Height = Application.GetMinRealAverage(20), UnSelectedImagePath = "LoginIcon/HidePasswordIcon.png", SelectedImagePath = "LoginIcon/ShowPasswordIcon.png", }; passwordView.AddChidren(btnVisiblePassword); #endregion btnPasswordViewBottomLine = new Button() { Y = Application.GetRealHeight(42), BackgroundColor = CSS_Color.DividingLineColor, SelectedBackgroundColor = CSS_Color.MainColor, Height = Application.GetRealHeight(1), }; passwordView.AddChidren(btnPasswordViewBottomLine); #endregion #region 确认密码填写 repeatPasswordView = new FrameLayout() { X = Application.GetRealWidth(28), Y = Application.GetRealHeight(279), Width = Application.GetRealWidth(319), Height = Application.GetRealHeight(44), }; bodyView.AddChidren(repeatPasswordView); btnRepeatPasswordIcon = new Button() { X = Application.GetRealWidth(9), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(20), Height = Application.GetMinRealAverage(20), UnSelectedImagePath = "LoginIcon/PasswordIcon.png", }; repeatPasswordView.AddChidren(btnRepeatPasswordIcon); //btnRepeatDividingLineVertical_PasswordView1 = new Button() //{ // X = Application.GetRealWidth(65), // Gravity = Gravity.CenterVertical, // Width = 1, // Height = Application.GetRealHeight(20), // BackgroundColor = CSS_Color.DividingLineColor, //}; //repeatPasswordView.AddChidren(btnRepeatDividingLineVertical_PasswordView1); etRepeatPassword = new EditText() { X = Application.GetRealWidth(49), Width = Application.GetRealWidth(319 - 78), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, PlaceholderTextColor = CSS_Color.PromptingColor1, PlaceholderText = Language.StringByID(StringId.PlsRegisterRepeatPassword), SecureTextEntry = true, }; repeatPasswordView.AddChidren(etRepeatPassword); #region 密码登录-控件加载 btnRepeatVisiblePassword = new Button() { X = Application.GetRealWidth(295), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(20), Height = Application.GetMinRealAverage(20), UnSelectedImagePath = "LoginIcon/HidePasswordIcon.png", SelectedImagePath = "LoginIcon/ShowPasswordIcon.png", }; repeatPasswordView.AddChidren(btnRepeatVisiblePassword); #endregion btnRepeatPasswordViewBottomLine = new Button() { Y = Application.GetRealHeight(42), BackgroundColor = CSS_Color.DividingLineColor, SelectedBackgroundColor = CSS_Color.MainColor, Height = Application.GetRealHeight(1), }; repeatPasswordView.AddChidren(btnRepeatPasswordViewBottomLine); #endregion #region 验证码填写 verificationCodeView = new FrameLayout() { X = Application.GetRealWidth(28), Y = Application.GetRealHeight(335), Width = Application.GetRealWidth(319), Height = Application.GetRealHeight(44), }; bodyView.AddChidren(verificationCodeView); btnVerificationCodeIcon = new Button() { X = Application.GetRealWidth(9), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(20), Height = Application.GetMinRealAverage(20), UnSelectedImagePath = "LoginIcon/VerificationCodeIcon.png", }; verificationCodeView.AddChidren(btnVerificationCodeIcon); //btnDividingLineVertical_VerificationCodeView1 = new Button() //{ // X = Application.GetRealWidth(65), // Gravity = Gravity.CenterVertical, // Width = 1, // Height = Application.GetRealHeight(20), // BackgroundColor = CSS_Color.DividingLineColor, //}; //verificationCodeView.AddChidren(btnDividingLineVertical_VerificationCodeView1); etVerificationCode = new EditText() { X = Application.GetRealWidth(49), Width = Application.GetRealWidth(61 + 84), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, PlaceholderTextColor = CSS_Color.PromptingColor1, PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode), }; verificationCodeView.AddChidren(etVerificationCode); btnGetVerificationCode_Phone = new Button() { X = Application.GetRealWidth(219), Width = Application.GetRealWidth(100), TextID = StringId.GetVerificationCode, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.CenterRight, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; verificationCodeView.AddChidren(btnGetVerificationCode_Phone); btnGetVerificationCode_Mail = new Button() { X = Application.GetRealWidth(219), Width = Application.GetRealWidth(100), TextID = StringId.GetVerificationCode, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.CenterRight, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Visible = false }; verificationCodeView.AddChidren(btnGetVerificationCode_Mail); btnVerificationCodeViewBottomLine = new Button() { Y = Application.GetRealHeight(42), BackgroundColor = CSS_Color.DividingLineColor, SelectedBackgroundColor = CSS_Color.MainColor, Height = Application.GetRealHeight(1), }; verificationCodeView.AddChidren(btnVerificationCodeViewBottomLine); #endregion btnRegister = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(421), Width = Application.GetRealWidth(220), Height = Application.GetRealHeight(44), Radius = (uint)Application.GetRealHeight(22), SelectedBackgroundColor = CSS_Color.MainColor, BackgroundColor = CSS_Color.PromptingColor1, TextID = StringId.Register, TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.MainBackgroundColor, TextAlignment = TextAlignment.Center, }; bodyView.AddChidren(btnRegister); LoadEventList(); } /// /// 注册成功之后自动登录 /// void LoadEvent_AutoLogin(string account, string password) { Dialog dialog = new Dialog(); FrameLayout frame = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(198), Width = Application.GetRealWidth(288), Height = Application.GetRealHeight(206), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(12), BorderWidth = 0, BorderColor = 0x00000000, }; dialog.AddChidren(frame); Button btnAccountText = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(40), Height = Application.GetRealHeight(17 + 14 + 14), IsMoreLines = true, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, Text = account, }; frame.AddChidren(btnAccountText); Button btnTipRegisterSuccess = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(123), Height = Application.GetRealHeight(30), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.SubheadingFontSize, TextID = StringId.CongratulationsRegistration, }; frame.AddChidren(btnTipRegisterSuccess); Button btnAutoLoginTip = new Button() { Gravity = Gravity.CenterHorizontal, Y = btnTipRegisterSuccess.Bottom, Height = Application.GetRealHeight(17 + 8), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.AutomaticallyLogin, }; frame.AddChidren(btnAutoLoginTip); Button btnHeadImage = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(150), Width = Application.GetRealWidth(84), Height = Application.GetRealWidth(84), Radius = (uint)Application.GetRealWidth(42), BorderColor = 0x00000000, BorderWidth = 0, UnSelectedImagePath = "LoginIcon/2.png", }; dialog.AddChidren(btnHeadImage); dialog.Show(); new Thread(() => { Thread.Sleep(1500); Application.RunOnMainThread(() => { //创建登录线程 var loginThread = LoadThread_Login(account, password); waitPage = new Loading(); new PublicAssmebly().LoadPage_WaitPage(loginThread, bodyView, waitPage); dialog.Close(); }); }) { IsBackground = true }.Start(); } #region 登录线程部分 /// /// 加载登录线程 /// Thread LoadThread_Login(string account,string password) { var loginThread = new Thread(() => { try { //登录 var loginResult = LoadMethod_Login(account,password); if (loginResult) { //获取住宅信息 var getResidencesResult = LoadMethod_GetResidences(); if (getResidencesResult) { /* * Wait : 推送注册 */ Application.RunOnMainThread(() => { waitPage.RemoveFromParent(); waitPage = null; //跳转页面---- MainPage.GoUserPage(); }); } } } catch (Exception ex) { MainPage.Log($"LoginPage : {ex.Message}"); } }) { IsBackground = true }; return loginThread; } /// /// 调用登录接口登录 /// bool LoadMethod_Login(string account, string password) { var result = false; //调用登录接口 var loginResult = pm.LoginByPassword(account, password); if (loginResult.StateCode.ToUpper() == "SUCCESS") { var loginDataStr = Newtonsoft.Json.Linq.JObject.FromObject(loginResult.ResponseData); //记录用户数据 MainPage.LoginUser = new UserInfo { ID = (int)loginDataStr.GetValue("UserID"), masterID = (int)loginDataStr.GetValue("MainUserID"), accountType = (int)loginDataStr.GetValue("UserType"), accountString = account, password = password, lastTime = DateTime.Now, userName = loginDataStr.GetValue("Remark").ToString(), }; MainPage.LoginUser.SaveUserInfo(); MainPage.Log("登录成功。"); result = true; } //登录失败 else { string tipStr = "Sever erorr"; switch (loginResult.StateCode) { case "USERNAMEORPWDERROR": tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError); break; case "Self:Net_Error": tipStr = Language.StringByID(StringId.NetworkAnomaly); break; } //账号或者密码错误 Application.RunOnMainThread(() => { //提示原因 var tip = new Tip() { Text = tipStr, CloseTime = 1, Direction = AMPopTipDirection.None }; tip.Show(bodyView); btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); }); } return result; } /// /// 获取住宅列表 /// bool LoadMethod_GetResidences() { var result = false; var responsePack = pm.GetHomePager(); if (responsePack == "Success") { } else { var tipStr = "Server erorr"; switch (responsePack) { case "NoLogin": tipStr = Language.StringByID(StringId.InvalidLoginCertificate); break; } Application.RunOnMainThread(() => { //提示原因 var tip = new Tip() { Text = tipStr, CloseTime = 1, Direction = AMPopTipDirection.None }; tip.Show(bodyView); }); } return result; } #endregion } }