From 2d6787d9dedca3553ccd9ae5eb1bc7e52d2608e2 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期二, 16 三月 2021 16:44:33 +0800
Subject: [PATCH] 3.

---
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs |  139 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 113 insertions(+), 26 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
index 490f4a8..6a725c7 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
@@ -61,12 +61,9 @@
             //杩欎釜鐣岄潰鐨勮儗鏅渶瑕佺櫧鑹�
             bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
 
-#if __IOS__
-#endif
-#if __Android__
             //娣诲姞鎺ユ敹钃濈墮鍙嶉鐨勪簨浠�
-            HdlAndroidBluetoothLogic.Current.AddReceiveEvent(this.BluetoothReceiveEvent);
-#endif
+            HdlBluetoothLogic.Current.AddReceiveEvent(this.BluetoothReceiveEvent);
+
             //娣诲姞浜戠鍙嶉浜嬩欢
             HdlCloudReceiveLogic.Current.AddCloudReceiveEvent("AddMiniRemoteControlDirection4Page", this.CloudReceiveEvent);
 
@@ -255,7 +252,9 @@
             btnReDo.ButtonClickEvent += (sender, e) =>
             {
                 //閲嶆柊鍒濆鍖栦腑閮ㄤ俊鎭�
-                this.InitMiddleFrame();
+                this.CloseForm();
+                var form = new AddMiniRemoteControlDirection2Page();
+                form.AddForm(this.wifiName, this.wifiPsw);
             };
         }
 
@@ -268,14 +267,99 @@
         /// </summary>
         private void SendAccountAndPswToBluetooth()
         {
-#if __IOS__
-#endif
-#if __Android__
             //鑾峰彇鍙戦�佸埌钃濈墮鐨勬暟鎹�
             var sendData = this.GetSendToBluetoothData();
             //涓嶇瓑寰�
-            HdlAndroidBluetoothLogic.Current.SendData(sendData);
-#endif
+            HdlBluetoothLogic.Current.SendData(sendData);
+        }
+
+        #endregion
+
+        #region 鈻� 绾㈠瀹濈浉鍏虫柟娉昣____________________
+
+        /// <summary>
+        /// 妫�娴嬫槸鍚︽槸鏂扮殑绾㈠瀹�
+        /// </summary>
+        /// <param name="pushEnum">鎺ㄩ�佹灇涓�</param>
+        /// <param name="i_data">鎺ㄩ�佺殑鏁版嵁</param>
+        /// <returns></returns>
+        private bool CheckIsNewMiniRemoteControl(CloudPushEnum pushEnum, string i_data)
+        {
+            if (pushEnum != CloudPushEnum.A鏂拌澶囦笂鎶�) { return false; }
+
+            try
+            {
+                var strSpk = string.Empty;
+                //杞负json
+                var json = Newtonsoft.Json.Linq.JObject.Parse(i_data);
+                var linqArry = json["objects"] as Newtonsoft.Json.Linq.JArray;
+                if (linqArry != null)
+                {
+                    //鏁扮粍绫诲瀷
+                    if (linqArry.Count == 0) { return false; }
+                    strSpk = linqArry[0]["spk"].ToString();
+                }
+                else
+                {
+                    //闈炴暟缁勭被鍨�
+                    strSpk = json["objects"]["spk"].ToString();
+                }
+                if (strSpk != Entity.SPK.IrModule)
+                {
+                    //濡傛灉涓嶆槸绾㈠瀹濈殑璇�
+                    return false;
+                }
+                return true;
+            }
+            catch { return false; }
+        }
+
+        /// <summary>
+        /// 鍒锋柊绾㈠瀹濅俊鎭�
+        /// </summary>
+        /// <param name="successEvent">鎴愬姛鐨勫洖璋冧簨浠�</param>
+        private void RefreshMiniRemoteControlInfo(Action successEvent)
+        {
+            var pra = new Dictionary<string, object>();
+            pra.Add("homeId", Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            pra.Add("spk", Entity.SPK.IrModule);
+
+            var requestJson = DAL.Server.HttpUtil.GetSignRequestJson(pra);
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                int count = 0;
+                while (this.Parent != null)
+                {
+                    try
+                    {
+                        //瓒呰繃5娆¢兘涓嶆垚鍔�,鐪熶笉澶勭悊浜�
+                        count++;
+                        if (count > 5) { return; }
+
+                        //鑾峰彇鍏ㄩ儴绾㈠瀹濆垪琛�
+                        var result = DAL.Server.HttpUtil.RequestHttpsPostFroHome(DAL.Server.NewAPI.Api_Post_GetDevcieList, requestJson);
+                        if (result == null || result.Code != DAL.Server.StateCode.SUCCESS)
+                        {
+                            System.Threading.Thread.Sleep(3000);
+                            continue;
+                        }
+                        var listDevice = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.DevcieApiPack>(result.Data.ToString());
+                        foreach (var newFunction in listDevice.list)
+                        {
+                            //娣诲姞鍒扮紦瀛樺綋涓�
+                            newFunction.SaveFunctionFile();
+                            Entity.FunctionList.List.IniFunctionList(newFunction.savePath, true);
+                        }
+                        //璋冪敤鍥炶皟鍑芥暟
+                        successEvent?.Invoke();
+                        return;
+                    }
+                    catch
+                    {
+                        System.Threading.Thread.Sleep(3000);
+                    }
+                }
+            });
         }
 
         #endregion
@@ -289,15 +373,22 @@
         /// <param name="i_data">鎺ㄩ�佺殑鍐呭</param>
         private void CloudReceiveEvent(CloudPushEnum pushEnum, string i_data)
         {
-            if (pushEnum != CloudPushEnum.A鏂拌澶囦笂鎶�) { return; }
+            //妫�娴嬫槸鍚︽槸鏂扮殑绾㈠瀹�
+            if (this.CheckIsNewMiniRemoteControl(pushEnum, i_data) == false)
+            {
+                return;
+            }
+            //鍒锋柊绾㈠瀹濅俊鎭�
+            this.RefreshMiniRemoteControlInfo(() =>
+            {
+                //绉婚櫎杩欎釜浜嬩欢
+                HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
+                //鍋滄绾跨▼
+                this.timeoutThreadActivity = false;
 
-            //鎺ユ敹鍒板氨绉婚櫎杩欎釜浜嬩欢
-            HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
-            //鍋滄绾跨▼
-            this.timeoutThreadActivity = false;
-
-            //娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
-            this.DoSomethingAfterAddDeviceSuccess();
+                //娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
+                this.DoSomethingAfterAddDeviceSuccess();
+            });
         }
 
         /// <summary>
@@ -367,8 +458,8 @@
         {
             HdlThreadLogic.Current.RunThread(() =>
             {
-                //300绉掕秴鏃�
-                int timeout = 300;
+                //360绉掕秴鏃�
+                int timeout = 360;
                 while (this.timeoutThreadActivity == false && this.Parent != null)
                 {
                     System.Threading.Thread.Sleep(1000);
@@ -399,11 +490,7 @@
         public override void CloseFormBefore()
         {
             //鎽ф瘉钃濈墮
-#if __IOS__
-#endif
-#if __Android__
-            HdlAndroidBluetoothLogic.Current.Dispone();
-#endif
+            HdlBluetoothLogic.Current.Dispone();
             HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
 
             base.CloseFormBefore();

--
Gitblit v1.8.0