using System; using Shared; using HDL_ON.UI.CSS; using System.Threading; using HDL_ON.DAL.Server; namespace HDL_ON.UI { /// /// 修改绑定或者解绑--验证码验证页面 /// public partial class ChangeBindVerificationCodePage : 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; /// /// /// Button btnTip; /// /// /// Action action; /// /// /// int titleId; /// /// 操作目标类型 1:邮箱,2:手机 /// int optionType; /// /// 倒计时时间 /// int time = 0; /// /// 是否为解绑验证 /// public bool IsUnbind; /// /// /// public ChangeBindVerificationCodePage() { bodyView = this; } /// /// /// /// 回掉函数 /// 页面标题 /// 操作类型1:邮箱;2:手机 /// 倒计时时间 public void LoadPage(Action act, int tId, int ot, int t) { action = act; titleId = tId; bodyView.BackgroundColor = CSS_Color.BackgroundColor; optionType = ot; time = t; Action backAction = () => { Application.HideSoftInput(); BackConfirmAction(); }; new TopViewDiv(bodyView, Language.StringByID(tId), false).LoadTopView(backAction); 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(2), BackgroundColor = CSS_Color.PromptingColor2, SelectedBackgroundColor = CSS_Color.MainColor, IsSelected = true }; 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.GetRealWidth(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 ChangeBindVerificationCodePage { /// /// 验证码输入变化事件 /// 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); btnNum1.Text = ""; btnNum2.Text = ""; btnNum3.Text = ""; btnNum4.Text = ""; btnNum5.Text = ""; btnNum6.Text = ""; 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); btnNum2.Text = ""; btnNum3.Text = ""; btnNum4.Text = ""; btnNum5.Text = ""; btnNum6.Text = ""; 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); btnNum3.Text = ""; btnNum4.Text = ""; btnNum5.Text = ""; btnNum6.Text = ""; 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); btnNum4.Text = ""; btnNum5.Text = ""; btnNum6.Text = ""; 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); btnNum5.Text = ""; btnNum6.Text = ""; 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); btnNum6.Text = ""; 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 verAccount = optionType == 1 ? UserInfo.Current.userEmailInfo : UserInfo.Current.userMobileInfo; var isPhone = optionType == 2; var resultObj = new HttpServerRequest().ValidatorCode(VerifyType.SENSITIVE_DATA, verAccount, etCode, isPhone); if (resultObj.Code == StateCode.SUCCESS) { result = true; } else { //失败提示 IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code); } 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 (isUnbind) //{ // //当前为解绑验证 //} //else //{ //} 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().UnBindAccount(false); if (result2 == StateCode.SUCCESS) { Application.RunOnMainThread(() => { UserInfo.Current.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(); } action(account); }); } else { //失败提示 IMessageCommon.Current.ShowErrorInfoAlter(result2); } }) { IsBackground = true }.Start(); } else if (titleId == StringId.UnbindPhone) { var account = ""; new Thread(() => { var result2 = new DAL.Server.HttpServerRequest().UnBindAccount(true); if (result2 == StateCode.SUCCESS) { Application.RunOnMainThread(() => { UserInfo.Current.userMobileInfo = account; var page = new OperationResultDisPalyPage(); page.Show(); page.LoadPage(true, Language.StringByID(StringId.UnbindPhone), Language.StringByID(StringId.UnbindPhoneSuccess), ""); for (int i = 0; i < 2; i++) { MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent(); } action(account); }); } else { //失败提示 IMessageCommon.Current.ShowErrorInfoAlter(result2); } }) { IsBackground = true }.Start(); } }); } }) { IsBackground = true }.Start(); break; } }; } /// /// 重发验证码等待线程 /// void LoadThread_SendVerCode() { btnResend.IsSelected = false; et.Foucs = true; if (time == 0) { time = 60; new Thread(() => { //1.获取验证码,采用敏感数据验证 ResponsePackNew resultObj; if (optionType == 1)//邮箱 { resultObj = new HttpServerRequest().VerificationCodeSend(VerifyType.SENSITIVE_DATA, UserInfo.Current.userEmailInfo); } else { resultObj = new HttpServerRequest().VerificationCodeSend(VerifyType.SENSITIVE_DATA, UserInfo.Current.userMobileInfo, true, UserInfo.Current.areaCode); } }) { IsBackground = true }.Start(); } 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; time = 0; }); }) { 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; //是否为换绑手机 var isPhone = optionType == 2; //跳转新绑定页面 var aep = new NewBindAccountPage(); MainPage.BasePageView.AddChidren(aep); aep.LoadPage(action, isPhone, true); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } /// /// 返回二次确认事件 /// void BackConfirmAction() { //验证码发送成功,二次确认退出 if (btnTip.TextID == StringId.VerificationCodePrompt) { Action cancelAction = () => { if (bodyView != null) { bodyView.RemoveFromParent(); } }; new ConfirmDialog().ShowDialog(StringId.Tip, StringId.VerificationCodeMayBeDelayed, null, cancelAction, StringId.ReturnStr, StringId.WaitAMoment); } else { //直接关闭 if (bodyView != null) { bodyView.RemoveFromParent(); } } } } }