From 587c36e27131f2d028fcabc13b296a8de7470034 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期三, 08 一月 2020 08:59:19 +0800
Subject: [PATCH] 2019.1.8
---
ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs | 275 +++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 256 insertions(+), 19 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs
index 2a93400..798fe31 100644
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs
@@ -67,6 +67,10 @@
/// 楠岃瘉鐮�
/// </summary>
private string code;
+ /// <summary>
+ /// wechat
+ /// </summary>
+ private Button wechatBtn;
private Timer t;
private DateTime dateBegin;
@@ -87,6 +91,7 @@
/// </summary>
public AccountLoginByCode()
{
+ CommonPage.Instance.IsDrawerLockMode = true;
Tag = "Login";
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
t = new Timer();
@@ -150,7 +155,8 @@
Width = Application.GetRealWidth(300),
Gravity = Gravity.CenterHorizontal,
TextID = R.MyInternationalizationString.AppName,
- TextColor = ZigbeeColor.Current.GXCTextWhiteColor
+ TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
+ TextSize = 16
};
midFrameLayout.AddChidren(logoName);
@@ -166,6 +172,8 @@
Height = Application.GetRealHeight(58),
TextColor = ZigbeeColor.Current.GXCTextRed,
TextAlignment = TextAlignment.CenterLeft,
+ TextSize = CommonFormResouce.TextSize,
+ IsBold = true
};
midFrameLayout.AddChidren(loginErrorBtn);
@@ -188,7 +196,7 @@
Y = Application.GetRealHeight(1198),
Width = Application.GetRealWidth(250),
Height = Application.GetRealHeight(58),
- TextID = R.MyInternationalizationString.ForgotPWD,
+ TextID = R.MyInternationalizationString.ForgotPWD_1,
TextSize = CommonFormResouce.loginTextSize,
TextColor = Shared.Common.ZigbeeColor.Current.GXCTextGrayColor,
TextAlignment = TextAlignment.CenterRight
@@ -202,7 +210,8 @@
Height = Application.GetRealHeight(127),
Gravity = Gravity.CenterHorizontal,
TextID = R.MyInternationalizationString.Login,
- TextSize = 15,
+ TextSize = 16,
+ IsBold=true,
TextColor = ZigbeeColor.Current.GXCTextGrayColor,
SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor,
@@ -239,6 +248,17 @@
};
midFrameLayout.AddChidren(registerBtn);
+ wechatBtn = new Button
+ {
+ X = Application.GetRealWidth(395),
+ Y = Application.GetRealHeight(1737),
+ Width = Application.GetMinRealAverage(115),
+ Height = Application.GetMinRealAverage(115),
+ UnSelectedImagePath = "Account/Wechat.png",
+ Gravity = Gravity.CenterHorizontal
+ };
+ midFrameLayout.AddChidren(wechatBtn);
+
BindEvent();
}
@@ -260,6 +280,8 @@
registerBtn.MouseUpEventHandler += Register;
//蹇樿瀵嗙爜
forgotPasswordBtn.MouseUpEventHandler += ForgetPWD_MouseUpEvent;
+ //wechat
+ wechatBtn.MouseUpEventHandler += LoginByWechat;
}
@@ -278,6 +300,10 @@
CommonPage.Loading.Start();
try
{
+ if (CheckAccount(account) == false)
+ {
+ return;
+ }
var reqLoginByCode = new SendDataToServer.LoginValidCodeOBJ()
{
Account = account,
@@ -302,19 +328,15 @@
HomePage.Instance.ShowLoginLoadView();
new System.Threading.Thread(async () =>
{
- //鍚姩ZigBee
- ZigBee.Common.Application.Init();
var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(requestRevetLoginCodeOBJ.ResponseData.ToString());
var revertData = responseDataObj;
Config.ReFresh();
+ Config.Instance.Password = string.Empty;
Config.Instance.Account = revertData.Account;
- Config.Instance.MqttKey = revertData.MqttKey;
Config.Instance.Guid = revertData.Guid;
Config.Instance.MD5PWD = revertData.MD5PWD;
Config.Instance.LoginDateTime = DateTime.Now;
- Config.Instance.ConnectZigbeeMqttBrokerPwd = revertData.ConnectZigbeeMqttBrokerPwd;
- Config.Instance.ConnectZigbeeMqttClientId = revertData.ConnectZigbeeMqttClientId;
- Config.Instance.ZigbeeMqttBrokerLoadSubDomain = revertData.ZigbeeMqttBrokerLoadSubDomain;
+ Config.Instance.LoginToken = revertData.Token;
if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null)
{
Config.Instance.AccountList.Add(revertData.Account);
@@ -323,10 +345,12 @@
Config.Instance.MD5PWD = revertData.MD5PWD;
Config.Instance.Save();
var resultRegID = await CommonPage.Instance.PushRegID();
- var homes = await House.GetHomeLists();
-
+ var homes = await House.GetHomeLists();
+
//鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
- await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
+ await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
+ //鍚姩ZigBee
+ ZigBee.Common.Application.Init();
Shared.Common.Room.InitAllRoom();
Application.RunOnMainThread(() =>
@@ -361,8 +385,12 @@
else if (stateCodeStr == "VALIDCODEANDPHONENOEQUAL")
{
CommonPage.Loading.Hide();
- //楠岃瘉鐮侀敊璇�
loginErrorBtn.TextID = R.MyInternationalizationString.VALIDCODEANDPHONENOEQUAL;
+ }
+ else if (stateCodeStr == "NORECORD")
+ {
+ CommonPage.Loading.Hide();
+ loginErrorBtn.TextID = R.MyInternationalizationString.NORECORD;
}
else if (stateCodeStr == "YOUDATANOISLOCALREGION")
{
@@ -416,8 +444,9 @@
private void SelectPhoneOrEmail_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
{
phoneEmailForm.SelectedPhone.IsSelected = phoneEmailForm.SelectedEmail.IsSelected = false;
+ phoneEmailForm.SelectedPhone.IsBold = phoneEmailForm.SelectedEmail.IsBold = false;
loginBtn.Enable = loginBtn.IsSelected = false;
- (sender as Button).IsSelected = true;
+ (sender as Button).IsSelected = (sender as Button).IsBold = true;
if ((sender as Button).Tag.ToString() == "Phone")
{
AddPhoneOrEmailFL(accountCodeFL, "Phone");
@@ -435,7 +464,8 @@
private void AddPhoneOrEmailFL(FrameLayout accountCodeFrameLayout, string phoneOrEmail)
{
accountCodeFrameLayout.RemoveAll();
-
+ account = string.Empty;
+ loginErrorBtn.Text = string.Empty;
if (phoneOrEmail == "Phone")
{
phoneRow = new PhoneRowForm();
@@ -454,6 +484,179 @@
codeRow.SendCodeBtn.MouseUpEventHandler += SendCode_MouseUpEventAsync;
codeRow.VerificationCodeET.TextChangeEventHandler += Code_TextChange;
}
+
+ /// <summary>
+ /// wechat鐧诲綍
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="mouseEventArgs"></param>
+ private void LoginByWechat(object sender, MouseEventArgs mouseEventArgs)
+ {
+#if Android
+ //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP),
+ // Language.StringByID(R.MyInternationalizationString.LoginByWechat),
+ // Language.StringByID(R.MyInternationalizationString.Cancel),
+ // Language.StringByID(R.MyInternationalizationString.Confrim));
+ //alert.Show();
+ //alert.ResultEventHandler += (send, e) =>
+ //{
+ //if (e)
+ //{
+ com.hdl.home.Application.WXLogin();
+ com.hdl.home.WXEntryActivity.RespAction = (authStr) =>
+ {
+ if (authStr == null)
+ {
+
+ }
+ else
+ {
+ new System.Threading.Thread(async () =>
+ {
+ var re = await isBindAuthAsync(authStr);
+ if (re)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ //鐩存帴鐧诲綍
+ HomePage.Instance.ShowLoginLoadView();
+ });
+ var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
+ var homes = await House.GetHomeLists();
+ //鍚姩ZigBee
+ ZigBee.Common.Application.Init();
+ //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+ await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
+ Shared.Common.Room.InitAllRoom();
+ Application.RunOnMainThread(() =>
+ {
+ this.RemoveFromParent();
+ CommonPage.Instance.RemoveViewByTag("Login");
+ UserPage.Instance.Fresh();
+ });
+ }
+ else
+ {
+ var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
+ Application.RunOnMainThread(() =>
+ {
+ var registerPage = new AccountRegister();
+ Shared.Common.CommonPage.Instance.AddChidren(registerPage);
+ registerPage.OpenID = authRes.openid;
+ registerPage.Show();
+ });
+ }
+ })
+ { IsBackground = true }.Start();
+ }
+ };
+ //}
+ //};
+#endif
+
+#if iOS
+ Home.IOS.AppDelegate.WXLogin();
+ Home.IOS.AppDelegate.RespAction = (authStr) =>
+ {
+ if (authStr == null)
+ {
+
+ }
+ else
+ {
+ new System.Threading.Thread(async () =>
+ {
+
+ var re = await isBindAuthAsync(authStr);
+ if (re)
+ {
+ //鐩存帴鐧诲綍
+ //this.RemoveFromParent();
+
+ //UserPage.Instance.Fresh();
+ var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
+ var homes = await House.GetHomeLists();
+ //鍚姩ZigBee
+ ZigBee.Common.Application.Init();
+ //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+ await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
+ Shared.Common.Room.InitAllRoom();
+ Application.RunOnMainThread(() =>
+ {
+ this.RemoveFromParent();
+ UserPage.Instance.Fresh();
+ });
+ }
+ else
+ {
+ var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
+ Application.RunOnMainThread(() =>
+ {
+ var registerPage = new AccountRegister();
+ Shared.Common.CommonPage.Instance.AddChidren(registerPage);
+ registerPage.OpenID = authRes.openid;
+ registerPage.Show();
+ });
+ }
+ })
+ { IsBackground = true }.Start();
+ }
+ };
+#endif
+ }
+
+ /// <summary>
+ /// qq鐧诲綍
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="mouseEventArgs"></param>
+ private void LoginByQQ(object sender, MouseEventArgs mouseEventArgs)
+ {
+
+ }
+
+ /// <summary>
+ /// 鏄惁宸茬粦瀹�
+ /// </summary>
+ /// <param name="authStr"></param>
+ /// <returns></returns>
+ private async System.Threading.Tasks.Task<bool> isBindAuthAsync(string authStr)
+ {
+ var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
+ var auth = new SendDataToServer.AuthUser()
+ {
+ AccessToken = authRes.access_token,
+ RefreshToken = authRes.refresh_token,
+ OpenID = authRes.openid
+ };
+ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(auth);
+ var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/InsertOrUpdateAuthUser", System.Text.Encoding.UTF8.GetBytes(requestJson));
+ if (revertObj == null)
+ {
+ return false;
+ }
+ var stateCodeStr = revertObj.StateCode.ToUpper();
+ if (stateCodeStr == "SUCCESS")
+ {
+ var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString());
+ var revertData = responseDataObj;
+ Config.Instance.Account = revertData.Account;
+ Config.Instance.MD5PWD = revertData.MD5PWD;
+ Config.Instance.Guid = revertData.Guid;
+ Config.Instance.LoginDateTime = DateTime.Now;
+ if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null)
+ {
+ Config.Instance.AccountList.Add(revertData.Account);
+ }
+ Config.Instance.Save();
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
#endregion
#region 鈼� 璐﹀彿銆侀獙璇佺爜鐩戝惉______________________
@@ -464,11 +667,12 @@
/// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
private void Account_TextChange(object sender, string mouseEventArgs)
{
- loginErrorBtn.Text = "";
+ loginErrorBtn.Text = string.Empty;
if ((sender as EditText).Text.Trim().Length > 0)
{
IsRightAccount = true;
codeRow.SendCodeBtn.Enable = codeRow.SendCodeBtn.IsSelected = true;
+ account= (sender as EditText).Text.Trim();
}
else
{
@@ -543,9 +747,9 @@
private void Register(object sender, MouseEventArgs mouseEventArgs)
{
this.RemoveFromParent();
- var login = new AccountLogin();
- CommonPage.Instance.AddChidren(login);
- login.Show();
+ var registerPage = new AccountRegister();
+ CommonPage.Instance.AddChidren(registerPage);
+ registerPage.Show();
}
#endregion
@@ -572,6 +776,11 @@
/// <param name="mouseEventArgs"></param>
private async void SendCode_MouseUpEventAsync(object sender, MouseEventArgs mouseEventArgs)
{
+ if (CheckAccount(account) == false)
+ {
+ return;
+ }
+
(sender as Button).Enable = (sender as Button).IsSelected = false;
CommonPage.Loading.Start();
try
@@ -640,6 +849,34 @@
CommonPage.Loading.Hide();
}
}
+
+ /// <summary>
+ /// CheckAccount
+ /// </summary>
+ /// <param name="accountStr"></param>
+ /// <returns></returns>
+ private bool CheckAccount(string accountStr)
+ {
+ loginErrorBtn.Text = string.Empty;
+ if (phoneEmailForm.SelectedEmail.IsSelected)
+ {
+ if (AccountLogic.Instance.CheckEmail(accountStr) == false)
+ {
+ loginErrorBtn.TextID = R.MyInternationalizationString.TheEmailError;
+ return false;
+ }
+ }
+ else
+ {
+ if (AccountLogic.Instance.CheckPhoneWithZone(accountStr, CommonPage.PhoneZoneStr) == false)
+ {
+ loginErrorBtn.TextID = R.MyInternationalizationString.ThePhoneError;
+ return false;
+ }
+ }
+ return true;
+ }
+
#endregion
#region 鈼� 楠岃瘉楠岃瘉鐮乢_______________________
--
Gitblit v1.8.0