wei
2021-04-01 ccdff82fac4bcc1067ec806ade5ae897f1214f4d
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
New file
@@ -0,0 +1,174 @@
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
{
    public class DeviceListPage  : FrameLayout
    {
        FrameLayout bodyView;
        VerticalRefreshLayout contentView;
        IntegratedBrand brand;
        public DeviceListPage(IntegratedBrand integratedBrand)
        {
            bodyView = this;
            brand = integratedBrand;
        }
        public void LoadPage()
        {
            Action<string, string> action = (s, a) =>
            {
                var page = new AddDevciePage(brand);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage(contentView);
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            new TopViewDiv(bodyView, Language.StringByID(StringId.Devices)).LoadTopView_AddIcon("3ty", action);
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            contentView = new VerticalRefreshLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(667 - 64),
                VerticalScrollBarEnabled = false,
            };
            bodyView.AddChidren(contentView);
            Load3tyBrandDeviceList();
            contentView.BeginHeaderRefreshingAction = () =>
            {
                contentView.EndHeaderRefreshing();
                Load3tyBrandDeviceList();
            };
            //contentView.BeginHeaderRefreshing();
        }
        void Load3tyBrandDeviceList()
        {
            var waitPage = new Loading();
            waitPage.Start();
            new System.Threading.Thread(() => {
                try
                {
                    var pm = new HttpServerRequest();
                    var pack = pm.Get3TyBrandBindDeviceList(brand.productPlatform, brand.productBrand);
                    if (pack.Code == DAL.Server.StateCode.SUCCESS)
                    {
                        var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<Function3tyBrandObj>(pack.Data.ToString());
                        Application.RunOnMainThread(() =>
                        {
                            LoadRow(revData.list);
                        });
                    }
                    else
                    {
                        IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log("1--::" + ex.Message);
                }
                finally
                {
                    Application.RunOnMainThread(() => { waitPage.Hide(); });
                }
            })
            { IsBackground = true }.Start();
        }
        void LoadRow(List<Function> deviceList)
        {
            contentView.RemoveAll();
            bool isFrist = true;
            foreach (var device in deviceList)
            {
                //if (!FunctionList.List.DeviceSpk.Contains(device.spk))
                //{
                //    continue;
                //}
                FrameLayout row = new FrameLayout()
                {
                    Height = Application.GetRealHeight(50),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                };
                contentView.AddChidren(row);
                if (isFrist)
                {
                    isFrist = false;
                }
                else
                {
                    Button btnLine = new Button()
                    {
                        X = Application.GetRealWidth(56),
                        Width = Application.GetRealWidth(303),
                        Height = 1,
                        BackgroundColor = CSS_Color.DividingLineColor,
                    };
                    row.AddChidren(btnLine);
                }
                var btnIcon = new Button()
                {
                    X = Application.GetRealWidth(12),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetRealWidth(32),
                    Height = Application.GetRealWidth(32),
                    Radius = (uint)Application.GetRealWidth(4),
                    UnSelectedImagePath = $"FunctionIcon/Icon/{device.spk.Replace(".", "")}.png",
                };
                row.AddChidren(btnIcon);
                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(56),
                    Width = Application.GetRealWidth(303),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = device.name,
                };
                row.AddChidren(btnName);
                btnName.MouseUpEventHandler = (sender, e) => {
                    switch (device.spk)
                    {
                        case SPK.IrModule:
                            new UI2.PersonalCenter.PirDevice.Method().MainView(this, device,()=> {});
                            break;
                    }
                };
            }
        }
    }
    /// <summary>
    /// 云端返回的第三方设备列表数据
    /// </summary>
    public class Function3tyBrandObj
    {
        public List<Function> list = new List<Function>();
    }
}