using System; using System.Collections.Generic; using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; using Shared; namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice { public class PirMain : FrameLayout { public PirMain() { Tag = "PirView"; } /// /// 临时储存设备类型列表 /// 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); clickFLayout.MouseUpEventHandler += (sender, e) => { DeviceSet deviceSet = new DeviceSet(); MainPage.BasePageView.AddChidren(deviceSet); deviceSet.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; 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); //下拉图标 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) => { }; #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()); var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == GetTypeString(if_value)); if (jobDeviceType == null) { return; } if (if_value == 7) { Method method = new Method(); method.AddControl(); } else { 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, null); 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"; } break; case 2: { type = "tv"; } break; case 3: { type = "fan"; } break; case 4: { type = "set_top_box"; } break; case 5: { type = "dvd"; } break; case 6: { type = "projector"; } break; case 7: { type = "PirIcon/custom.png"; } 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, "品牌列表"); } } class DeviceType { /// /// 设备类型主键Id /// public string id = string.Empty; /// /// 设备类型(投影仪,风扇,机顶盒...) /// public string deviceType = string.Empty; } public class Brand { /// /// 品牌主键Id /// public string id = string.Empty; /// /// 设备类型主键Id /// public string deviceTypeId = string.Empty; /// /// 品牌名称 /// public string brandName = string.Empty; } }