From b4d92451b2071c9762b519275601424e276db90d Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 16 三月 2021 13:59:49 +0800
Subject: [PATCH] Merge branch 'dev-tzy' into temp-wxr

---
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs |   98 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 69 insertions(+), 29 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs
index 220c220..8f46dd9 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs
@@ -21,6 +21,10 @@
         /// wifi瀵嗙爜
         /// </summary>
         private string wifiPassword = string.Empty;
+        /// <summary>
+        /// 钃濈墮璁惧
+        /// </summary>
+        private List<HdlBluetoothLogic.BluetoothInfo> listDevice = new List<HdlBluetoothLogic.BluetoothInfo>();
 
         #endregion
 
@@ -73,24 +77,8 @@
             this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
                 CSS.CSS_Color.FirstLevelTitleColor, Application.GetRealHeight(20), btnSearch.Bottom + Application.GetRealHeight(4));
 
-            //鎼滅储鏃堕棿(绉�)
-            int searchTime = 5;
-
-            //鎼滅储钃濈墮(鐗规晥闂,鍔�1绉�)
-            this.StartSearchBluetooth(searchTime + 1);
-
-            HdlThreadLogic.Current.RunThread(() =>
-            {
-                //杩涘害鏉$壒鏁�
-                for (int i = 0; i <= searchTime; i++)
-                {
-                    HdlThreadLogic.Current.RunMain(() =>
-                    {
-                        btnProgress.SetValue(i + 1, searchTime);
-                    });
-                    System.Threading.Thread.Sleep(1000);
-                }
-            });
+            //寮�鍚繘搴︽潯鐗规晥
+            this.StartProgressSpecialEffects(btnProgress);
         }
 
         #endregion
@@ -98,15 +86,13 @@
         #region 鈻� 鎼滅储钃濈墮___________________________
 
         /// <summary>
-        /// 瀹夊崜鎼滅储钃濈墮
+        /// 鎼滅储钃濈墮
         /// </summary>
-        /// <param name="i_searchTime">鎼滅储鏃堕棿(绉�)</param>
-        private void StartSearchBluetooth(int i_searchTime)
+        private void StartSearchBluetooth()
         {
             //寮�濮嬫悳绱㈣摑鐗�
-            HdlBluetoothLogic.Current.ScanBluetooth(i_searchTime, (listBluetooth) =>
+            HdlBluetoothLogic.Current.ScanBluetooth(2, (listBluetooth) =>
             {
-                var listDevice = new List<HdlBluetoothLogic.BluetoothInfo>();
                 foreach (var device in listBluetooth)
                 {
                     //鍙湁杩欎釜鏍囪瘑,鎵嶆槸绾㈠瀹�
@@ -120,18 +106,13 @@
                 {
                     //鎽ф瘉钃濈墮缂撳瓨
                     HdlBluetoothLogic.Current.Dispone();
-                    //鏄剧ず澶辫触鐣岄潰
-                    HdlThreadLogic.Current.RunMain(() =>
-                    {
-                        this.ShowFailView();
-                    });
                 }
                 else if (listDevice.Count == 1)
                 {
                     //濡傛灉鍙娴嬪埌涓�涓�,鍒欑洿鎺ヨ繛鎺�
                     HdlBluetoothLogic.Current.ContectBluetooth(listDevice[0], (result) =>
                     {
-                        if (result == true)
+                        if (result == true && this.Parent != null)
                         {
                             //杩炴帴鎴愬姛,鍒欒烦杞埌涓嬩竴涓晫闈�
                             HdlThreadLogic.Current.RunMain(() =>
@@ -180,6 +161,63 @@
             });
         }
 
+        /// <summary>
+        /// 寮�鍚繘搴︽潯鐗规晥
+        /// </summary>
+        private void StartProgressSpecialEffects(ProgressRowBar btnProgress)
+        {
+            //鎼滅储鏃堕棿(绉�)
+            int searchTime = 180;
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //杩涘害鏉$壒鏁�
+                for (int i = 1; i <= searchTime; i++)
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //杩涘害鏉$壒鏁�
+                        btnProgress.SetValue(i, searchTime);
+                    });
+
+                    //鐣岄潰鍏抽棴
+                    if (this.Parent == null)
+                    {
+                        break;
+                    }
+                    //濡傛灉宸茬粡鎼滅储鍒拌摑鐗�,鍒欑洿鎺ュ埌100%
+                    if (listDevice.Count > 0)
+                    {
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            btnProgress.SetValue(searchTime, searchTime);
+                        });
+                        break;
+                    }
+                    if (i % 5 == 1)
+                    {
+                        //姣�5绉掓悳绱竴娆�
+                        this.StartSearchBluetooth();
+                    }
+                    //瓒呮椂
+                    if (i >= searchTime)
+                    {
+                        System.Threading.Thread.Sleep(3000);
+                        //鏈�鍚庣殑鏃堕棿杩樻槸鎼滀笉鍒扮殑璇�
+                        if (listDevice.Count == 0)
+                        {
+                            //鏄剧ず澶辫触鐣岄潰
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                this.ShowFailView();
+                            });
+                        }
+                        break;
+                    }
+                }
+            });
+        }
+
         #endregion
 
         #region 鈻� 鏄剧ず閫夋嫨钃濈墮鍒楄〃鐨勭晫闈____________
@@ -191,6 +229,8 @@
         /// <param name="selectEvent">閫夋嫨浜嬩欢(鑰冭檻鍒癐os鍜屽畨鍗�,鎵�浠ヨ繖鏍峰畾鍙傛暟)</param>
         private void ShowBluetoothListView(List<string> listName, Action<int> selectEvent)
         {
+            if (this.Parent == null) { return; }
+
             HdlThreadLogic.Current.RunMain(() =>
             {
                 var contr = new BottomItemSelectControl(listName.Count, Language.StringByID(StringId.ChooseInfraredRemoteControl), false);

--
Gitblit v1.8.0