using System; using Shared; using HDL_ON.UI.CSS; using System.Threading; namespace HDL_ON.UI { public partial class VerificationCodePage :FrameLayout { FrameLayout bodyView; Button btnNum1; Button btnNum1Line; Button btnNum2; Button btnNum2Line; Button btnNum3; Button btnNum3Line; Button btnNum4; Button btnNum4Line; Button btnNum5; Button btnNum5Line; Button btnNum6; Button btnNum6Line; EditText et; Button btnResend; Action action; int titleId; public VerificationCodePage() { bodyView = this; } public void LoadPage(Action act,int tId) { action = act; titleId = tId; bodyView.BackgroundColor = CSS_Color.BackgroundColor; new TopViewDiv(bodyView, Language.StringByID(tId)).LoadTopView(); Button btnTip = new Button() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(84), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.Center, TextID = StringId.VerificationCodePrompt, }; bodyView.AddChidren(btnTip); btnNum1 = new Button() { X = Application.GetRealWidth(24), Y = Application.GetRealHeight(156), Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(38), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, }; bodyView.AddChidren(btnNum1); btnNum1Line = new Button() { X = Application.GetRealWidth(24), Y = btnNum1.Bottom, Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.PromptingColor2, SelectedBackgroundColor = CSS_Color.MainColor, }; bodyView.AddChidren(btnNum1Line); btnNum2 = new Button() { X = Application.GetRealWidth(80), Y = Application.GetRealHeight(156), Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(38), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, }; bodyView.AddChidren(btnNum2); btnNum2Line = new Button() { X = Application.GetRealWidth(80), Y = btnNum2.Bottom, Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.PromptingColor2, SelectedBackgroundColor = CSS_Color.MainColor, }; bodyView.AddChidren(btnNum2Line); btnNum3 = new Button() { X = Application.GetRealWidth(136), Y = Application.GetRealHeight(156), Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(38), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, }; bodyView.AddChidren(btnNum3); btnNum3Line = new Button() { X = Application.GetRealWidth(136), Y = btnNum3.Bottom, Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.PromptingColor2, SelectedBackgroundColor = CSS_Color.MainColor, }; bodyView.AddChidren(btnNum3Line); btnNum4 = new Button() { X = Application.GetRealWidth(192), Y = Application.GetRealHeight(156), Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(38), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, }; bodyView.AddChidren(btnNum4); btnNum4Line = new Button() { X = Application.GetRealWidth(192), Y = btnNum4.Bottom, Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.PromptingColor2, SelectedBackgroundColor = CSS_Color.MainColor, }; bodyView.AddChidren(btnNum4Line); btnNum5 = new Button() { X = Application.GetRealWidth(248), Y = Application.GetRealHeight(156), Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(38), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, }; bodyView.AddChidren(btnNum5); btnNum5Line = new Button() { X = Application.GetRealWidth(248), Y = btnNum5.Bottom, Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.PromptingColor2, SelectedBackgroundColor = CSS_Color.MainColor, }; bodyView.AddChidren(btnNum5Line); btnNum6 = new Button() { X = Application.GetRealWidth(304), Y = Application.GetRealHeight(156), Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(38), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, }; bodyView.AddChidren(btnNum6); btnNum6Line = new Button() { X = Application.GetRealWidth(304), Y = btnNum6.Bottom, Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.PromptingColor2, SelectedBackgroundColor = CSS_Color.MainColor, }; bodyView.AddChidren(btnNum6Line); et = new EditText() { Y = Application.GetRealHeight(276), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(10), IsNumberKeyboardType = true, Foucs = true, }; bodyView.AddChidren(et); btnResend = new Button() { Y = Application.GetRealHeight(276), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(220), Height = Application.GetRealHeight(44), SelectedBackgroundColor = CSS_Color.MainColor, BackgroundColor = CSS_Color.PromptingColor1, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.MainBackgroundColor, TextID = StringId.Resend, TextSize = CSS_FontSize.SubheadingFontSize, IsBold = true, Radius = (uint)Application.GetRealWidth(22), BorderColor = 0x00000000, BorderWidth = 0, }; bodyView.AddChidren(btnResend); LoadThread_SendVerCode(); LoadEvent_Resend(); LoadEvent_VerificationEntryEvent(); } } //--------------------------------------------- public partial class VerificationCodePage { /// /// 验证码输入变化事件 /// void LoadEvent_VerificationEntryEvent() { EventHandler clickEvent = (sender, e) => { et.Foucs = true; var etCode = et.Text; switch (etCode.Length) { case 0: btnNum1Line.IsSelected = true; btnNum2Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum1Line.Height = Application.GetRealHeight(2); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(1); break; case 1: btnNum2Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(2); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(1); break; case 2: btnNum3Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum2Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(3); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(1); break; case 3: btnNum4Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum2Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(4); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(1); break; case 4: btnNum5Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum2Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(5); btnNum6Line.Height = Application.GetRealHeight(1); break; case 5: btnNum6Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum2Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(2); break; } }; btnNum1.MouseUpEventHandler = clickEvent; btnNum2.MouseUpEventHandler = clickEvent; btnNum3.MouseUpEventHandler = clickEvent; btnNum4.MouseUpEventHandler = clickEvent; btnNum5.MouseUpEventHandler = clickEvent; btnNum6.MouseUpEventHandler = clickEvent; et.TextChangeEventHandler = (sender, e) => { var etCode = et.Text; switch (etCode.Length) { case 0: btnNum1Line.IsSelected = true; btnNum2Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum1Line.Height = Application.GetRealHeight(2); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(1); break; case 1: btnNum2Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum1.Text = etCode.Substring(0, 1); btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(2); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(1); break; case 2: btnNum3Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum2Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum2.Text = etCode.Substring(1, 1); btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(2); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(1); break; case 3: btnNum4Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum2Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum3.Text = etCode.Substring(2, 1); btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(2); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(1); break; case 4: btnNum5Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum2Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum6Line.IsSelected = false; btnNum4.Text = etCode.Substring(3, 1); btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(2); btnNum6Line.Height = Application.GetRealHeight(1); break; case 5: btnNum6Line.IsSelected = true; btnNum1Line.IsSelected = false; btnNum2Line.IsSelected = false; btnNum3Line.IsSelected = false; btnNum4Line.IsSelected = false; btnNum5Line.IsSelected = false; btnNum5.Text = etCode.Substring(4, 1); btnNum1Line.Height = Application.GetRealHeight(1); btnNum2Line.Height = Application.GetRealHeight(1); btnNum3Line.Height = Application.GetRealHeight(1); btnNum4Line.Height = Application.GetRealHeight(1); btnNum5Line.Height = Application.GetRealHeight(1); btnNum6Line.Height = Application.GetRealHeight(2); break; case 6: btnNum6.Text = etCode.Substring(5, 1); et.Foucs = false; new Thread(() => { bool result = false; Action act = () => { }; Application.RunOnMainThread(() => { act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait)); }); var response = new DAL.Server.HttpServerRequest().ValidatorCode(MainPage.LoginUser.userEmailInfo, etCode, MainPage.LoginUser.areaCode); if (response.StateCode.ToUpper() == "SUCCESS") { result = true; } else { string erorrInfo = ""; switch (response.StateCode) { case "ValidCodeAndPhoneNoEqual"://验证码错误 erorrInfo = Language.StringByID(StringId.VerificationCodeWrong); break; case "NoRecord": erorrInfo = Language.StringByID(StringId.PlsGetTheVerificationCode); break; default: erorrInfo = "Server error"; break; } Application.RunOnMainThread(() => { new Tip() { CloseTime = 3, Direction = AMPopTipDirection.None, Text = erorrInfo, }.Show(bodyView); }); } Application.RunOnMainThread(() => { act(); }); if (result) { Application.RunOnMainThread(() => { new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.ValidationSuccessful), true); }); Thread.Sleep(1600); Application.RunOnMainThread(() => { MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent(); //MainPage.BasePageView.RemoveAt(MainPage.BasePageView.ChildrenCount - 1); if (titleId == StringId.ModifyBindingEmail) { LoadEvent_SkipBindAccountInfoPage(StringId.BindEmail); } else if (titleId == StringId.ModifyBindingPhone) { LoadEvent_SkipBindAccountInfoPage(StringId.BindPhone); } else if (titleId == StringId.UnbindEmail)//解除绑定邮箱 { var account = ""; new Thread(() => { var result2 = new DAL.Server.HttpServerRequest().BindAccount(account); if (result2 == "SUCCESS") { Application.RunOnMainThread(() => { MainPage.LoginUser.userEmailInfo = account; var page = new OperationResultDisPalyPage(); page.Show(); page.LoadPage(true, Language.StringByID(StringId.UnbindEmail), Language.StringByID(StringId.UnbindEmailSuccess), ""); for (int i = 0; i < 2; i++) { MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent(); //MainPage.BasePageView.RemoveAt(MainPage.BasePageView.ChildrenCount - 1); } action(account); }); } else { Application.RunOnMainThread(() => { new Tip() { CloseTime = 3, Direction = AMPopTipDirection.None, Text = Language.StringByID(StringId.OperationFailed), }.Show(bodyView); }); } }) { IsBackground = true }.Start(); } }); } }) { IsBackground = true }.Start(); break; } }; } /// /// 重发验证码等待线程 /// void LoadThread_SendVerCode() { btnResend.IsSelected = false; int time = 60; new Thread(() => { while (time > 0) { time--; Application.RunOnMainThread(() => { btnResend.Text = time.ToString() + "s"; }); Thread.Sleep(1000); } Application.RunOnMainThread(() => { btnResend.IsSelected = true; btnResend.TextID = StringId.GetVerificationCode; }); }) { IsBackground = true }.Start(); } /// /// 重发验证码事件 /// void LoadEvent_Resend() { btnResend.MouseUpEventHandler = (sender, e) => { LoadThread_SendVerCode(); }; } /// /// 跳转绑定账号邮箱事件 /// void LoadEvent_SkipBindAccountInfoPage(int skipTid) { var vcp = new BindAccountPage(); MainPage.BasePageView.AddChidren(vcp); vcp.LoadPage(action,skipTid); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } } }