From 9eec81850e418a3c16410b4870910bde142b06e3 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 14 九月 2022 15:50:00 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/Dev-Branch' into wjc --- HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/Iot_BrandFunctionListPage.cs | 406 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 406 insertions(+), 0 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/Iot_BrandFunctionListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/Iot_BrandFunctionListPage.cs new file mode 100644 index 0000000..ea61167 --- /dev/null +++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/Iot_BrandFunctionListPage.cs @@ -0,0 +1,406 @@ +锘縰sing 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 Iot_BrandFunctionListPage :FrameLayout + { + FrameLayout bodyView; + + FrameLayout contentView; + + FrameLayout optionView; + + + IntegratedBrand_Iot brand_Iot; + /// <summary> + /// 瑙g粦鍥炶皟 + /// </summary> + public Action unboundAction; + + public Iot_BrandFunctionListPage(IntegratedBrand_Iot brand_Iot) + { + bodyView = this; + this.brand_Iot = brand_Iot; + } + + public void LoadPage() + { + Action action = () => { + var page = new iot_BindTipPage(); + MainPage.BasePageView.AddChidren(page); + page.unboundAction = () => { + this.RemoveFromParent(); + unboundAction?.Invoke(); + }; + page.LoadPage(brand_Iot); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + new TopViewDiv(bodyView, brand_Iot.brandName).LoadTopView_3tyIot(action); + + 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 = "*鎮ㄥ彲浠ュ皢绗笁鏂瑰搧鐗岀殑璁惧鍏宠仈鍒癘n Pro鎮ㄥ綋鍓嶇殑浣忓畢涓娿��", + IsMoreLines = true, + TextAlignment = TextAlignment.CenterLeft, + }; + bodyView.AddChidren(btnTipText); + if (Language.CurrentLanguage != "Chinese") + { + btnTipText.Text = "*You can associate third-party branded devices with on Pro's current home."; + } + + contentView = new FrameLayout() + { + Y = Application.GetRealHeight(150), + Height = Application.GetRealHeight(573), + }; + bodyView.AddChidren(contentView); + + + var waitPage = new Loading(); + contentView.AddChidren(waitPage); + waitPage.Start(""); + new System.Threading.Thread(() => + { + try + { + var pack0 = http.Search3tyIotDevice(brand_Iot.companyId); + if(pack0 != null) + { + + } + var pack = http.Get3tyIotDeviceFunctionList(brand_Iot.companyId); + if (pack != null) + { + if (pack.Code == StateCode.SUCCESS) + { + var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(pack.Data.ToString()); + Application.RunOnMainThread(() => + { + LoadDeviceFunctionControlZone(list); + }); + } + } + } + catch { } + finally + { + Application.RunOnMainThread(() => { + waitPage.Hide(); + waitPage.RemoveFromParent(); + }); + } + }) { IsBackground = true }.Start(); + + + optionView = new FrameLayout() + { + Y = Application.GetRealHeight(667 - 80), + Height = Application.GetRealHeight(90), + Radius = (uint)Application.GetRealWidth(22), + Visible = false, + }; + bodyView.AddChidren(optionView); + + + var btnComfirm = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(14), + Width = Application.GetRealWidth(164), + Height = Application.GetRealHeight(44), + TextAlignment = TextAlignment.Center, + BackgroundColor = CSS_Color.MainColor, + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.Confirm, + Radius = (uint)Application.GetRealHeight(22) + }; + optionView.AddChidren(btnComfirm); + btnComfirm.MouseUpEventHandler = (sender, e) => { + + var pack = http.Set3tyIotFunctionToHouse(optionList, DB_ResidenceData.Instance.CurrentRegion.id, brand_Iot.companyId); + if (pack != null) + { + if (pack.Code == StateCode.SUCCESS) + { + btnComfirm.Visible = false; + } + } + //var pack = http.Set3tyIotFunctionToHouse(function.deviceId, "0", brand_Iot.companyId); + //if (pack != null) + //{ + // if (pack.Code == StateCode.SUCCESS) + // { + // btnName.IsSelected = btnIcon.IsSelected = btnCheckIcon.IsSelected = false; + // } + //} + + }; + + + + } + + + /// <summary> + /// 鍔犺浇璁惧鍔熻兘鏄剧ず鍖哄煙 + /// </summary> + void LoadDeviceFunctionControlZone(List<Function> list) + { + contentView.RemoveAll(); + + if (list.Count == 0) + { + NotListTipView(); + return; + } + + VerticalScrolViewLayout deviceFunctionView = new VerticalScrolViewLayout(); + contentView.AddChidren(deviceFunctionView); + + #region ContextView + var rowView = new FrameLayout(); + try + { + int index = 0; + + foreach (var function in list) + { + if(function.homeId != DB_ResidenceData.Instance.CurrentRegion.id && function.homeId != "0") + { + continue; + } + + if (index % 2 == 0) + { + rowView = new FrameLayout() + { + Height = Application.GetRealWidth(140), + }; + deviceFunctionView.AddChidren(rowView); + } + var functionView_X = Application.GetRealWidth((182 + 7) * (index % 2)); + if (index % 2 == 0) + { + functionView_X += Application.GetRealWidth(7); + } + var functionView = new FrameLayout() + { + X = functionView_X, + Width = Application.GetRealWidth(182), + Height = Application.GetRealWidth(140), + Radius = (uint)Application.GetRealWidth(12), + Tag = function.sid + }; + rowView.AddChidren(functionView); + + var btnbg = new Button() + { + UnSelectedImagePath = "Collection/Functionbg.png", + SelectedImagePath = "Collection/Functionbg.png", + Tag = function.sid + }; + functionView.AddChidren(btnbg); + LoadDeviceFunctionDiv(functionView, function); + index++; + + + } + + if (index == 0) + { + var view = new FrameLayout(); + deviceFunctionView.AddChidren(view); + + var btnNoCollectionTip = new Button() + { + Height = Application.GetRealHeight(42), + Y = Application.GetRealHeight(100), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = "娌℃湁浠讳綍璁惧" + }; + view.AddChidren(btnNoCollectionTip); + if (Language.CurrentLanguage != "Chinese") + { + btnNoCollectionTip.Text = "No equipment"; + } + } + } + catch (Exception ex) + { + } + deviceFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); + #endregion + + + deviceFunctionView.AddChidren(new Button { + Height = Application.GetRealHeight(90), + }); + + } + + + /// <summary> + /// 鍔犺浇鍔熻兘鎺у埗鍗$墖 + /// </summary> + void LoadDeviceFunctionDiv(FrameLayout view, Function function) + { + try + { + + + var btnCheckIcon = new Button() + { + X = Application.GetRealWidth(22), + Y = Application.GetRealHeight(16), + Width = Application.GetRealWidth(21), + Height = Application.GetRealWidth(21), + UnSelectedImagePath = "Public/IotCheckIcon.png", + SelectedImagePath = "Public/IotCheckOnIcon.png", + }; + view.AddChidren(btnCheckIcon); + + Button btnIcon; + btnIcon = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(24), + Width = Application.GetMinRealAverage(54), + Height = Application.GetMinRealAverage(54), + }; + view.AddChidren(btnIcon); + + btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; + btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; + + Button btnName; + btnName = new Button() + { + Y = btnIcon.Bottom, + Text = function.name, + IsBold = true, + TextColor = CSS_Color.FirstLevelTitleColor, + SelectedTextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.TextFontSize, + Height = Application.GetRealWidth(24), + TextAlignment = TextAlignment.Center, + }; + view.AddChidren(btnName); + + + Button btnClick = new Button(); + view.AddChidren(btnClick); + btnClick.MouseUpEventHandler = (sender, e) => { + btnCheckIcon.IsSelected = function.collect = !function.collect; + if (optionList.Contains(function.deviceId)) + { + optionList.Remove(function.deviceId); + } + else + { + optionList.Add(function.deviceId); + } + optionView.Visible = true; + }; + if (function.homeId == DB_ResidenceData.Instance.CurrentRegion.id ) + { + btnCheckIcon.IsSelected = true; + optionList.Add(function.deviceId); + } + } + catch (Exception ex) + { + MainPage.Log("homepage LoadControlView error : " + ex.Message); + } + } + /// <summary> + /// 璁板綍闇�瑕佹搷浣滅殑鍒楄〃 + /// </summary> + private List<string> optionList = new List<string>(); + + + void NotListTipView() + { + contentView.RemoveAll(); + var btnTip = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(88), + Width = Application.GetRealWidth(180), + Height = Application.GetRealWidth(180), + UnSelectedImagePath = "TipNot.png", + }; + contentView.AddChidren(btnTip); + + var btnTipText = new Button() + { + Y = Application.GetRealHeight(252), + Height = Application.GetRealHeight(52), + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + TextAlignment = TextAlignment.Center, + TextID = StringId.TipNotThirdPartyDevice, + }; + contentView.AddChidren(btnTipText); + + var btnAdd = new Button() + { + Y = Application.GetRealHeight(400), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(220), + Height = Application.GetRealWidth(44), + BackgroundColor = CSS_Color.MainColor, + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.MainBackgroundColor, + TextSize = CSS_FontSize.SubheadingFontSize, + IsBold = true, + Radius = (uint)Application.GetRealWidth(22), + BorderColor = 0x00000000, + BorderWidth = 0, + Text = "鏌ョ湅璁惧鏀寔鑼冨洿" + }; + //contentView.AddChidren(btnAdd); + btnAdd.MouseUpEventHandler = (sender, e) => + { + //var page = new AddThirdPartyBrandListpage(brandList); + //MainPage.BasePageView.AddChidren(page); + //page.LoadPage(); + //MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + + + + } + + + HttpServerRequest http = new HttpServerRequest(); + + + } +} -- Gitblit v1.8.0