wei
2021-06-02 e13a9980ce617db1394a76944186c5d5bd595d5d
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs
@@ -13,6 +13,19 @@
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// wifi名
        /// </summary>
        private string wifiName = string.Empty;
        /// <summary>
        /// wifi密码
        /// </summary>
        private string wifiPassword = string.Empty;
        /// <summary>
        /// 蓝牙设备
        /// </summary>
        private List<HdlBluetoothLogic.BluetoothInfo> listDevice = new List<HdlBluetoothLogic.BluetoothInfo>();
        #endregion
        #region ■ 初始化_____________________________
@@ -20,8 +33,13 @@
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        public void ShowForm()
        /// <param name="i_wifiName">wifi名(别的界面传过来的)</param>
        /// <param name="i_wifiPassword">(别的界面传过来的)</param>
        public void ShowForm(string i_wifiName, string i_wifiPassword)
        {
            this.wifiName = i_wifiName;
            this.wifiPassword = i_wifiPassword;
            //设置头部信息
            base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl));
            //这个界面的背景需要白色
@@ -59,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
@@ -84,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)
                {
                    //只有这个标识,才是红外宝
@@ -106,26 +106,25 @@
                {
                    //摧毁蓝牙缓存
                    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(() =>
                            {
                                this.CloseForm();
                                var form = new AddMiniRemoteControlDirection3Page();
                                form.AddForm();
                                form.AddForm(this.wifiName, this.wifiPassword);
                            });
                        }
                        else
                        {
                            HdlBluetoothLogic.Current.Dispone();
                        }
                    });
                }
@@ -149,11 +148,72 @@
                                {
                                    this.CloseForm();
                                    var form = new AddMiniRemoteControlDirection3Page();
                                    form.AddForm();
                                    form.AddForm(this.wifiName, this.wifiPassword);
                                });
                            }
                            else
                            {
                                HdlBluetoothLogic.Current.Dispone();
                            }
                        });
                    });
                }
            });
        }
        /// <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;
                    }
                }
            });
        }
@@ -169,6 +229,8 @@
        /// <param name="selectEvent">选择事件(考虑到Ios和安卓,所以这样定参数)</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);