using System;
using Shared;
using HDL_ON.UI.CSS;
using System.Threading;
using System.Text.RegularExpressions;
using HDL_ON.DAL.Server;
namespace HDL_ON.UI
{
///
/// 新绑定或者换绑--手机或者邮箱发送验证码
///
public partial class NewBindAccountPage : FrameLayout
{
FrameLayout bodyView;
Button btnBind;
EditText etContent;
///
///
///
Action action;
///
/// 标题ID
///
int titleId;
///
/// 是否手机
///
bool isPhone;
///
/// 是否换绑
///
bool isModifyBind;
///
/// 手机区号
///
string phoneZoneCode = "86";
///
///
///
public NewBindAccountPage()
{
bodyView = this;
}
///
/// LoadPage
///
///
/// 是否绑定手机
public void LoadPage(Action act, bool isPhone = false, bool isModifyBind = false)
{
action = act;
this.isPhone = isPhone;
this.isModifyBind = isModifyBind;
if (isModifyBind)
{
//修改绑定
titleId = isPhone ? StringId.EntryNewPhone : StringId.EntryNewEmail;
}
else
{
//新绑定
titleId = isPhone ? StringId.BoundMobileInfo : StringId.BoundEmailInfo;
}
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
new TopViewDiv(bodyView, Language.StringByID(titleId)).LoadTopView();
if (isPhone)
{
AddPhoneFrameLayout();
}
else
{
AddEmailFrameLayout();
}
//点击获取验证码
LoadEvent_GetVerification(btnBind);
}
///
///
///
void AddPhoneFrameLayout() {
#region 如果是手机
//手机国家区号选择按钮
ListCellView codeView = new ListCellView() {
Y = Application.GetRealHeight(64),
};
bodyView.AddChidren(codeView);
//跳转国家区号选择界面
Action selectAction = () =>
{
JLCountrycode.CountryCodeView.Current.Show((countryName, code) => {
if (!string.IsNullOrEmpty(code))
{
phoneZoneCode = code;
codeView.BtnSubtitle.Text = "+" + phoneZoneCode;
}
});
};
codeView.GoAction = selectAction;
codeView.BtnTilte.Text = Language.StringByID(StringId.CountryOrRegion);
codeView.BtnSubtitle.Text = "+" + phoneZoneCode;
//手机号输入框
FrameLayout rowView = new FrameLayout()
{
Y = codeView.Bottom,
Height = Application.GetRealHeight(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(rowView);
//绑定手机号
Button btnTitle = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(180),
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextAlignment = TextAlignment.CenterLeft,
TextID = titleId,
};
rowView.AddChidren(btnTitle);
etContent = new EditText()
{
Width = Application.GetRealWidth(359),
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
TextAlignment = TextAlignment.CenterRight,
Foucs = true
};
rowView.AddChidren(etContent);
btnBind = new Button()
{
Y = Application.GetRealHeight(213),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(220),
Height = Application.GetRealWidth(44),
BackgroundColor = CSS_Color.MainColor,
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.MainBackgroundColor,
TextID = StringId.GetVerificationCode,
TextSize = CSS_FontSize.SubheadingFontSize,
IsBold = true,
Radius = (uint)Application.GetRealWidth(22),
BorderColor = 0x00000000,
BorderWidth = 0,
};
bodyView.AddChidren(btnBind);
#endregion
}
///
///
///
void AddEmailFrameLayout()
{
#region 如果是邮箱
FrameLayout rowView = new FrameLayout()
{
Y = Application.GetRealHeight(72),
Height = Application.GetRealHeight(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(rowView);
//绑定邮箱
Button btnTitle = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(180),
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextAlignment = TextAlignment.CenterLeft,
TextID = titleId,
};
rowView.AddChidren(btnTitle);
etContent = new EditText()
{
Width = Application.GetRealWidth(359),
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
TextAlignment = TextAlignment.CenterRight,
Foucs = true
};
rowView.AddChidren(etContent);
btnBind = new Button()
{
Y = Application.GetRealHeight(213),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(220),
Height = Application.GetRealWidth(44),
BackgroundColor = CSS_Color.MainColor,
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.MainBackgroundColor,
TextID = StringId.GetVerificationCode,
TextSize = CSS_FontSize.SubheadingFontSize,
IsBold = true,
Radius = (uint)Application.GetRealWidth(22),
BorderColor = 0x00000000,
BorderWidth = 0,
};
bodyView.AddChidren(btnBind);
#endregion
}
}
//--------------------------------------------
public partial class NewBindAccountPage
{
///
/// 点击获取验证码
///
void LoadEvent_GetVerification(Button button)
{
button.MouseUpEventHandler = (sender, e) =>
{
if (button.Text == Language.StringByID(StringId.GetVerificationCode))
{
Application.HideSoftInput();
var account = etContent.Text.Trim();
//如果是换绑检测是否相同帐号
if (isModifyBind)
{
if (isPhone)
{
if(account == UserInfo.Current.userMobileInfo)
{
//提示换绑帐号相同
Utlis.ShowTip(Language.StringByID(StringId.EntryNewPhone));
return;
}
}
else
{
if (account == UserInfo.Current.userEmailInfo)
{
//提示换绑帐号相同
Utlis.ShowTip(Language.StringByID(StringId.EntryNewEmail));
return;
}
}
}
#region 正则表达式
//1.检测账号是否合法
if (!isPhone)
{
if (!Utlis.CheckEmail(account))
{
Utlis.ShowTip(Language.StringByID(StringId.PlsEntryCorrectEmailAddress));
return;
}
}
else
{
if (!Utlis.CheckPhoneNumber(account, phoneZoneCode))
{
Utlis.ShowTip(Language.StringByID(StringId.PlsEntryCorrectMobilNeumber));
return;
}
}
#endregion
//加载Loading效果
var waitPage = new Loading();
bodyView.AddChidren(waitPage);
waitPage.Start(Language.StringByID(StringId.PleaseWait));
int time = 0;
//2.检验通过
new Thread(() =>
{
try
{
//2.2 获取验证码
ResponsePackNew resultObj;
if (!isPhone)//邮箱
{
resultObj = new HttpServerRequest().VerificationCodeSend(VerifyType.REGISTER_USER_SYSTEM, account);
}
else
{
resultObj = new HttpServerRequest().VerificationCodeSend(VerifyType.REGISTER_USER_SYSTEM, account, true, phoneZoneCode);
}
if (resultObj.Code != StateCode.SUCCESS)
{
// 提示错误
IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
}
else
{
if (time == 0)
{
time = 60;
new Thread(() =>
{
while (time > 0)
{
time--;
Application.RunOnMainThread(() =>
{
button.Text = time.ToString() + "s";
});
Thread.Sleep(1000);
}
Application.RunOnMainThread(() =>
{
button.IsSelected = true;
button.TextID = StringId.GetVerificationCode;
button.BackgroundColor = CSS_Color.MainColor;
time = 0;
});
})
{ IsBackground = true }.Start();
}
Application.RunOnMainThread(() =>
{
button.BackgroundColor = CSS_Color.PromptingColor1;
var vcp = new NewBindVerificationCodePage();
vcp.PhoneZoneCode = phoneZoneCode;
MainPage.BasePageView.AddChidren(vcp);
vcp.LoadPage(action, titleId, account, isPhone, time, isModifyBind);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
});
}
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
if (waitPage != null)
{
waitPage.RemoveFromParent();
waitPage = null;
}
});
}
})
{ IsBackground = true }.Start();
}
};
}
}
}