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<string> action;
|
int titleId;
|
|
public VerificationCodePage()
|
{
|
bodyView = this;
|
}
|
|
public void LoadPage(Action<string> 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
|
{
|
/// <summary>
|
/// 验证码输入变化事件
|
/// </summary>
|
void LoadEvent_VerificationEntryEvent()
|
{
|
EventHandler<MouseEventArgs> 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;
|
}
|
};
|
}
|
/// <summary>
|
/// 重发验证码等待线程
|
/// </summary>
|
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();
|
}
|
/// <summary>
|
/// 重发验证码事件
|
/// </summary>
|
void LoadEvent_Resend()
|
{
|
btnResend.MouseUpEventHandler = (sender, e) => {
|
LoadThread_SendVerCode();
|
};
|
}
|
/// <summary>
|
/// 跳转绑定账号邮箱事件
|
/// </summary>
|
void LoadEvent_SkipBindAccountInfoPage(int skipTid)
|
{
|
var vcp = new BindAccountPage();
|
MainPage.BasePageView.AddChidren(vcp);
|
vcp.LoadPage(action,skipTid);
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
}
|
}
|
}
|