From c7698e163e43cea9e7f8ee45f8e3f91c9265cca4 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 04 十一月 2019 19:11:41 +0800
Subject: [PATCH] 合并了全部的代码

---
 ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs |  173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 167 insertions(+), 6 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs
index 2f5882d..5dcf41b 100755
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs
@@ -5,6 +5,7 @@
 using Shared.Common;
 using Shared.Phone.UserView;
 using Shared.Phone.Device.CommonForm;
+using Com.Tencent.MM.Sdk.Openapi;
 
 namespace Shared.Phone.Device.Account
 {
@@ -67,6 +68,14 @@
         /// 瀵嗙爜
         /// </summary>
         private string password;
+        /// <summary>
+        /// wechat
+        /// </summary>
+        private Button wechatBtn;
+        /// <summary>
+        /// qq
+        /// </summary>
+        private Button qqBtn;
 
 
         #endregion
@@ -187,7 +196,7 @@
                 Width = Application.GetRealWidth(942),
                 Gravity = Gravity.CenterHorizontal,
                 BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                Radius = (uint)Application.GetRealHeight(30)
+                Radius = (uint)Application.GetRealHeight(17)
             };
             midFrameLayout.AddChidren(accountPwdFL);
 
@@ -227,7 +236,7 @@
             loginByCodeBtn = new Button()
             {
                 X=Application.GetRealWidth(98),
-                Y = Application.GetRealHeight(1431),
+                Y = Application.GetRealHeight(1466),
                 Width = Application.GetRealWidth(300),
                 Height = Application.GetRealHeight(49),
                 TextID = R.MyInternationalizationString.LoginByCode,
@@ -240,7 +249,7 @@
             registerBtn = new Button()
             {
                 X = Application.GetRealWidth(738),
-                Y = Application.GetRealHeight(1431),
+                Y = Application.GetRealHeight(1466),
                 Width = Application.GetRealWidth(244),
                 Height = Application.GetRealHeight(49),
                 TextID = R.MyInternationalizationString.Register,
@@ -249,6 +258,26 @@
                 TextSize = CommonFormResouce.loginTextSize
             };
             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"
+            };
+            midFrameLayout.AddChidren(wechatBtn);
+
+            qqBtn = new Button
+            {
+                X = Application.GetRealWidth(567),
+                Y = Application.GetRealHeight(1737),
+                Width = Application.GetMinRealAverage(115),
+                Height = Application.GetMinRealAverage(115),
+                UnSelectedImagePath = "Account/QQ.png"
+            };
+            midFrameLayout.AddChidren(qqBtn);
 
             #endregion
 
@@ -275,7 +304,10 @@
             registerBtn.MouseUpEventHandler += Register;
             //蹇樿瀵嗙爜
             forgotPasswordBtn.MouseUpEventHandler += ForgetPWD_MouseUpEvent;
-
+            //wechat
+            wechatBtn.MouseUpEventHandler += LoginByWechat;
+            //qq
+            qqBtn.MouseUpEventHandler += LoginByQQ;
         }
 
         #endregion
@@ -443,11 +475,140 @@
         /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
         private void LoginByCode(object sender,MouseEventArgs mouseEventArgs)
         {
-            this.RemoveFromParent();
+            //this.RemoveFromParent();
             var loginByCodePage = new AccountLoginByCode();
             CommonPage.Instance.AddChidren(loginByCodePage);
             loginByCodePage.Show();
         }
+
+        /// <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)
+                                {
+                                    //鐩存帴鐧诲綍
+                                    //this.RemoveFromParent();
+
+                                    //UserPage.Instance.Fresh();
+                                    //鍚姩ZigBee
+                                    ZigBee.Common.Application.Init();
+                                    var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
+                                    var homes = await House.GetHomeLists();
+                                    //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+                                    await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
+                                    Shared.Common.Room.CanInitAllRoom = true;
+                                    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.MqttKey = revertData.MqttKey;
+                Config.Instance.LoginDateTime = DateTime.Now;
+                Config.Instance.ConnectZigbeeMqttBrokerPwd = revertData.ConnectZigbeeMqttBrokerPwd;
+                Config.Instance.ConnectZigbeeMqttClientId = revertData.ConnectZigbeeMqttClientId;
+                Config.Instance.ZigbeeMqttBrokerLoadSubDomain = revertData.ZigbeeMqttBrokerLoadSubDomain;
+                if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null)
+                {
+                    Config.Instance.AccountList.Add(revertData.Account);
+                }
+                Config.Instance.Save();
+                return true;
+            }
+            else 
+            {
+                return false;
+            }
+        }
+
+      
 
         /// <summary>
         /// phone/email 閫夋嫨
@@ -547,7 +708,7 @@
         private void Pwd_TextChange(object sender,string mouseEventArgs)
         {
             loginErrorBtn.Text = "";
-            if (1 <= pwdRow.PasswrodET.Text.Trim().Length && pwdRow.PasswrodET.Text.Trim().Length <= 16 && phoneRow.AccountET.Text.Trim().Length > 0)
+            if (1 <= pwdRow.PasswrodET.Text.Trim().Length && pwdRow.PasswrodET.Text.Trim().Length <= 16 && (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow.AccountET.Text.Trim().Length>0))
             {
                 loginBtn.Enable = loginBtn.IsSelected = true;
             }

--
Gitblit v1.8.0