mac
2024-07-25 f9181a9c8125136f597add7c30cb2ff508d54ba7
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/Iot_AuthorizedPage.cs
@@ -2,6 +2,7 @@
using Shared;
using HDL_ON.Entity;
using HDL_ON.DAL.Server;
using HDL_ON.UI.CSS;
namespace HDL_ON.UI
{
@@ -11,24 +12,174 @@
        IntegratedBrand_Iot brand_Iot;
        public Iot_AuthorizedPage(IntegratedBrand_Iot brand)
        Action boudedAction;
        public Iot_AuthorizedPage(IntegratedBrand_Iot brand,Action action)
        {
            brand_Iot = brand;
            boudedAction = action;
        }
        public void LoadView()
        {
            //高胜说不需要拼接url 2023年08月22日10:19:50
            //string url = brand_Iot.authorizationUrl + $"?companyId={brand_Iot.companyId}&openUId={UserInfo.Current.ID}&client_id={brand_Iot.clientId}";
            string url = brand_Iot.authorizationUrl;
            var dd = new WebViewDialog(()=> {
                UnsubscribeAsync3tyIotbind();
            });
            dd.LoadPage("", url);
            DAL.Mqtt.MqttClient.Bind3tyIotAction = () => {
                UnsubscribeAsync3tyIotbind();
                Application.RunOnMainThread(() =>
                {
                    //http.Search3tyIotDevice(brand_Iot.companyId);
                    boudedAction?.Invoke();
                    dd.Close();
                    {
                        Dialog dialog = new Dialog()
                        {
                            BackgroundColor = CSS_Color.DialogTransparentColor1,
                        };
                        FrameLayout contentView = new FrameLayout()
                        {
                            Gravity = Gravity.Center,
                            Width = Application.GetRealWidth(305),
                            Height = Application.GetRealHeight(180),
                            BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
                            BorderColor = 0x00000000,
                            BorderWidth = 0,
                            Radius = (uint)Application.GetMinRealAverage(10),
                        };
                        dialog.AddChidren(contentView);
                        Button btnTitle = new Button()
                        {
                            Gravity = Gravity.CenterHorizontal,
                            Y = Application.GetRealHeight(10),
                            Height = Application.GetRealHeight(38),
                            TextAlignment = TextAlignment.Center,
                            IsBold = true,
                            TextColor = 0xFF222222,
                            TextSize = CSS_FontSize.SubheadingFontSize,
                            TextID = StringId.Tip
                        };
                        contentView.AddChidren(btnTitle);
                        Button btnMsg = new Button()
                        {
                            Gravity = Gravity.CenterHorizontal,
                            Height = Application.GetRealHeight(70),
                            Y = Application.GetRealHeight(55),
                            TextAlignment = TextAlignment.TopCenter,
                            TextColor = CSS_Color.FirstLevelTitleColor,
                            TextSize = CSS_FontSize.SubheadingFontSize,
                            Padding = new Padding(0, Application.GetRealWidth(16), 0, Application.GetRealWidth(16)),
                            TextID = StringId.BindIotAccountTip,
                            IsMoreLines = true,
                        };
                        contentView.AddChidren(btnMsg);
                        Button btnLine = new Button()
                        {
                            Y = Application.GetRealHeight(125),
                            Height = Application.GetRealHeight(1),
                            BackgroundColor = CSS.CSS_Color.DividingLineColor,
                        };
                        contentView.AddChidren(btnLine);
                        Button btnConfirm = new Button()
                        {
                            Y = btnLine.Bottom,
                            Height = Application.GetRealHeight(55),
                            TextAlignment = TextAlignment.Center,
                            TextColor = CSS_Color.MainColor,
                            TextSize = CSS_FontSize.SubheadingFontSize,
                            SelectedTextColor = CSS_Color.MainBackgroundColor,
                            SelectedBackgroundColor = CSS_Color.MainColor,
                            TextID = StringId.Confirm,
                        };
                        btnConfirm.SetCornerWithSameRadius(Application.GetMinRealAverage(10), HDLUtils.RectCornerBottomLeft);
                        btnConfirm.SetCornerWithSameRadius(Application.GetMinRealAverage(10), HDLUtils.RectCornerBottomRight);
                        contentView.AddChidren(btnConfirm);
                        dialog.Show();
                        btnConfirm.MouseDownEventHandler += (sender, e) =>
                        {
                            btnConfirm.IsSelected = true;
                        };
                        btnConfirm.MouseUpEventHandler += (sender, e) =>
                        {
                            dialog.Close();
                        };
                    }
                });
            };
            SubscribeAsync3tyIotbind();
        }
        /// <summary>
        /// 搜索第三方设备
        /// 订阅绑定第三方iot账号结果
        /// </summary>
        private void SearchDevice()
        private void SubscribeAsync3tyIotbind()
        {
            var pack = http.Search3tyIotDevice(brand_Iot.companyId);
            if(pack!= null)
            new System.Threading.Thread(async () =>
            {
                try
                {
                    var result = await DAL.Mqtt.MqttClient.SubscribeAsync3tyIotbind();
                }
                catch { }
                finally
                {
            }
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 取消订阅绑定第三方iot账号结果
        /// </summary>
        private void UnsubscribeAsync3tyIotbind()
        {
            new System.Threading.Thread(async () =>
            {
                try
                {
                    var result = await DAL.Mqtt.MqttClient.UnsubscribeAsync3tyIotbind();
                }
                catch { }
                finally
                {
                }
            })
            { IsBackground = true }.Start();
        }
        ///// <summary>
        ///// 搜索第三方设备
        ///// </summary>
        //private void SearchDevice()
        //{
        //    var pack = http.Search3tyIotDevice(brand_Iot.companyId);
        //    if(pack!= null)
        //    {
        //    }
        //}
        /// <summary>
        /// 获取第三方功能列表
        /// </summary>
        private void GetFunction()