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); View.MainView mainView = new View.MainView(); mainView.Show(middFLayout); FrameLayout deviceListFLayout = new FrameLayout(); deviceListFLayout.Y = mainView.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); #endregion if (Pir.pirDeviceList.Count != 0) { //默认第一个红外宝 Pir.currPir = Pir.pirDeviceList[0]; int sum = 0; for (int i = 0; i < Pir.pirDeviceList.Count; i++) { //查找 sum += Pir.pirDeviceList[i].FunctioList.Count; } deviceNameBtn.Text = Pir.pirDeviceList[0].name; mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge); mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge); } ///设备管理的点击事件 mainView.clickBtn.MouseUpEventHandler += (sender, e) => { DeviceSet deviceSet = new DeviceSet(); MainPage.BasePageView.AddChidren(deviceSet); deviceSet.Show(() => { if (Pir.currPir != null) { deviceNameBtn.Text = Pir.currPir.name; mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge); } int sum = 0; for (int i = 0; i < Pir.pirDeviceList.Count; i++) { sum += Pir.pirDeviceList[i].FunctioList.Count; } mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge); }); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; ///红外名称的点击事件 deviceNameBtn.MouseUpEventHandler += (sender, e) => { View.HeigthChangeView heigthChangeView = new View.HeigthChangeView(); heigthChangeView.Show(this, Pir.pirDeviceList, (pirJson) => { deviceNameBtn.Text = pirJson.name; Pir.currPir = pirJson; }); }; 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 { if (DeviceTypeList.Count == 0) { GetDeviceTypeList(true, () => { DeviceTypeViewClick(if_value); }); } else { DeviceTypeViewClick(if_value); } } }; } } /// /// 设备进入下一级方法 /// /// private void DeviceTypeViewClick(int if_value) { 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; }); }); } /// /// 获取品牌支持 /// /// 索引值 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; } /// /// 读取红外设备类型列表 /// /// 标识要不要提示(true=提示) /// 回调函数 public void GetDeviceTypeList(bool tag, Action action) { 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); } } } action(); } else { if (tag) { Method method = new Method(); method.ErrorShow(responsePackNew, ""); } } }, "", "设备类型列表"); } /// /// 读取红外设备类型的品牌列表 /// public 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, "品牌列表"); } } }