wxr
2021-03-17 189e35185099a619ec3c2060fed34cd5eee848a4
Merge branch 'dev-tzy' into temp-wxr
3个文件已修改
111 ■■■■ 已修改文件
HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs
@@ -163,6 +163,32 @@
        #region ■ 一般方法___________________________
        /// <summary>
        /// 关闭所有打开了的界面
        /// </summary>
        /// <param name="tagetFrom">目标界面,如果指定了的话,则关闭目标界面上层的全部界面(它自身不关闭)</param>
        public void CloseAllOpenForm(string tagetFrom = null)
        {
            //最后一个是装载主页的容器,所以不能删除
            while (MainPage.BasePageView.ChildrenCount > 1)
            {
                var view = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1);
                if (view is CommonFormBase)
                {
                    if (((CommonFormBase)view).FormID == tagetFrom)
                    {
                        //只关闭到指定目标界面
                        return;
                    }
                    ((CommonFormBase)view).CloseForm();
                }
                else
                {
                    view.RemoveFromParent();
                }
            }
        }
        /// <summary>
        /// 获取当前正在激活的界面
        /// </summary>
        /// <returns></returns>
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
@@ -13,6 +13,11 @@
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 添加设备完成之后的回调事件(温总说他自己要这个东西)
        /// </summary>
        public Action<Entity.Function> AddDeviceEvent = null;
        #endregion
        #region ■ 初始化_____________________________
@@ -64,7 +69,7 @@
                    btnNext.CanClick = true;
                    if (result == true)
                    {
                        this.CloseForm();
                        //注意:这个界面不能关闭,它用来回调温总的界面用的
                        var form = new AddMiniRemoteControlDirection2Page();
                        //初始wifi和密码为空
                        form.AddForm(string.Empty, string.Empty);
@@ -74,5 +79,18 @@
        }
        #endregion
        #region ■ 关闭界面___________________________
        /// <summary>
        /// 关闭界面
        /// </summary>
        public override void CloseFormBefore()
        {
            this.AddDeviceEvent = null;
            base.CloseFormBefore();
        }
        #endregion
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
@@ -22,6 +22,10 @@
        /// </summary>
        private string wifiPsw = string.Empty;
        /// <summary>
        /// 新设备的sid(用来匹配哪一个设备是新的)
        /// </summary>
        private string newDeviceSid = string.Empty;
        /// <summary>
        /// 超时线程是否运行
        /// </summary>
        private bool timeoutThreadActivity = false;
@@ -176,7 +180,7 @@
        /// <summary>
        /// 显示成功界面
        /// </summary>
        private void ShowSuccessView()
        private void ShowSuccessView(Entity.Function newDevice)
        {
            //清空body
            this.ClearBodyFrame();
@@ -209,19 +213,38 @@
            bodyFrameLayout.AddChidren(btnUse);
            btnUse.ButtonClickEvent += (sender, e) =>
            {
                //关掉界面
                this.CloseForm();
                HdlFormLogic.Current.CloseFormByFormName("AddThirdPartyDeviceMenuListPage");
                HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
                if (newDevice == null)
                {
                    Application.RunOnMainThread(() =>
                    //关闭掉全部的界面,应该不会发生
                    HdlFormLogic.Current.CloseAllOpenForm();
                    return;
                }
                var form = HdlFormLogic.Current.GetFormByName("AddMiniRemoteControlDirection1Page") as AddMiniRemoteControlDirection1Page;
                if (form.AddDeviceEvent != null)
                {
                    //代表这个是由温总那边调用的,直接回调函数
                    form.AddDeviceEvent.Invoke(newDevice);
                    //关闭掉这个界面
                    this.CloseForm();
                    //再把AddMiniRemoteControlDirection1Page界面关了
                    HdlFormLogic.Current.CloseFormByFormName("AddMiniRemoteControlDirection1Page");
                }
                else
                {
                    //代表这并不是由温总的界面调用的,则关闭掉全部的界面
                    HdlFormLogic.Current.CloseAllOpenForm();
                    //然后再把温总的界面new起来
                    HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
                    {
                        var page = new UI2.PersonalCenter.PirDevice.PirMain();
                        MainPage.BasePageView.AddChidren(page);
                        page.Show(null);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        Application.RunOnMainThread(() =>
                        {
                            var page = new UI2.PersonalCenter.PirDevice.PirMain();
                            MainPage.BasePageView.AddChidren(page);
                            page.Show();
                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        });
                    });
                });
                }
            };
        }
@@ -311,11 +334,13 @@
                    //数组类型
                    if (linqArry.Count == 0) { return false; }
                    strSpk = linqArry[0]["spk"].ToString();
                    this.newDeviceSid = linqArry[0]["sid"].ToString();
                }
                else
                {
                    //非数组类型
                    strSpk = json["objects"]["spk"].ToString();
                    this.newDeviceSid = json["objects"]["sid"].ToString();
                }
                if (strSpk != Entity.SPK.IrModule)
                {
@@ -331,7 +356,7 @@
        /// 刷新红外宝信息
        /// </summary>
        /// <param name="successEvent">成功的回调事件</param>
        private void RefreshMiniRemoteControlInfo(Action successEvent)
        private void RefreshMiniRemoteControlInfo(Action<Entity.Function> successEvent)
        {
            var pra = new Dictionary<string, object>();
            pra.Add("homeId", Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID);
@@ -357,14 +382,20 @@
                            continue;
                        }
                        var listDevice = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.DevcieApiPack>(result.Data.ToString());
                        Entity.Function newDevice = null;
                        foreach (var newFunction in listDevice.list)
                        {
                            //添加到缓存当中
                            newFunction.SaveFunctionFile();
                            Entity.FunctionList.List.IniFunctionList(newFunction.savePath, true);
                            if (newFunction.sid == this.newDeviceSid)
                            {
                                //这个设备是新追加的
                                newDevice = newFunction;
                            }
                        }
                        //调用回调函数
                        successEvent?.Invoke();
                        successEvent?.Invoke(newDevice);
                        return;
                    }
                    catch
@@ -392,7 +423,7 @@
                return;
            }
            //刷新红外宝信息
            this.RefreshMiniRemoteControlInfo(() =>
            this.RefreshMiniRemoteControlInfo((Entity.Function newDevice) =>
            {
                //移除这个事件
                HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
@@ -400,14 +431,14 @@
                this.timeoutThreadActivity = false;
                //添加设备成功之后,处理一些东西
                this.DoSomethingAfterAddDeviceSuccess();
                this.DoSomethingAfterAddDeviceSuccess(newDevice);
            });
        }
        /// <summary>
        /// 添加设备成功之后,处理一些东西
        /// </summary>
        private void DoSomethingAfterAddDeviceSuccess()
        private void DoSomethingAfterAddDeviceSuccess(Entity.Function newDevice)
        {
            HdlThreadLogic.Current.RunThread(() =>
            {
@@ -438,7 +469,7 @@
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            //显示成功界面
                            this.ShowSuccessView();
                            this.ShowSuccessView(newDevice);
                        });
                    }
                }