using System;
using Shared;
using HDL_ON.UI.CSS;
using System.Threading;
using HDL_ON.DAL.Server;
namespace HDL_ON.UI
{
///
/// 新绑定或者换绑--验证码验证并绑定
///
public partial class NewBindVerificationCodePage : 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;
///
/// 是否手机
///
bool isPhone;
///
/// 是否换绑
///
bool isModifyBind;
///
/// 新绑定的账号
///
string verAccount;
///
/// 手机区号
///
public string PhoneZoneCode = "86";
public NewBindVerificationCodePage()
{
bodyView = this;
}
///
/// 回掉函数
/// 页面标题
/// 账号
/// 是否手机
/// 倒计时时间
/// 是否为修改绑定
public void LoadPage(Action act, int tId, string account, bool bPhone, int t, bool isModifyBind)
{
action = act;
titleId = tId;
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
isPhone = bPhone;
time = t;
this.verAccount = account;
this.isModifyBind = isModifyBind;
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 NewBindVerificationCodePage
{
///
/// 验证码输入变化事件
///
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 resultObj = new HttpServerRequest().BindAccount(verAccount, etCode, isPhone);
if (resultObj == StateCode.SUCCESS)
{
result = true;
}
else
{
//失败提示
IMessageCommon.Current.ShowErrorInfoAlter(resultObj);
}
Application.RunOnMainThread(() =>
{
act();
});
if (result)
{
//绑定成功
BindSuccess();
}
})
{ IsBackground = true }.Start();
break;
}
};
}
///
/// 绑定成功
///
void BindSuccess()
{
Application.RunOnMainThread(() =>
{
var tipTitle = "";
var tipMsg = "";
if (isPhone)
{
UserInfo.Current.userMobileInfo = verAccount;
//请使用新的手机账号登录APP
tipMsg = Language.StringByID(StringId.PleaseLoginWithNewMobileAccount);
if (isModifyBind)
{
//登录手机修改完成
tipTitle = Language.StringByID(StringId.LoginMobileAccountModificationCompleted);
}
else
{
//登录手机绑定完成
tipTitle = Language.StringByID(StringId.LoginMobileAccountBindCompleted);
}
}
else
{
UserInfo.Current.userEmailInfo = verAccount;
//请使用新的邮箱账号登录APP
tipMsg = Language.StringByID(StringId.PleaseLoginWithNewEmailAccount);
if (isModifyBind)
{
//登录邮箱修改完成
tipTitle = Language.StringByID(StringId.LoginEmailAccountModificationCompleted);
}
else
{
//登录邮箱绑定完成
tipTitle = Language.StringByID(StringId.LoginEmailAccountBindCompleted);
}
}
var page = new OperationResultDisPalyPage();
page.Show();
page.LoadPage(true, Language.StringByID(titleId), tipTitle, tipMsg);
if (isModifyBind)
{
ClosePageWithCount(3);
}
else
{
ClosePageWithCount(2);
}
action(verAccount);
});
}
///
/// 指定关闭页面个数
///
///
void ClosePageWithCount(int countPage)
{
//关闭多少个页面
for (int i = 0; i < countPage; i++)
{
MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
}
}
///
/// 重发验证码等待线程
///
void LoadThread_SendVerCode()
{
btnResend.IsSelected = false;
et.Foucs = true;
if (time == 0)
{
time = 60;
new Thread(() =>
{
//2.2 获取验证码
ResponsePackNew resultObj;
if (!isPhone)//邮箱
{
resultObj = new HttpServerRequest().VerificationCodeSend(VerifyType.REGISTER_USER_SYSTEM, verAccount);
}
else
{
resultObj = new HttpServerRequest().VerificationCodeSend(VerifyType.REGISTER_USER_SYSTEM, verAccount, true, PhoneZoneCode);
}
})
{ 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 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();
}
}
}
}
}