wxr
2022-08-04 eb76239882830f3960b8800bb0f2c90ca7b3f378
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/Iot_BrandListPage.cs
New file
@@ -0,0 +1,239 @@
using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
    /// <summary>
    /// 第三方品牌列表界面
    /// </summary>
    public class Iot_BrandListPage : FrameLayout
    {
        FrameLayout bodyView;
        VerticalScrolViewLayout contentView;//VerticalRefreshLayout
        List<IntegratedBrand_Iot> brandList;
        public Iot_BrandListPage()
        {
            bodyView = this;
            brandList = new List<IntegratedBrand_Iot>();
        }
        public void LoadPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.Bind3thIotAccount)).LoadTopView(CSS_Color.MainBackgroundColor);
            bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
            bodyView.AddChidren(new Button
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(1),
                BackgroundColor = CSS_Color.DividingLineColor,
            });
            Button btnTipText = new Button()
            {
                Y = Application.GetRealHeight(80),
                Width = Application.GetRealWidth(347),
                Height = Application.GetRealHeight(65),
                Gravity = Gravity.CenterHorizontal,
                Radius = (uint)Application.GetRealWidth(5),
                BackgroundColor = 0x194484F4,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Padding = new Padding(12, Application.GetRealWidth(16), 12, Application.GetRealWidth(16)),
                TextSize = CSS_FontSize.TextFontSize,
                Text = "通过绑定第三方平台账号寄哪里云端连接,将您在三方平台的设备同步到On Pro进行控制",
                IsMoreLines = true,
                TextAlignment = TextAlignment.CenterLeft,
            };
            bodyView.AddChidren(btnTipText);
            contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(150),
                Height = Application.GetRealHeight(573),
            };
            bodyView.AddChidren(contentView);
            GetBindList();
            //contentView.BeginHeaderRefreshingAction = () =>
            //{
            //    contentView.EndHeaderRefreshing();
            //    GetBindList();
            //};
        }
        /// <summary>
        /// 获取绑定列表
        /// </summary>
        void GetBindList()
        {
            var waitPage = new Loading();
            waitPage.Start();
            new System.Threading.Thread(() => {
                try
                {
                    var pm = new DAL.Server.HttpServerRequest();
                    var pack = pm.Get3tyIotBrandList();
                    if (pack.Code == DAL.Server.StateCode.SUCCESS)
                    {
                        brandList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrand_Iot>>(pack.Data.ToString());
                        if (brandList.Count > 0)
                        {
                            Application.RunOnMainThread(() =>
                            {
                                LoadRow();
                            });
                        }
                        else
                        {
                            Application.RunOnMainThread(() =>
                            {
                                //NotListTipView();
                                LoadRow();
                            });
                        }
                    }
                    else
                    {
                        IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log("2--::" + ex.Message);
                }
                finally
                {
                    Application.RunOnMainThread(() => { waitPage.Hide(); });
                }
            })
            { IsBackground = true }.Start();
        }
        void LoadRow()
        {
            contentView.RemoveAll();
            //brandList.Add(new IntegratedBrand_Iot
            //{
            //    authBrandNameCn = "Test Hdl",
            //    authBrandNameEn = "Test Hdl",
            //    hasAuthorization = false
            //});
            foreach (var brand in brandList)
            {
                var row = new RowLayout()
                {
                    Height = Application.GetRealHeight(87),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                    LineColor = 0x00000000,
                };
                contentView.AddChidren(row);
                Button btnLine = new Button()
                {
                    Y = Application.GetRealWidth(86),
                    Gravity = Gravity.CenterHorizontal,
                    Width = Application.GetRealWidth(343),
                    Height = 1,
                    BackgroundColor = CSS_Color.DividingLineColor,
                };
                row.AddChidren(btnLine);
                ImageView btnIcon = new ImageView()
                {
                    X = Application.GetRealWidth(12),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetRealWidth(47),
                    Height = Application.GetRealWidth(47),
                    Radius = (uint)Application.GetRealWidth(9),
                    BackgroundColor = CSS_Color.PromptingColor1
                };
                row.AddChidren(btnIcon);
                Button btnBindTip = new Button()
                {
                    Width = Application.GetRealWidth(326),
                    TextAlignment = TextAlignment.CenterRight,
                    TextColor = CSS_Color.PromptingColor1,
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    TextID = brand.hasAuthorization ? StringId.Bound : StringId.Unbound,
                };
                row.AddChidren(btnBindTip);
                Button btnRight = new Button()
                {
                    X = Application.GetRealWidth(339),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetMinRealAverage(16),
                    Height = Application.GetMinRealAverage(16),
                    UnSelectedImagePath = "Public/Right.png",
                };
                row.AddChidren(btnRight);
                Button btnName = new Button()
                {
                    X = Application.GetRealWidth(83),
                    Width = Application.GetRealWidth(310),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = brand.authBrandNameCn,
                };
                row.AddChidren(btnName);
                //下载第三方品牌icon
                ImageUtlis.Current.Load3tyBrandIconImages(brand.brandName, brand.authrBandIconUrl, btnIcon);
                btnName.MouseUpEventHandler = (sender, e) => {
                    if (brand.hasAuthorization)
                    {
                        Action unboundAction = () =>
                        {
                            brand.hasAuthorization = false;
                            btnBindTip.TextID = StringId.Unbound;
                        };
                        var page = new Iot_BrandFunctionListPage(brand);
                        MainPage.BasePageView.AddChidren(page);
                        page.unboundAction = unboundAction;
                        page.LoadPage();
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                    else
                    {
                        Action action = () => {
                            brand.hasAuthorization = true;
                            btnBindTip.TextID = StringId.Bound;
                        };
                        Action action2 = () => {
                            brand.hasAuthorization = false;
                            btnBindTip.TextID = StringId.Unbound;
                        };
                        var page = new iot_BindTipPage();
                        MainPage.BasePageView.AddChidren(page);
                        page.boundAction = action;
                        page.unboundAction = action2;
                        page.LoadPage(brand);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                };
            }
        }
    }
}