using Shared.SimpleControl;
|
using System;
|
using System.Collections.Generic;
|
using System.Security.Cryptography;
|
using System.Text;
|
|
namespace Shared.SimpleControl.Phone
|
{
|
public class AccountLogin : Dialog
|
{
|
public AccountLogin (string account = "", string password = "")
|
{
|
LoginViewShow (account, password);
|
}
|
|
public void LoginViewShow (string account = "", string password = "")
|
{
|
var bodyView = new FrameLayout () {
|
BackgroundColor = SkinStyle.Current.ViewColor
|
};
|
AddChidren (bodyView);
|
|
if (MainPage.LoginUser != null && MainPage.LoginUser.IsLogin == true) {
|
this.Close ();
|
AccountView accView = new AccountView ();
|
UserMiddle.SettingPageView.AddChidren (accView);
|
accView.ShouwAccountView ();
|
UserMiddle.SettingPageView.PageIndex = UserMiddle.SettingPageView.ChildrenCount - 1;
|
}
|
//UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.LinkStatusTipColor;
|
if (MainPage.LoginUser != null && account == "") {
|
account = MainPage.LoginUser.AccountString;
|
}
|
FrameLayout logoView = new FrameLayout () {
|
Height = Application.GetRealHeight (400),
|
};
|
bodyView.AddChidren (logoView);
|
|
//FrameLayout textView = new FrameLayout () {
|
// Y = logoView.Bottom,
|
// Height = Application.GetRealHeight (500),
|
//};
|
//AddChidren (textView);
|
|
//FrameLayout buttonView = new FrameLayout () {
|
// Y = textView.Bottom,
|
// Height = Application.GetRealHeight (236),
|
//};
|
//AddChidren (buttonView);
|
|
Button btnLogo = new Button () {
|
Y = Application.GetRealHeight(30),
|
Height = Application.GetRealHeight (430),
|
UnSelectedImagePath = MainPage.RegisterLogoString,
|
};
|
logoView.AddChidren (btnLogo);
|
|
var accountView = new FrameLayout () {
|
Width = Application.GetMinRealAverage (500),
|
Height = Application.GetMinRealAverage (85),
|
X = Application.GetRealWidth (70),
|
Y = btnLogo.Bottom + Application.GetRealHeight (30),
|
BackgroundImagePath = "Register/Register_Email_Address.png",
|
Radius = (uint)Application.GetRealHeight (0),
|
};
|
bodyView.AddChidren (accountView);
|
|
var etAccount = new EditText () {
|
Width = Application.GetRealWidth (400),
|
X = Application.GetRealWidth (100),
|
PlaceholderTextColor = SkinStyle.Current.PlaceholderTextColor,
|
PlaceholderText = Language.StringByID (R.MyInternationalizationString.EmailAddress),
|
TextAlignment = TextAlignment.CenterLeft,
|
Radius = (uint)Application.GetRealHeight (0),
|
TextColor = SkinStyle.Current.TextColor1,
|
//Text = account,
|
#if DEBUG
|
//Text = "crabtreel12019@gmail.com"
|
//Text = "paanghal@gmail.com"
|
Text = "kumar.niranjan72@gmail.com"
|
|
#endif
|
};
|
accountView.AddChidren (etAccount);
|
|
var userConfigBytes = IO.FileUtils.ReadFile ("AccountListDB");
|
var userConfigString = CommonPage.MyEncodingUTF8.GetString (userConfigBytes);
|
AccountListDB accountListDB = null;
|
if (userConfigString != null) {
|
accountListDB = Newtonsoft.Json.JsonConvert.DeserializeObject<AccountListDB> (userConfigString);
|
}
|
if (accountListDB == null) {
|
accountListDB = new AccountListDB ();
|
}
|
var accountList = accountListDB.account;
|
|
var accountListView = new VerticalScrolViewLayout () {
|
Width = Application.GetRealWidth (500),
|
Height = Application.GetRealHeight (85 * 2),
|
Y = accountView.Bottom,
|
X = accountView.X,
|
BackgroundColor = SkinStyle.Current.ViewColor,
|
Visible = false,
|
};
|
|
var passwrodView = new FrameLayout () {
|
Width = Application.GetMinRealAverage (500),
|
Height = Application.GetMinRealAverage (85),
|
X = Application.GetRealWidth (70),
|
Y = accountView.Bottom + Application.GetRealHeight (50),
|
BackgroundImagePath = "Register/Register_Password_kuang.png",
|
};
|
bodyView.AddChidren (passwrodView);
|
|
var etPasswrod = new EditText () {
|
Width = Application.GetRealWidth (400-73),
|
X = Application.GetRealWidth (100),
|
PlaceholderTextColor = SkinStyle.Current.PlaceholderTextColor,
|
PlaceholderText = Language.StringByID (R.MyInternationalizationString.PleaseEnterPassword),
|
TextAlignment = TextAlignment.CenterLeft,
|
SecureTextEntry = true,
|
TextColor = SkinStyle.Current.TextColor1,
|
#if DEBUG
|
Text = "123456"
|
#endif
|
//Text = password,
|
};
|
passwrodView.AddChidren (etPasswrod);
|
|
Button btnShowPassword = new Button () {
|
X = etPasswrod.Right ,
|
Y = etPasswrod.Y + Application.GetRealHeight (12),
|
Width = Application.GetRealWidth (73),
|
Height = Application.GetRealHeight (60),
|
UnSelectedImagePath = "CrabtreeAdd/ShowPW.png",
|
SelectedImagePath = "CrabtreeAdd/HidePW.png",
|
BorderColor = SkinStyle.Current.Transparent,
|
BorderWidth = 2,
|
Radius = 1
|
};
|
passwrodView.AddChidren (btnShowPassword);
|
btnShowPassword.MouseUpEventHandler += (dd, ff) => {
|
btnShowPassword.IsSelected = !btnShowPassword.IsSelected;
|
etPasswrod.SecureTextEntry = !btnShowPassword.IsSelected;
|
};
|
|
#if DEBUG
|
int NigelLoginPass = 0;
|
btnLogo.MouseUpEventHandler += (sender, e) => {
|
etAccount.Text = "460649739@qq.com";
|
etPasswrod.Text = "kkkkkk333";
|
if (NigelLoginPass == 3) {
|
etAccount.Text = @"464027401@qq.com";
|
etPasswrod.Text = "qqqqqq";
|
} else if (NigelLoginPass == 5) {
|
etAccount.Text = @"Jai.singh@havells.com";
|
etPasswrod.Text = "123456";
|
}
|
NigelLoginPass++;
|
};
|
#endif
|
etAccount.EditorEnterAction += (obj) => {
|
Application.HideSoftInput ();
|
etPasswrod.Foucs = true;
|
};
|
etPasswrod.EditorEnterAction += (obj) => {
|
Application.HideSoftInput ();
|
};
|
|
Button btnRegister = new Button () {
|
Width = Application.GetRealWidth (200),
|
Height = Application.GetRealHeight (85),
|
X = Application.GetRealWidth (70),
|
Y = passwrodView.Bottom + Application.GetRealHeight (10),
|
Text = "Sign up",
|
TextSize = 15,
|
TextColor = SkinStyle.Current.TextColor1,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
btnRegister.MouseUpEventHandler += (sender, e) => {
|
Close ();
|
new AccountRegistration_Crabtree ().Show ();
|
};
|
bodyView.AddChidren (btnRegister);
|
|
Button btnForgotPassword = new Button () {
|
Width = Application.GetRealWidth (500 / 2),
|
Height = Application.GetRealHeight (85),
|
X = btnRegister.Right + Application.GetRealWidth (50),
|
Y = passwrodView.Bottom + Application.GetRealHeight (10),
|
Text = "Forgot password?",
|
TextSize = 15,
|
TextColor = SkinStyle.Current.TextColor1,
|
TextAlignment = TextAlignment.CenterRight,
|
};
|
btnForgotPassword.MouseUpEventHandler += (sender, e) => {
|
new ForgotPassword ().Show ();
|
this.Close ();
|
};
|
bodyView.AddChidren (btnForgotPassword);
|
|
Button btnLogin = new Button () {
|
Width = Application.GetRealWidth (504),
|
Height = Application.GetRealHeight (89),
|
X = Application.GetRealWidth (60),
|
Y = btnRegister.Bottom + Application.GetRealHeight(70),
|
BackgroundColor = SkinStyle.Current.MainColor,
|
SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
|
TextID = R.MyInternationalizationString.Login,
|
TextSize = 15,
|
TextColor = SkinStyle.Current.TextColor1,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.Transparent,
|
BorderWidth = 0,
|
};
|
bodyView.AddChidren (btnLogin);
|
btnLogin.MouseDownEventHandler += (sender, e) => {
|
btnLogin.IsSelected = true;
|
};
|
|
btnLogin.MouseUpEventHandler += (sender, e) => {
|
btnLogin.IsSelected = false;
|
account = etAccount.Text.Trim ();
|
password = etPasswrod.Text.Trim ();
|
if (string.IsNullOrEmpty (account) && string.IsNullOrEmpty (password)) {
|
Application.RunOnMainThread (() => {
|
new Tip () { Text = "Please enter your login details.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
|
});
|
return;
|
}
|
if (string.IsNullOrEmpty (account) ) {
|
Application.RunOnMainThread (() => {
|
new Tip () { Text = "Please enter your user id.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
|
});
|
return;
|
}
|
if (string.IsNullOrEmpty (password)) {
|
Application.RunOnMainThread (() => {
|
new Tip () { Text = "Please enter your password.", Direction = AMPopTipDirection.Up, CloseTime = 3 }.Show (btnLogo);
|
});
|
return;
|
}
|
System.Threading.Tasks.Task.Run (() => {
|
try {
|
Application.RunOnMainThread (() => {
|
if (Language.CurrentLanguage == "Chinese") {
|
MainPage.Loading.Start ("登录中...");
|
} else {
|
MainPage.Loading.Start ("Login...");
|
}
|
});
|
if (UserConfig.Instance.internetStatus == 0 ) {
|
Application.RunOnMainThread (() => {
|
new Tip () { Text = "Network abnormal, unable to connect to the Internet", Direction = AMPopTipDirection.Down , CloseTime = 3}.Show (btnLogo);
|
});
|
return;
|
}
|
|
var revertConnectionObj = MainPage.RequestHttps ("Connection", "");
|
if (revertConnectionObj.StateCode == "SUCCESS") {
|
Application.RunOnMainThread (() => {
|
if (Language.CurrentLanguage == "Chinese") {
|
MainPage.Loading.Start ("链接服务器成功...");
|
} else {
|
MainPage.Loading.Start ("Link server successful...");
|
}
|
});
|
|
var requestObj = new LoginObj () { Account = account, Password = password, Company = MainPage.SoftSmsType };
|
var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
|
var revertObj = MainPage.RequestHttps ("Login", requestJson, false);
|
if (revertObj.StateCode == "SUCCESS") {
|
|
if (!accountListDB.account.Contains (account)) {
|
accountListDB.account.Add (account);
|
accountListDB.SaveAccountListDB ();
|
}
|
|
var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes> (revertObj.ResponseData.ToString ());
|
var revertData = responseDataObj;
|
MainPage.LoginUser = new UserInfo {
|
ID = revertData.UserId, MasterID = revertData.MainUserId, AccountType = revertData.UserType, AccountString = account, Password = password, LastTime = DateTime.Now,
|
AllVisionRegisterDevUserNameGuid = revertData.AllVisionRegisterDevUserNameGuid, Name = revertData.Contact
|
};
|
|
//2021-12-27 去掉解决客户反馈iOS 无法登陆问题
|
//var se = new service.hdlcontrol.com_push.WebServicePush ();
|
//se.VerifySoapHeaderValue = new service.hdlcontrol.com_push.VerifySoapHeader () { Email = MainPage.LoginUser.AccountString, UserMode = 0 };
|
//se.AddRegId (UserConfig.Instance.tokenID, UserConfig.Instance.phoneName);
|
|
var requestObj2 = new HomeListObj ();
|
var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
|
var revertObj2 = MainPage.RequestHttps ("HomeList", requestJson2);
|
if (revertObj2.StateCode == "SUCCESS") {
|
var responseDataObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj2.ResponseData.ToString ());
|
var revertRoomData = responseDataObj2;
|
//2020-04-10 增加判空处理
|
if (UserConfig.Instance.CurrentRegion == null || revertRoomData.Find ((obj) => obj.RegionID == UserConfig.Instance.CurrentRegion.RegionID) == null) {
|
UserConfig.Instance.CurrentRegion = revertRoomData [0];
|
UserConfig.Instance.GatewayMAC = revertRoomData [0].MAC;
|
IO.FileUtils.DeleteAllFile ();
|
} else {
|
Room.InitAllRoom ();
|
}
|
|
var gatewayListObj = new GatewayListObj ();
|
var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj);
|
var gatewayListRevertObj = MainPage.RequestHttps ("GatewayList", gatewayListJson);
|
if (gatewayListRevertObj.StateCode == "SUCCESS") {
|
UserConfig.Instance.GatewayList.Clear ();
|
var responseGatewayDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (gatewayListRevertObj.ResponseData.ToString ());
|
UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj);
|
UserConfig.Instance.SaveUserConfig ();
|
MainPage.LoginUser.LastTime = DateTime.Now;
|
if (UserConfig.Instance.GatewayList.Count == 0) {
|
Application.RunOnMainThread (() => {
|
UserMiddle.Init ();
|
Close ();
|
});
|
return;
|
} else {
|
UserConfig.Instance.HomeLists = revertRoomData;
|
MainPage.LoginUser.SaveUserInfo ();
|
UserConfig.Instance.SaveUserConfig ();
|
Scene.Refresh ();
|
A31MusicModel.Refresh ();
|
Application.RunOnMainThread (() => {
|
Close ();
|
UserMiddle.Init ();
|
EquipmentPublicClass.CheckLinkRemote (2);
|
});
|
}
|
}
|
}
|
}
|
}
|
} catch (Exception ex) {
|
MainPage.FailureToServer ();
|
Console.WriteLine (ex.Message);
|
} finally {
|
Application.RunOnMainThread (() => {
|
MainPage.Loading.Hide ();
|
});
|
}
|
}) ;
|
};
|
|
etAccount.FoucsChanged += ( sender, e) => {
|
//#if __IOS__
|
//btnRegister.Visible = btnForgotPassword.Visible = !e.Focus;
|
//#endif
|
if (e.Focus) {
|
if (etAccount.Text == "")
|
accountList.Clear ();
|
else
|
accountList = accountListDB.account.FindAll ((obj) => (obj.Contains (etAccount.Text) && obj != etAccount.Text));
|
if (accountListView.Parent == null) {
|
bodyView.AddChidren (accountListView);
|
}
|
if (accountList.Count > 0) {
|
accountListView.Visible = e.Focus;
|
foreach (var dbAccount in accountList) {
|
Button btnDB_Account = new Button () {
|
Height = Application.GetRealHeight (85),
|
Radius = 1,
|
BorderColor = SkinStyle.Current.BorderColor,
|
BorderWidth = 1,
|
BackgroundColor = SkinStyle.Current.ViewColor,
|
TextAlignment = TextAlignment.Center,
|
TextColor = SkinStyle.Current.TextColor1,
|
Text = dbAccount
|
};
|
accountListView.AddChidren (btnDB_Account);
|
btnDB_Account.MouseUpEventHandler += (asdd, eee) => {
|
etPasswrod.Foucs = true;
|
etAccount.Text = dbAccount;
|
accountListView.Visible = false;
|
};
|
}
|
}
|
} else {
|
accountListView.Visible = e.Focus;
|
}
|
};
|
etAccount.TextChangeEventHandler += (sender, e) => {
|
if (e.Length == 0) {
|
accountListView.Visible = false;
|
return;
|
}
|
accountList = accountListDB.account.FindAll ((obj) => (obj.Contains (e) && obj != e));
|
if (accountList.Count == 0) {
|
accountListView.Visible = false;
|
return;
|
}
|
accountListView.Visible = true;
|
accountListView.RemoveAll ();
|
foreach (var dbAccount in accountList) {
|
Button btnDB_Account = new Button () {
|
Height = Application.GetRealHeight (85),
|
Radius = 1,
|
BorderColor = SkinStyle.Current.BorderColor,
|
TextColor = SkinStyle.Current.TextColor1,
|
BorderWidth = 1,
|
BackgroundColor = SkinStyle.Current.ViewColor,
|
TextAlignment = TextAlignment.Center,
|
Text = dbAccount
|
};
|
accountListView.AddChidren (btnDB_Account);
|
btnDB_Account.MouseUpEventHandler += (asdd, eee) => {
|
etPasswrod.Foucs = true;
|
etAccount.Text = dbAccount;
|
accountListView.Visible = false;
|
};
|
}
|
};
|
|
btnLogo.MouseDownEventHandler += (sender, e) => {
|
Application.HideSoftInput ();
|
};
|
bodyView.MouseDownEventHandler += (sender, e) => {
|
Application.HideSoftInput ();
|
};
|
|
|
|
}
|
|
}
|
}
|