using System; using System.Collections.Generic; using HDL_ON.Entity; using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; using Shared; namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice { public class PirMain : FrameLayout { public PirMain() { Tag = "PirMain"; } /// /// 临时储存设备类型列表 /// List DeviceTypeList = new List(); public void Show() { #region 界面布局 this.BackgroundColor = CSS.CSS_Color.viewMiddle; PirDevice.View.TopView topView = new View.TopView(); topView.topNameBtn.TextID = StringId.hongwaiyaokong; this.AddChidren(topView.FLayoutView()); topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); }; FrameLayout middFLayout = new FrameLayout(); middFLayout.Y = Application.GetRealHeight(64); middFLayout.Height = Application.GetRealHeight(667 - 64); this.AddChidren(middFLayout); FrameLayout pirDeviceFLayout = new FrameLayout(); pirDeviceFLayout.Y = Application.GetRealHeight(12); pirDeviceFLayout.X = Application.GetRealWidth(16); pirDeviceFLayout.Width = Application.GetRealWidth(343); pirDeviceFLayout.Height = Application.GetRealHeight(187); pirDeviceFLayout.BackgroundColor = CSS.CSS_Color.view; pirDeviceFLayout.Radius = (uint)Application.GetRealHeight(12); middFLayout.AddChidren(pirDeviceFLayout); //设备管理 Button text1Btn = new Button { Y = Application.GetRealHeight(11), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(20), TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textConfirmColor, TextAlignment = TextAlignment.CenterLeft, TextID = StringId.shebeigaunli, IsBold = true, }; pirDeviceFLayout.AddChidren(text1Btn); Button pirIcon = new Button { Y = Application.GetRealHeight(47), X = Application.GetRealWidth(28), Width = Application.GetRealWidth(66), Height = Application.GetRealWidth(66), UnSelectedImagePath = "PirIcon/Infraredtreasure.png", }; pirDeviceFLayout.AddChidren(pirIcon); //mini智能遥控器 Button text2Btn = new Button { Y = Application.GetRealHeight(70), X = Application.GetRealWidth(112), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(20), TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textTipColor, TextAlignment = TextAlignment.CenterLeft, Text = "mini智能遥控器", }; pirDeviceFLayout.AddChidren(text2Btn); // Button numberDeviceBtn = new Button { Y = Application.GetRealHeight(137), X = Application.GetRealWidth(32), Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(20), TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textColor, TextAlignment = TextAlignment.CenterLeft, Text = "1" + Language.StringByID(StringId.ge), IsBold = true, }; pirDeviceFLayout.AddChidren(numberDeviceBtn); //当前红外遥控设备 Button numberDeviceTextBtn = new Button { Y = numberDeviceBtn.Bottom + Application.GetRealHeight(4), X = Application.GetRealWidth(32), Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(14), TextSize = TextSize.text10, TextColor = CSS.CSS_Color.textCancelColor, TextAlignment = TextAlignment.CenterLeft, TextID = StringId.dangqianhongwaishebei, }; pirDeviceFLayout.AddChidren(numberDeviceTextBtn); // Button currDeviceNumberControlBtn = new Button { Y = Application.GetRealHeight(137), X = Application.GetRealWidth(198), Width = Application.GetRealWidth(80), Height = Application.GetRealHeight(20), TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textColor, TextAlignment = TextAlignment.CenterLeft, Text = "1" + Language.StringByID(StringId.ge), IsBold = true, }; pirDeviceFLayout.AddChidren(currDeviceNumberControlBtn); //已添加遥控器 Button currDeviceNumberControlTextBtn = new Button { Y = currDeviceNumberControlBtn.Bottom + Application.GetRealHeight(4), X = Application.GetRealWidth(198), Width = Application.GetRealWidth(80), Height = Application.GetRealHeight(14), TextSize = TextSize.text10, TextColor = CSS.CSS_Color.textCancelColor, TextAlignment = TextAlignment.CenterLeft, TextID = StringId.yitianjiayaokongqi, }; pirDeviceFLayout.AddChidren(currDeviceNumberControlTextBtn); ///红外宝点击事件 FrameLayout clickFLayout = new FrameLayout(); pirDeviceFLayout.AddChidren(clickFLayout); FrameLayout deviceListFLayout = new FrameLayout(); deviceListFLayout.Y = pirDeviceFLayout.Bottom + Application.GetRealHeight(12); deviceListFLayout.X = Application.GetRealWidth(16); deviceListFLayout.Width = Application.GetRealWidth(343); deviceListFLayout.Height = Application.GetRealHeight(328); deviceListFLayout.BackgroundColor = CSS.CSS_Color.view; deviceListFLayout.Radius = (uint)Application.GetRealHeight(12); middFLayout.AddChidren(deviceListFLayout); ///添加遥控器 Button text3Btn = new Button { Y = Application.GetRealHeight(11), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(20), TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textConfirmColor, TextAlignment = TextAlignment.CenterLeft, TextID = StringId.tianjiayaokongqi, IsBold = true, }; deviceListFLayout.AddChidren(text3Btn); ///红外宝名称 Button deviceNameBtn = new Button { Y = Application.GetRealHeight(13), X = Application.GetRealWidth(161), Width = Application.GetRealWidth(150), Height = Application.GetRealHeight(17), TextSize = TextSize.text12, TextColor = CSS.CSS_Color.textColor, TextAlignment = TextAlignment.CenterRight, Text = "mini智能遥控器", }; deviceListFLayout.AddChidren(deviceNameBtn); if (Pir.pirDeviceList.Count != 0) { deviceNameBtn.Text = Pir.pirDeviceList[0].name; Pir.currPir = Pir.pirDeviceList[0]; } //下拉图标 var dropdownIconBtn = new Button { Y = Application.GetRealHeight(13), X = Application.GetRealWidth(343 - 8 - 16), Width = Application.GetRealWidth(16), Height = Application.GetRealWidth(16), UnSelectedImagePath = "PirIcon/dropdown.png", }; deviceListFLayout.AddChidren(dropdownIconBtn); deviceNameBtn.MouseUpEventHandler += (sender, e) => { #region 区域弹框界面 FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; this.AddChidren(fLayout); fLayout.MouseUpEventHandler += (sender1, e1) => { fLayout.RemoveFromParent(); }; FrameLayout iconFLyout = new FrameLayout { X = Application.GetRealWidth(205), Y = Application.GetRealHeight(314), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(21 + 44), //BackgroundImagePath = "LogicIcon/bjicon.png", }; fLayout.AddChidren(iconFLyout); FrameLayout textFLyout = new FrameLayout { X = Application.GetRealWidth(8), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(144), Height = Application.GetRealHeight(44), }; VerticalScrolViewLayout vv = new VerticalScrolViewLayout { X = Application.GetRealWidth(8), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(144), Height = Application.GetRealHeight(44 * 4), }; if (Pir.pirDeviceList.Count > 4) { iconFLyout.Height = Application.GetRealHeight(21 + 44 * 4); iconFLyout.AddChidren(vv); iconFLyout.BackgroundImagePath = "PirIcon/4.png"; } else { iconFLyout.AddChidren(textFLyout); iconFLyout.Height = Application.GetRealHeight(21 + 44 * Pir.pirDeviceList.Count); textFLyout.Height = Application.GetRealHeight(44 * Pir.pirDeviceList.Count); iconFLyout.BackgroundImagePath = $"PirIcon/{Pir.pirDeviceList.Count}.png"; } #endregion for (int i = 0; i < Pir.pirDeviceList.Count; i++) { var pirJson = Pir.pirDeviceList[i]; View.PirNameView pirNameView = new View.PirNameView(); if (Pir.pirDeviceList.Count > 4) { vv.AddChidren(pirNameView.FLayoutView()); } else { pirNameView.frameLayout.Y = Application.GetRealHeight(i * 44); textFLyout.AddChidren(pirNameView.FLayoutView()); } pirNameView.btnName.Text = pirJson.name; pirNameView.btnClick.Tag = pirJson; pirNameView.btnClick.MouseUpEventHandler += (sender2, e2) => { fLayout.RemoveFromParent(); deviceNameBtn.Text = pirJson.name; Pir.currPir = pirJson; }; if (Pir.pirDeviceList.Count - 1 == i) { ///改变最后那条一个线的颜色,界面显示效果作用; pirNameView.btnLine.BackgroundColor = CSS.CSS_Color.view; } } }; clickFLayout.MouseUpEventHandler += (sender, e) => { DeviceSet deviceSet = new DeviceSet(); MainPage.BasePageView.AddChidren(deviceSet); deviceSet.Show(() => { if (Pir.currPir != null) { deviceNameBtn.Text = Pir.currPir.name; } }); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; #endregion int line = 0; for (int i = 1, j = 0; i <= 7; i++, j++) { var currpirdeviceFLayout = new FrameLayout { Width = Application.GetRealWidth(80), Height = Application.GetRealWidth(80), X = Application.GetRealWidth(26 + (80 + 25) * j), Y = Application.GetRealHeight(52 + (80 + 12) * line), }; deviceListFLayout.AddChidren(currpirdeviceFLayout); var deviceIconBtn = new Button { Y = Application.GetRealHeight(8), X = Application.GetRealWidth(20), Width = Application.GetRealWidth(40), Height = Application.GetRealWidth(40), UnSelectedImagePath = "PirIcon/Infraredtreasure.png", }; currpirdeviceFLayout.AddChidren(deviceIconBtn); var iconNameBtn = new Button { Y = deviceIconBtn.Bottom + Application.GetRealHeight(8), Width = Application.GetRealWidth(80), Height = Application.GetRealHeight(17), TextSize = TextSize.text12, TextColor = CSS.CSS_Color.TextualColor, TextAlignment = TextAlignment.Center, }; currpirdeviceFLayout.AddChidren(iconNameBtn); var clickBtn = new Button { Tag = i }; currpirdeviceFLayout.AddChidren(clickBtn); if (i % 3 == 0) { //满一行重置j=0值; j = -1; line += 1; } GetIconAndText(i, deviceIconBtn, iconNameBtn); clickBtn.MouseUpEventHandler += (sender, e) => { //1=空调;2=电视;3=风扇;4=机顶盒;5=DVD/EVD/VCD;6=投影仪;7=自定义; int if_value = int.Parse(clickBtn.Tag.ToString()); if (if_value == 7) { Method method = new Method(); method.AddControl(this, (control) => { AddButton addButton = new AddButton(); MainPage.BasePageView.AddChidren(addButton); addButton.Show(control); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); } else { var strings = GetTypeString(if_value).Split('-'); var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == strings[0]); if (jobDeviceType == null) { return; } GetBrandList(jobDeviceType.id, (brandList) => { var brandSupportStrList = GetBrandSupport(if_value); var strList = new List(); for (int str = 0; str < brandList.Count; str++) { string s = brandList[str].brandName; var bool_if = brandSupportStrList.Find((c) => s.Contains(c)); if (bool_if != null) { strList.Add(s); } } Application.RunOnMainThread(() => { BrandList brandObj = new BrandList(); MainPage.BasePageView.AddChidren(brandObj); brandObj.Show(brandList, strList, strings[1]); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); }); } }; } GetDeviceTypeList(); } /// /// 获取品牌支持 /// /// 索引值 private List GetBrandSupport(int index) { List strList = new List(); switch (index) { case 1: { strList.Add("格力"); strList.Add("美的"); strList.Add("海尔"); strList.Add("松下"); strList.Add("海信"); strList.Add("长虹"); } break; case 2: { strList.Add("创维"); strList.Add("TCL"); strList.Add("海信"); strList.Add("长虹"); strList.Add("海尔"); strList.Add("三星"); strList.Add("乐视"); strList.Add("索尼"); strList.Add("LG乐金"); } break; case 3: { } break; case 4: { } break; case 5: { } break; case 6: { } break; } return strList; } /// /// 获取设备类型str /// /// 索引值 private string GetTypeString(int index) { string type = ""; switch (index) { case 1: { //空调 type = "ac-" + SPK.AcIr; } break; case 2: { //电视 type = "tv-" + SPK.TvIr; } break; case 3: { //风扇 type = "fan-" + SPK.ElectricFan; } break; case 4: { //机顶盒 // type = "set_top_box-" + SPK.ElectricTV; } break; case 5: { //影碟机 // type = "dvd-" + SPK.ElectricTV; } break; case 6: { //投影仪 // type = "projector-" + SPK.ElectricTV; } break; } return type; } /// /// 设置图片和备注 /// /// 索引值 /// 图标Btn /// 设备备注Btn private void GetIconAndText(int index, Button deviceIconBtn, Button deviceNameBtn) { string iconPath = ""; int deviceNameIndex = 0; switch (index) { case 1: { iconPath = "PirIcon/air.png"; deviceNameIndex = StringId.kongtiao; } break; case 2: { iconPath = "PirIcon/tv.png"; deviceNameIndex = StringId.dianshi; } break; case 3: { iconPath = "PirIcon/fan.png"; deviceNameIndex = StringId.fengshan; } break; case 4: { iconPath = "PirIcon/stb.png"; deviceNameIndex = StringId.jidinghe; } break; case 5: { iconPath = "PirIcon/dvd.png"; deviceNameIndex = StringId.dvd; } break; case 6: { iconPath = "PirIcon/projector.png"; deviceNameIndex = StringId.touyingyi; } break; case 7: { iconPath = "PirIcon/custom.png"; deviceNameIndex = StringId.zidingyi; } break; } deviceIconBtn.UnSelectedImagePath = iconPath; deviceNameBtn.TextID = deviceNameIndex; } /// /// 读取红外设备类型列表 /// private void GetDeviceTypeList() { PirSend.GetDeviceTypesList(this, (responsePackNew) => { if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { //清空之前数据 DeviceTypeList.Clear(); var jArray = Newtonsoft.Json.Linq.JArray.Parse(responsePackNew.Data.ToString()); for (int a = 0; a < jArray.Count; a++) { var jay = jArray[a]; var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay); var objDeviceType = Newtonsoft.Json.JsonConvert.DeserializeObject(str); if (objDeviceType != null) { if (null == DeviceTypeList.Find((c) => c.id == objDeviceType.id)) { DeviceTypeList.Add(objDeviceType); } } } } else { Method method = new Method(); method.ErrorShow(responsePackNew); } }, "", "设备类型列表"); } /// /// 读取红外设备类型的品牌列表 /// private void GetBrandList(string id, Action> actionBrand) { List brandList = new List(); PirSend.GetDeviceTypesList(this, (responsePackNew) => { if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { //清空之前数据 brandList.Clear(); var jArray = Newtonsoft.Json.Linq.JArray.Parse(responsePackNew.Data.ToString()); for (int a = 0; a < jArray.Count; a++) { var jay = jArray[a]; var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay); var brand = Newtonsoft.Json.JsonConvert.DeserializeObject(str); if (brand != null) { if (null == brandList.Find((c) => c.id == brand.id)) { brandList.Add(brand); } } } actionBrand(brandList); } else { Method method = new Method(); method.ErrorShow(responsePackNew); } }, id, "品牌列表"); } } }