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 AddDevciePage : FrameLayout { FrameLayout bodyView; IntegratedBrand brand; VerticalRefreshLayout contentView; public AddDevciePage(IntegratedBrand integratedBrand) { bodyView = this; brand = integratedBrand; } public void LoadPage(VerticalRefreshLayout refreshView) { new TopViewDiv(bodyView, Language.StringByID(StringId.AddDevice)).LoadTopView(); bodyView.BackgroundColor = CSS_Color.BackgroundColor; contentView = new VerticalRefreshLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(667 - 64), VerticalScrollBarEnabled = false, }; bodyView.AddChidren(contentView); Load3tyBrandDeviceList(refreshView); contentView.BeginHeaderRefreshingAction = () => { contentView.EndHeaderRefreshing(); Load3tyBrandDeviceList(refreshView); }; } void Load3tyBrandDeviceList(VerticalRefreshLayout refreshView) { var waitPage = new Loading(); waitPage.Start(); new System.Threading.Thread(() => { try { var pm = new HttpServerRequest(); var pack = pm.Get3TyBrandDeviceList(brand.productPlatform, brand.productBrand); if (pack.Code == StateCode.SUCCESS) { var revData = Newtonsoft.Json.JsonConvert.DeserializeObject>(pack.Data.ToString()); Application.RunOnMainThread(() => { LoadRow(revData, refreshView); }); } 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 deviceList, VerticalRefreshLayout refreshView) { contentView.RemoveAll(); bool isFrist = true; foreach (var device in deviceList) { 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.productName, }; row.AddChidren(btnName); btnName.MouseUpEventHandler = (sender, e) => { switch (device.spk) { case SPK.IrModule: var form = new AddMiniRemoteControlDirection1Page(); form.AddForm(); form.AddDeviceEvent = (functionObj) => { refreshView.BeginHeaderRefreshing(); }; break; case SPK.SenesorMegahealth: var form1 = new AddSenesorMegahealthDirection1Page(); form1.AddForm(device); form1.AddDeviceEvent = (functionObj) => { refreshView.BeginHeaderRefreshing(); this.RemoveFromParent(); }; break; } }; } } } }