HDL-ON_Android/Assets/Language.ini | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL-ON_iOS/Resources/Language.ini | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/Common/R.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TipPopView.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddButton.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/SetPir.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/Buttons.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
HDL-ON_Android/Assets/Language.ini
@@ -1393,6 +1393,7 @@ 6077=版本升级 6078=系统维护中~请稍后再试~ 6079=获取数据失败 6080=暂时不支持该功能 7000=新建自动化 7001=编辑自动化 HDL-ON_iOS/Resources/Language.ini
@@ -1393,6 +1393,7 @@ 6077=版本升级 6078=系统维护中~请稍后再试~ 6079=获取数据失败 6080=暂时不支持该功能 7000=新建自动化 7001=编辑自动化 HDL_ON/Common/R.cs
@@ -870,6 +870,7 @@ public const int banbenshengji = 6077; public const int xitongweihuzhong = 6078; public const int huoqushujushibao = 6079; public const int zanshibuzhichigaigongneng = 6080; HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TipPopView.cs
@@ -892,9 +892,9 @@ /// 信息提示窗口,自动关闭 /// </summary> /// <param name="msg">提示错误文本</param> public void FlashingBox(string msg,int time=2000) public void FlashingBox(string msg,int time=2) { new PublicAssmebly().TipMsgAutoClose(msg, false, time); new PublicAssmebly().TipMsgAutoClose(msg, false, time*1000); } /// <summary> HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddButton.cs
@@ -130,62 +130,48 @@ buttonObj.key = "key" + control.status.Count.ToString(); buttonObj.value = texts; PirSend.CodeStudy(control.deviceId, buttonObj, (responsePackNew) => PirSend.CodeStudy(control, buttonObj, (mqttdate) => { if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") if (mqttdate != null) { Method method = new Method(); Method.buttondata = ""; var mqttdate = method.MqttDate("按键", control.sid, 25); if (mqttdate != null) //休眠是为显示引导界面 // System.Threading.Thread.Sleep(3000); //移除添加按钮引导界面 replication.RemView(); var buttonName = control.status.Find((c) => c.value == buttonObj.value); if (buttonName == null) { //休眠是为显示引导界面 // System.Threading.Thread.Sleep(3000); //移除添加按钮引导界面 replication.RemView(); var buttonName = control.status.Find((c) => c.value == buttonObj.value); if (buttonName == null) { //添加数据 control.status.Add(buttonObj); } //移除添加按钮界面 this.RemoveFromParent(); for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--) { var view = MainPage.BasePageView.GetChildren(i); if (view.GetType() == typeof(AddControl)) { //new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiachenggong)); view.RemoveFromParent(); } } //加载数据界面 AddControl addControl = new AddControl(); MainPage.BasePageView.AddChidren(addControl); addControl.Show(control); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; //添加数据 control.status.Add(buttonObj); } else //移除添加按钮界面 this.RemoveFromParent(); for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--) { replication.RemView(); new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiashibai)); var view = MainPage.BasePageView.GetChildren(i); if (view.GetType() == typeof(AddControl)) { //找到移除 view.RemoveFromParent(); } } //加载数据界面 AddControl addControl = new AddControl(); MainPage.BasePageView.AddChidren(addControl); addControl.Show(control); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } else { Method method = new Method(); method.ErrorShow(responsePackNew, ""); replication.RemView(); new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiashibai)); } }); }; } HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -7,8 +7,12 @@ { public class PirMain : FrameLayout { /// <summary> /// 构造函数 /// </summary> public PirMain() { /// 标记界面 Tag = "PirMain"; } /// <summary> @@ -16,7 +20,7 @@ /// </summary> public static Action BackAction; /// <summary> /// /// 添加图标Btn /// </summary> Button addDevice; /// <summary> @@ -25,6 +29,7 @@ List<DeviceType> DeviceTypeList = new List<DeviceType>(); public void Show() { #region 界面布局 this.BackgroundColor = CSS.CSS_Color.viewMiddle; PirDevice.View.TopView topView = new View.TopView(); topView.topNameBtn.TextID = StringId.hongwaiyaokong; @@ -61,7 +66,10 @@ // middFLayout.AddChidren(addDevice); addDevice.Visible = true; } #endregion #region 界面点击事件 ///下拉刷新界面事件 vv.BeginHeaderRefreshingAction += () => { ////关闭刷新View; @@ -77,8 +85,7 @@ }, Pir.currPir); }; UIView(vv); ///设置图标点击事件 topView.clickSetBtn.MouseUpEventHandler += (sender, e) => { @@ -92,119 +99,59 @@ }); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; ///添加遥控器图标点击事件 addDevice.MouseUpEventHandler += (sender, e) => { FrameLayout frame = new FrameLayout //进来不允许左滑 MainPage.BasePageView.ScrollEnabled = false; View.Buttons buttons = new View.Buttons(); buttons.AddFrameLayout(this, (if_value, view) => { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; this.AddChidren(frame); FrameLayout controlFl = new FrameLayout(); controlFl.Y = Application.GetRealHeight(319); controlFl.X = Application.GetRealWidth(16); controlFl.Width = Application.GetRealWidth(343); controlFl.Height = Application.GetRealHeight(328); controlFl.BackgroundColor = CSS.CSS_Color.view; controlFl.Radius = (uint)Application.GetRealHeight(12); frame.AddChidren(controlFl); ///添加遥控器 Button text3Btn = new Button { Y = Application.GetRealHeight(12), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(343 - 16 * 2), Height = Application.GetRealHeight(20), TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textConfirmColor, TextAlignment = TextAlignment.Center, TextID = StringId.tianjiayaokongqi, IsBold = true, }; controlFl.AddChidren(text3Btn); frame.MouseUpEventHandler += (sender1, e1) => { frame.RemoveFromParent(); }; int line = 0; for (int i = 1, j = 0; i <= 7; i++, j++) { var currpirdeviceFLayout = new FrameLayout //关闭允许左滑 MainPage.BasePageView.ScrollEnabled = true; //1=空调;2=电视;3=风扇;4=机顶盒;5=DVD/EVD/VCD;6=投影仪;7=自定义; if (if_value == 7) { Width = Application.GetRealWidth(80), Height = Application.GetRealWidth(80), X = Application.GetRealWidth(26 + (80 + 25) * j), Y = Application.GetRealHeight(52 + (80 + 12) * line), }; controlFl.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 += (sender2, e2) => { //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) => { Method method = new Method(); method.AddControl(this, (control) => //成功后移除; view.RemoveFromParent(); AddButton addButton = new AddButton(); MainPage.BasePageView.AddChidren(addButton); addButton.Show(control); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); } else { if (if_value == 3 || if_value == 4 || if_value == 5 || if_value == 6) { new TipPopView().FlashingBox(Language.StringByID(StringId.zanshibuzhichigaigongneng)); return; } if (DeviceTypeList.Count == 0) { GetDeviceTypeList(true, () => { //成功后移除; frame.RemoveFromParent(); AddButton addButton = new AddButton(); MainPage.BasePageView.AddChidren(addButton); addButton.Show(control); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; DeviceTypeViewClick(if_value); //获取成功之后移除 view.RemoveFromParent(); }); } else { //进来都要移除; frame.RemoveFromParent(); if (DeviceTypeList.Count == 0) { GetDeviceTypeList(true, () => { DeviceTypeViewClick(if_value); }); } else { DeviceTypeViewClick(if_value); } DeviceTypeViewClick(if_value); view.RemoveFromParent(); } }; } } }, 7); }; #endregion ///初始化界面 UIView(vv); } /// <summary> @@ -250,7 +197,6 @@ for (int j = 0; j < Pir.currPir.FunctioList.Count; j++) { var control = Pir.currPir.FunctioList[j]; View.ControlView controlView = new View.ControlView(); controlView.Show(pirView.devfLayout, j); //遥控器名称 @@ -313,10 +259,11 @@ /// <summary> /// 设备进入下一级方法 /// </summary> /// <param name="if_value"></param> /// <param name="if_value">控件索引值</param> private void DeviceTypeViewClick(int if_value) { var strings = GetTypeString(if_value).Split('-'); var strings = View.Buttons.GetTypeString(if_value).Split('-'); var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == strings[0]); if (jobDeviceType == null) { @@ -334,118 +281,9 @@ } /// <summary> /// 获取设备类型str /// </summary> /// <param name="index">索引值</param> 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; } /// <summary> /// 设置图片和备注 /// </summary> /// <param name="index">索引值</param> /// <param name="deviceIconBtn">图标Btn</param> /// <param name="deviceNameBtn">设备备注Btn</param> 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; } /// <summary> /// 读取红外设备类型列表 /// </summary> /// <param name="tag">标识要不要提示(true=提示)</param> /// <param name="tag">表示要不要提示错误信息(true=提示)</param> /// <param name="action">回调函数</param> public void GetDeviceTypeList(bool tag, Action action) { HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
@@ -150,7 +150,7 @@ /// 红外码学习 /// </summary> /// <returns></returns> public static void CodeStudy(string deviceId, AttributesStatus buttonObj,Action<ResponsePackNew> action) public static void CodeStudy(Control control, AttributesStatus buttonObj, Action<Cloud> action) { var job = new JObject { }; job.Add("key", buttonObj.key); @@ -160,22 +160,33 @@ job.Add("value", valuejArray); var jArray = new JArray { }; jArray.Add(job); var jObject = new JObject { { "homeId", HomeId }, { "deviceId", deviceId }, { "attributes", jArray } }; ResponsePackNew responsePackNew = null; var jObject = new JObject { { "homeId", HomeId }, { "deviceId", control.deviceId }, { "attributes", jArray } }; Cloud cloud = null; new System.Threading.Thread(() => { try { //发送红外码学习命令 responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeStudy); var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeStudy); if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { Method method = new Method(); Method.buttondata = ""; cloud = method.MqttDate("按键", control.sid, 25); } else { Method method = new Method(); method.ErrorShow(responsePackNew, ""); } } catch { } finally { Application.RunOnMainThread(() => { action(responsePackNew); action(cloud); }); } @@ -267,7 +278,6 @@ { IsBackground = true }.Start(); } /// <summary> ///请求服务器(与住宅有关:例如;homeId) /// </summary> HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/SetPir.cs
@@ -42,11 +42,11 @@ editNameFLayout.btnNextIcon.Width = Application.GetRealWidth(28); editNameFLayout.btnNextIcon.UnSelectedImagePath = "LogicIcon/editname.png"; viewLayout.AddChidren(editNameFLayout.FLayoutView()); ///版本升级 FrameLayout50 banbenshengjiFL = new FrameLayout50(); banbenshengjiFL.btnText.Text = Language.StringByID(StringId.banbenshengji); banbenshengjiFL.frameLayout.Y = editNameFLayout.frameLayout.Bottom; viewLayout.AddChidren(banbenshengjiFL.FLayoutView()); /////版本升级 //FrameLayout50 banbenshengjiFL = new FrameLayout50(); //banbenshengjiFL.btnText.Text = Language.StringByID(StringId.banbenshengji); //banbenshengjiFL.frameLayout.Y = editNameFLayout.frameLayout.Bottom; //viewLayout.AddChidren(banbenshengjiFL.FLayoutView()); var versions = Pir.currPir.versions.Find((c)=>c.module== "fw_version"); if (versions == null) @@ -57,7 +57,7 @@ FrameLayout50 banbenhaoFLayout = new FrameLayout50(); banbenhaoFLayout.btnNextIcon.Visible = false; banbenhaoFLayout.btnText.Text = Language.StringByID(StringId.banbenhao) + ":"+ versions.version; banbenhaoFLayout.frameLayout.Y = banbenshengjiFL.frameLayout.Bottom; banbenhaoFLayout.frameLayout.Y = editNameFLayout.frameLayout.Bottom;// banbenshengjiFL.frameLayout.Bottom; viewLayout.AddChidren(banbenhaoFLayout.FLayoutView()); //删除 FrameLayout frameLayout = new FrameLayout HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/Buttons.cs
@@ -1,5 +1,6 @@ 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.View @@ -59,6 +60,206 @@ } /// <summary> /// 动态加载按钮列表 /// </summary> /// <param name="FLayout">父控件</param> /// <param name="action">回调</param> /// <param name="sum">多少个FrameLayout控件</param> public void AddFrameLayout(FrameLayout FLayout, Action<int,FrameLayout> action, int sum) { FrameLayout viewFLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; FLayout.AddChidren(viewFLayout); FrameLayout controlFl = new FrameLayout(); controlFl.Y = Application.GetRealHeight(319); controlFl.X = Application.GetRealWidth(16); controlFl.Width = Application.GetRealWidth(343); controlFl.Height = Application.GetRealHeight(328); controlFl.BackgroundColor = CSS.CSS_Color.view; controlFl.Radius = (uint)Application.GetRealHeight(12); viewFLayout.AddChidren(controlFl); ///添加遥控器 Button text3Btn = new Button { Y = Application.GetRealHeight(12), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(343 - 16 * 2), Height = Application.GetRealHeight(20), TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textConfirmColor, TextAlignment = TextAlignment.Center, TextID = StringId.tianjiayaokongqi, IsBold = true, }; controlFl.AddChidren(text3Btn); viewFLayout.MouseUpEventHandler += (sender1, e1) => { //关闭允许左滑 MainPage.BasePageView.ScrollEnabled = true; viewFLayout.RemoveFromParent(); }; int line = 0; for (int i = 1, j = 0; i <= sum; 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), }; controlFl.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 += (sender2, e2) => { //1=空调;2=电视;3=风扇;4=机顶盒;5=DVD/EVD/VCD;6=投影仪;7=自定义; int if_value = int.Parse(clickBtn.Tag.ToString()); action(if_value, viewFLayout); }; } } /// <summary> /// 设置图片和备注 /// </summary> /// <param name="index">索引值</param> /// <param name="deviceIconBtn">图标Btn</param> /// <param name="deviceNameBtn">设备备注Btn</param> 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; } /// <summary> /// 获取设备类型str /// </summary> /// <param name="index">索引值</param> public static 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; } /// <summary> /// 获取列表 /// </summary> /// <param name="tag">标记值</param>