HDL-ON_Android/Assets/Language.ini
@@ -417,9 +417,86 @@ 432=Other platform equipment is supported by third party service provider 433=Water valve 434=Time switch 435=Remote control 1002=Anion 1000=Indoor Humidity 1001=V-chip 1002=Anion 1003=Sterilization 1004=Humidification 1005=Filter Element Reset 1006=Lighting 1007=Automatic 1008=Manual 1009=Strong 1010=Sleep 1011=Timing 1012=Wind Speed 1013=Gear 1014=Please confirm whether the filter element has been reset and operate the equipment according to the instruction manual for the filter element life to be timed again 1015=Low Gear 1016=Mid Gear 1017=High Gear 1018=Timing Setting 1019=Hour 1020=Filter Element Time: 1021=Air Cleaner 1022=Current wind speed 1023=Cancel Timing 1024=Floor Sweeping Robot 1025=Suction 1026=1st Gear 1027=2nd Gear 1028=3rd Gear 1029=Charge 1030=Voice 1031=Mute 1032=Cleaning Mode 1033=Consumables Management 1034=History 1035=Automatic 1036=Random 1037=Wall 1038=Spiral 1039=Total Clean Area 1040=Total Clean Time 1041=Remaining life of side brush 1042=Residual life of roller brush 1043=Remaining life of filter screen 1044=Reset edge brush 1045=Reset roll brush 1046=Reset screen 1047=Confirm to Reset edge brush? 1048=Confirm to Reset roll brush? 1049=Confirm to Reset screen? 1050=Add Device 1051=Mini Intelligent Remote Control 1052=Add Infrared Remote Control 1053=Press the infrared remote control button{0}for 10 seconds and the indicator light{0}flashes blue quickly 1054=Please make sure your Bluetooth{0}is on and searchable 1055=Next Step 1056=Device searching... 1057=No infrared remote control found 1058=1.Please check whether the device is{0} powered on normally{0}2.Please check whether the Bluetooth{0} function is turned on normally{0}3.Please check whether the indicator{0} light is flashing blue 1059=Search Again 1060=Connect WiFi 1061=At present,it only supports 2.4G WiFi network{0}and does not support WiFi names{0}with Chinese characters 1062=Password 1063=Connecting... 1064=Please make infrared remote control{0}as close as possible to WiFi router 1065=Network Link 1066=Upload to cloud 1067=Connect success 1068=1.Please check whether the device is{0} powered on normally{0}2.Please turn on the Bluetooth function{0}3.Press the button for 10s and the indicator{0} light will be on 1069=Add Fail 1070=Add Success 1071=You can start using the infrared{0}remote control! 1072=Start using 1073=Please turn on Bluetooth 1074=Location information(GBS) unavailable 1075=Network unavailable 1076=Select infrared remote control 5000=Music 5001=Group 5002=Setting @@ -1100,6 +1177,7 @@ 432=其他平台设备均由第三方服务商提供支持 433=水阀 434=定时开关 435=遥控器 1000=室内湿度 @@ -1149,9 +1227,9 @@ 1044=重置边刷 1045=重置滚刷 1046=重置滤网 1047=是否重置边刷 1048=是否重置滚刷 1049=是否重置滤网 1047=是否重置边刷? 1048=是否重置滚刷? 1049=是否重置滤网? 1050=添加设备 1051=mini智能遥控器 1052=添加红外遥控 @@ -1307,6 +1385,63 @@ 6076=编辑信息 6015=在线 6016=离线 6017=版本号 6018=请输入遥控器名称 6019=提示:遥控器创建后可在功能-电器分类{\r\n}查找使用 6020=推荐按键 6021=请输入按键名称 6022=下一步 6023=电源 6024=音量+ 6025=音量- 6026=频道+ 6027=频道- 6028=上 6029=下 6030=左 6031=右 6032=静音 6034=确认 6035=播放 6037=退出 6038=菜单 6039=暂停 6040=返回 6041=停止 6042=主页 6043=快进 6044=快退 6045=定时 6046=复制遥控功能 6047=对准遥控器中心按下相同按键 6048=智能遥控器 6049=添加按键 6050=*长按可进行自定义排序 6051=完成 6052=添加成功 6053=可到分类-功能-电器操作使用 6054=所属分类 6055=遥控器名称 6056=所属区域 6057=继续添加 6058=电器 6059=添加失败 6060=重试 6061=匹配遥控器 6062=请点击以下按钮 6063=确认设备是否有响应 6064=控制失败 6065=控制成功 6066=电源开 6067=模式制冷 6068=风速中风 6069=温度26℃ 6070=删除设备 6071=修改名字 6072=确认删除 6073=取消 7000=新建自动化 7001=编辑自动化 HDL-ON_iOS/Resources/Language.ini
@@ -420,8 +420,84 @@ 434=Time switch 435=Remote control 1002=Anion 1000=Indoor Humidity 1001=V-chip 1002=Anion 1003=Sterilization 1004=Humidification 1005=Filter Element Reset 1006=Lighting 1007=Automatic 1008=Manual 1009=Strong 1010=Sleep 1011=Timing 1012=Wind Speed 1013=Gear 1014=Please confirm whether the filter element has been reset and operate the equipment according to the instruction manual for the filter element life to be timed again 1015=Low Gear 1016=Mid Gear 1017=High Gear 1018=Timing Setting 1019=Hour 1020=Filter Element Time: 1021=Air Cleaner 1022=Current wind speed 1023=Cancel Timing 1024=Floor Sweeping Robot 1025=Suction 1026=1st Gear 1027=2nd Gear 1028=3rd Gear 1029=Charge 1030=Voice 1031=Mute 1032=Cleaning Mode 1033=Consumables Management 1034=History 1035=Automatic 1036=Random 1037=Wall 1038=Spiral 1039=Total Clean Area 1040=Total Clean Time 1041=Remaining life of side brush 1042=Residual life of roller brush 1043=Remaining life of filter screen 1044=Reset edge brush 1045=Reset roll brush 1046=Reset screen 1047=Confirm to Reset edge brush? 1048=Confirm to Reset roll brush? 1049=Confirm to Reset screen? 1050=Add Device 1051=Mini Intelligent Remote Control 1052=Add Infrared Remote Control 1053=Press the infrared remote control button{0}for 10 seconds and the indicator light{0}flashes blue quickly 1054=Please make sure your Bluetooth{0}is on and searchable 1055=Next Step 1056=Device searching... 1057=No infrared remote control found 1058=1.Please check whether the device is{0} powered on normally{0}2.Please check whether the Bluetooth{0} function is turned on normally{0}3.Please check whether the indicator{0} light is flashing blue 1059=Search Again 1060=Connect WiFi 1061=At present,it only supports 2.4G WiFi network{0}and does not support WiFi names{0}with Chinese characters 1062=Password 1063=Connecting... 1064=Please make infrared remote control{0}as close as possible to WiFi router 1065=Network Link 1066=Upload to cloud 1067=Connect success 1068=1.Please check whether the device is{0} powered on normally{0}2.Please turn on the Bluetooth function{0}3.Press the button for 10s and the indicator{0} light will be on 1069=Add Fail 1070=Add Success 1071=You can start using the infrared{0}remote control! 1072=Start using 1073=Please turn on Bluetooth 1074=Location information(GBS) unavailable 1075=Network unavailable 1076=Select infrared remote control 5000=Music 5001=Group 5002=Setting @@ -1152,9 +1228,9 @@ 1044=重置边刷 1045=重置滚刷 1046=重置滤网 1047=是否重置边刷 1048=是否重置滚刷 1049=是否重置滤网 1047=是否重置边刷? 1048=是否重置滚刷? 1049=是否重置滤网? 1050=添加设备 1051=mini智能遥控器 1052=添加红外遥控 HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -330,14 +330,14 @@ { var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey); var revString = Encoding.UTF8.GetString(bytes); UI.UI2.PersonalCenter.PirDevice.Method.mqttdata = revString; HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.controldata = revString; } //App订阅遥控器自学按键学习成功通知 else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/irCodeStudyDone/up") { var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey); var revString = Encoding.UTF8.GetString(bytes); UI.UI2.PersonalCenter.PirDevice.Method.mqttdata = revString; UI.UI2.PersonalCenter.PirDevice.Method.controldata = revString; } #region 数据更新推送主题 //appHomeRefresh:住宅数据刷新通知 HDL_ON/HDL_ON.projitems
@@ -377,6 +377,8 @@ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ControlView.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddDevciePage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\DeviceListPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\MainView.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\HeigthChangeView.cs" /> </ItemGroup> <ItemGroup> <Folder Include="$(MSBuildThisFileDirectory)DAL\" /> HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs
@@ -120,6 +120,13 @@ btnTemp.Text = msgText.Replace("\r\n", string.Empty); //获取这个显示的内容的高度 int rowCount = btnTemp.GetRealRowCountByText(); //再看看它原来按换行符分割为几行 var myArry = msgText.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); //看看谁的行数多,就用谁的 if (myArry.Length > rowCount) { rowCount = myArry.Length; } int contentHeight = rowCount * Application.GetRealHeight(18); if (rowCount <= 2) { HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
@@ -209,6 +209,19 @@ bodyFrameLayout.AddChidren(btnUse); btnUse.ButtonClickEvent += (sender, e) => { //关掉界面 this.CloseForm(); HdlFormLogic.Current.CloseFormByFormName("AddThirdPartyDeviceMenuListPage"); HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () => { Application.RunOnMainThread(() => { var page = new UI2.PersonalCenter.PirDevice.PirMain(); MainPage.BasePageView.AddChidren(page); page.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); }); }; } HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddThirdPartyDeviceMenuListPage.cs
@@ -74,7 +74,7 @@ var rowMini = new RowLayoutControl(); listView.AddChidren(rowMini); rowMini.frameTable.AddLeftIcon(32, "PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png"); var btnMiniView = rowMini.frameTable.AddLeftCaption(Language.StringByID(StringId.MiniIntelligentRemoteControl), 200); var btnMiniView = rowMini.frameTable.AddLeftCaption(Language.StringByID(StringId.MiniIntelligentRemoteControl), 250); btnMiniView.TextColor = CSS.CSS_Color.FirstLevelTitleColor; rowMini.frameTable.AddRightArrow(); rowMini.frameTable.ButtonClickEvent += (sender, e) => HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddButton.cs
@@ -134,11 +134,12 @@ if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { Method method = new Method(); var mqttdate = method.MqttDate(control.sid, 25); if (mqttdate !=null) Method.buttondata = ""; var mqttdate = method.MqttDate("按键", control.sid, 25); if (mqttdate != null) { //休眠是为显示引导界面 // System.Threading.Thread.Sleep(3000); // System.Threading.Thread.Sleep(3000); //移除添加按钮引导界面 replication.RemView(); var buttonName = control.status.Find((c) => c.value == buttonObj.value); @@ -173,12 +174,12 @@ new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiashibai)); } } else { Method method = new Method(); method.ErrorShow(responsePackNew); method.ErrorShow(responsePackNew, ""); } }); HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs
@@ -243,7 +243,6 @@ loading.Hide(); if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { ///这里:监听MTTP推送下来主题,才知道是否添加成功 var buttonObj = control.status.Find((c) => c.value == obj.value); if (buttonObj != null) { @@ -253,7 +252,7 @@ } else { Method method = new Method(); method.ErrorShow(responsePackNew); method.ErrorShow(responsePackNew,""); } }); HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs
@@ -65,7 +65,7 @@ TextAlignment = TextAlignment.Center, }; fLayout.AddChidren(text1Btn); //可到分类-功能-电器操作使用 //可到分类-功能-操作使用 Button text2Btn = new Button { Width = Application.GetRealWidth(375 - 32), @@ -90,13 +90,41 @@ this.AddChidren(namePatchView.FLayoutView()); namePatchView.btnText1.TextID = StringId.yaokongqimingcheng; namePatchView.btnText2.Text = control.name; namePatchView.btnClick.MouseUpEventHandler += (sender,e) => { //所属区域 View.PatchView quyuPatchView = new View.PatchView(); quyuPatchView.frameLayout.Y = namePatchView.frameLayout.Bottom; this.AddChidren(quyuPatchView.FLayoutView()); quyuPatchView.btnText1.TextID = StringId.suoshuquyu; quyuPatchView.btnText2.Text=Intelligence.Automation.LogicMethod.GetGetRoomName(function); //继续添加 Button addBtn = new Button { Y = quyuPatchView.frameLayout.Bottom + Application.GetRealHeight(125), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(375 - 32), Height = Application.GetRealHeight(20), TextID = StringId.jixutianjia, TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textConfirmColor, TextAlignment = TextAlignment.Center, }; this.AddChidren(addBtn); //完成 View.SaveView saveView = new View.SaveView(); this.AddChidren(saveView.FLayoutView()); saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); #endregion #region 界面点击事件 //遥控器名称点击事件 namePatchView.btnClick.MouseUpEventHandler += (sender, e) => { List<string> list = new List<string>(); for (int i = 0; i < Pir.currPir.FunctioList.Count; i++) for (int i = 0; i < PirDevice.Pir.currPir.FunctioList.Count; i++) { list.Add(Pir.currPir.FunctioList[i].name); list.Add(PirDevice.Pir.currPir.FunctioList[i].name); } Method method = new Method(); method.EditControlName(StringId.editName, list, control.name, (name, view) => @@ -127,7 +155,7 @@ else { Method methodError = new Method(); methodError.ErrorShow(responsePackNew); methodError.ErrorShow(responsePackNew, ""); } }); @@ -139,12 +167,7 @@ }, () => { }); }; //所属区域 View.PatchView quyuPatchView = new View.PatchView(); quyuPatchView.frameLayout.Y = namePatchView.frameLayout.Bottom; this.AddChidren(quyuPatchView.FLayoutView()); quyuPatchView.btnText1.TextID = StringId.suoshuquyu; quyuPatchView.btnText2.Text=Intelligence.Automation.LogicMethod.GetGetRoomName(function); //所属区域点击事件 quyuPatchView.btnClick.MouseUpEventHandler += (sender, e) => { Method method = new Method(); @@ -154,31 +177,6 @@ quyuPatchView.btnText2.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(function); }); }; //继续添加 Button addBtn = new Button { Y = quyuPatchView.frameLayout.Bottom + Application.GetRealHeight(125), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(375 - 32), Height = Application.GetRealHeight(20), TextID = StringId.jixutianjia, TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textConfirmColor, TextAlignment = TextAlignment.Center, }; this.AddChidren(addBtn); //完成 View.SaveView saveView = new View.SaveView(); this.AddChidren(saveView.FLayoutView()); saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); #endregion #region 界面点击事件 //遥控器名称点击事件 namePatchView.btnClick.MouseUpEventHandler += (sender, e) => { }; //所属区域点击事件 quyuPatchView.btnClick.MouseUpEventHandler += (sender, e) => { }; //继续添加点击事件 addBtn.MouseUpEventHandler += (sender, e) => { HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs
@@ -261,7 +261,7 @@ else { Method method = new Method(); method.ErrorShow(responsePackNew); method.ErrorShow(responsePackNew,""); } }, id, "品牌红外码库列表"); } HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs
@@ -177,9 +177,9 @@ if (StringId.xiugaimingzi == intValue) { List<string> list = new List<string>(); for (int b = 0; b < Pir.pirDeviceList.Count; b++) for (int b = 0; b < PirDevice.Pir.pirDeviceList.Count; b++) { list.Add(Pir.pirDeviceList[b].name); list.Add(PirDevice.Pir.pirDeviceList[b].name); } Method methodView = new Method(); methodView.EditControlName(StringId.xiugaimingzi, list, pirclick.name, (name, view) => @@ -202,12 +202,16 @@ TipPopView tipPopView = new TipPopView(); tipPopView.TipBox(StringId.tip, text, (dialog) => { Thread(dialog, (responsePackNew) => { dialog.Close(); UIView(vv); }, "删除", pirclick.deviceId, ""); { var pir = Pir.pirDeviceList.Find((c) => c.deviceId == pirclick.deviceId); if (pir != null) { Pir.pirDeviceList.Remove(pirclick); } dialog.Close(); UIView(vv); }, "删除", pirclick.deviceId, ""); }, () => { NewSwitchView(pirclick, vv); @@ -258,7 +262,7 @@ else { Method method = new Method(); method.ErrorShow(responsePackNew); method.ErrorShow(responsePackNew,""); } }); HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/EditControl.cs
@@ -84,7 +84,7 @@ else { Method methodError = new Method(); methodError.ErrorShow(responsePackNew); methodError.ErrorShow(responsePackNew,""); } }); HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
@@ -84,7 +84,8 @@ if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { string sid = responsePackNew.Data.ToString(); mqttdate = MqttDate(sid); controldata = ""; mqttdate = MqttDate("遥控器", sid); if (mqttdate != null) { control.sid = sid; @@ -180,10 +181,24 @@ var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Pir>(str); if (pirJosn != null) { if (null == Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId)) /* 项目“HDL-ON_iOS”的未合并的更改 在此之前: if (null == Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId)) 在此之后: if (null == list.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId)) */ if (null == PirDevice.Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId)) { Pir.pirDeviceList.Add(pirJosn); /* 项目“HDL-ON_iOS”的未合并的更改 在此之前: Pir.pirDeviceList.Add(pirJosn); 在此之后: list.pirDeviceList.Add(pirJosn); */ PirDevice.Pir.pirDeviceList.Add(pirJosn); } } @@ -319,6 +334,7 @@ }) { IsBackground = true }.Start(); } /// <summary> /// 发送命令线程 /// </summary> @@ -326,47 +342,159 @@ /// <param name="action">回调函数</param> /// <param name="str">判断字符</param> /// <param name="frame">log父控件</param> /// <param name="dialog">log父控件</param> public void ThreadSend(Control control, Action<HDL_ON.DAL.Server.ResponsePackNew> action, string str, FrameLayout frame, Dialog dialog) public void ThreadSend(Control control, Action<ResponsePackNew> action, string str, FrameLayout frame) { //加载log Loading loading = new Loading(); frame.AddChidren(loading); loading.Start(); ResponsePackNew responsePackNew = null; new System.Threading.Thread(() => { try { if (str == "删除") { responsePackNew = PirSend.DeleteDevice(control.deviceId); } else if (str == "修改名称") { responsePackNew = PirSend.DeviceRename(control.deviceId, control.name); } else if (str == "删除按键") { // responsePackNew = PirSend.CodeRemove(control.deviceId, control.name); } } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { action(responsePackNew); } else { Method method = new Method(); method.ErrorShow(responsePackNew, ""); } }); } }) { IsBackground = true }.Start(); } /// <summary> /// MQTT主题推送下来的数据 /// 发送命令线程 /// </summary> public static string mqttdata = ""; /// <param name="control">发送数据对象</param> /// <param name="action">回调函数</param> /// <param name="str">判断字符</param> /// <param name="dialog">log父控件</param> public void ThreadSend(Control control, Action<ResponsePackNew> action, string str,Dialog dialog) { //加载log Loading loading = new Loading(); dialog.AddChidren(loading); ResponsePackNew responsePackNew = null; loading.Start(); new System.Threading.Thread(() => { try { if (str == "删除") { responsePackNew = PirSend.DeleteDevice(control.deviceId); } else if (str == "修改名称") { responsePackNew = PirSend.DeviceRename(control.deviceId, control.name); } else if (str == "删除按键") { // responsePackNew = PirSend.CodeRemove(control.deviceId, control.name); } } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { action(responsePackNew); } else { Method method = new Method(); method.ErrorShow(responsePackNew, ""); } }); } }) { IsBackground = true }.Start(); } /// <summary> /// MQTT主题推送下来的遥控器数据 /// </summary> public static string controldata = ""; /// <summary> /// MQTT主题推送下来按键的数据 /// </summary> public static string buttondata = ""; /// <summary> /// 判断这个主题是否是添加遥控器主题 /// </summary> /// <param name="text">表示不同主题数据</param> /// <param name="sid">唯一标识</param> /// <param name="timeValue">等待时间值</param> /// <returns></returns> public Cloud MqttDate(string sid, int timeValue = 10) public Cloud MqttDate(string text, string sid, int timeValue = 10) { Cloud cloud = null; var dateTime = DateTime.Now; while ((DateTime.Now - dateTime).TotalMilliseconds < timeValue * 1000) { if (!string.IsNullOrEmpty(mqttdata)) string str = ""; if (text == "遥控器") { str = controldata; } else if (text == "按键") { str = buttondata; } if (!string.IsNullOrEmpty(controldata)) { try { var cloudjson = Newtonsoft.Json.JsonConvert.DeserializeObject<Cloud>(mqttdata); var cloudjson = Newtonsoft.Json.JsonConvert.DeserializeObject<Cloud>(str); for (int i = 0; i < cloudjson.objects.Count; i++) { var objects = cloudjson.objects[i]; if (sid == objects.sid) { cloud = cloudjson; mqttdata = ""; break; } } if (cloud!=null) if (cloud != null) { break; } @@ -381,44 +509,63 @@ /// 错误码提示 /// </summary> /// <param name="responsePackNew"></param> /// <param name="str"></param> public void ErrorShow(ResponsePackNew responsePackNew=null, string str = "") /// <param name="text">自定义错误文本</param> /// <param name="popValue">弹框类型(1=闪烁弹框)</param> public void ErrorShow(ResponsePackNew responsePackNew, string text, int popValue = 1) { if (str == "删除遥控器") string str = ""; if (text == "删除遥控器") { new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.delFail)); } else if (str == "读取红外宝列表失败") { new Intelligence.Automation.LogicView.TipPopView().FlashingBox("读取红外宝列表失败"); str = Language.StringByID(StringId.delFail); } else if (text == "读取红外宝列表失败") { str = "读取红外宝列表失败"; //Language.StringByID(StringId.delFail); } else { if (responsePackNew != null) { switch (responsePackNew.Code) { case "14005": { new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline)); str = Language.StringByID(StringId.gatewayNotOnline); } break; case "10807": { //红外宝下遥控器超过最大(10个)数量限制 new Intelligence.Automation.LogicView.TipPopView().FlashingBox("红外宝下遥控器超过最大(10个)数量限制"); str = "红外宝下遥控器超过最大(10个)数量限制";// Language.StringByID(StringId.gatewayNotOnline); } break; case "2": { str = "系统维护中~请稍后再试~"; } break; default: { new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail)); str ="获取数据失败" ;// Language.StringByID(StringId.saveFail); } break; } } } switch (popValue) { case 1: { new Intelligence.Automation.LogicView.TipPopView().FlashingBox(str); } break; case 2: { } break; case 3: { } break; } } HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs
@@ -5,7 +5,7 @@ namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice { [System.Serializable] public class Pir : Entity.Function public class Pir : Entity.Function { /// <summary> /// 红外宝列表 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -10,7 +10,6 @@ public PirMain() { Tag = "PirMain"; } /// <summary> /// 临时储存设备类型列表 @@ -28,117 +27,10 @@ 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); View.MainView mainView = new View.MainView(); mainView.Show(middFLayout); FrameLayout deviceListFLayout = new FrameLayout(); deviceListFLayout.Y = pirDeviceFLayout.Bottom + Application.GetRealHeight(12); deviceListFLayout.Y = mainView.pirDeviceFLayout.Bottom + Application.GetRealHeight(12); deviceListFLayout.X = Application.GetRealWidth(16); deviceListFLayout.Width = Application.GetRealWidth(343); deviceListFLayout.Height = Application.GetRealHeight(328); @@ -172,11 +64,6 @@ 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 @@ -188,107 +75,57 @@ UnSelectedImagePath = "PirIcon/dropdown.png", }; deviceListFLayout.AddChidren(dropdownIconBtn); #endregion deviceNameBtn.MouseUpEventHandler += (sender, e) => if (Pir.pirDeviceList.Count != 0) { #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 //默认第一个红外宝 Pir.currPir = Pir.pirDeviceList[0]; int sum = 0; 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; } //查找 sum += Pir.pirDeviceList[i].FunctioList.Count; } }; clickFLayout.MouseUpEventHandler += (sender, e) => 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(() => { 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; }; #endregion ///红外名称的点击事件 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++) { @@ -347,45 +184,60 @@ } else { var strings = GetTypeString(if_value).Split('-'); var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == strings[0]); if (jobDeviceType == null) if (DeviceTypeList.Count == 0) { return; GetDeviceTypeList(true, () => { DeviceTypeViewClick(if_value); }); } GetBrandList(jobDeviceType.id, (brandList) => else { var brandSupportStrList = GetBrandSupport(if_value); var strList = new List<string>(); 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; }); }); DeviceTypeViewClick(if_value); } } }; } } /// <summary> /// 设备进入下一级方法 /// </summary> /// <param name="if_value"></param> 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<string>(); 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(); }); } /// <summary> /// 获取品牌支持 /// </summary> @@ -551,7 +403,9 @@ /// <summary> /// 读取红外设备类型列表 /// </summary> private void GetDeviceTypeList() /// <param name="tag">标识要不要提示(true=提示)</param> /// <param name="action">回调函数</param> public void GetDeviceTypeList(bool tag, Action action) { PirSend.GetDeviceTypesList(this, (responsePackNew) => { @@ -574,18 +428,22 @@ } } } action(); } else { Method method = new Method(); method.ErrorShow(responsePackNew); if (tag) { Method method = new Method(); method.ErrorShow(responsePackNew, ""); } } }, "", "设备类型列表"); } /// <summary> /// 读取红外设备类型的品牌列表 /// </summary> private void GetBrandList(string id, Action<List<Brand>> actionBrand) public void GetBrandList(string id, Action<List<Brand>> actionBrand) { List<Brand> brandList = new List<Brand>(); PirSend.GetDeviceTypesList(this, (responsePackNew) => @@ -614,7 +472,7 @@ else { Method method = new Method(); method.ErrorShow(responsePackNew); method.ErrorShow(responsePackNew, ""); } }, id, "品牌列表"); } HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
@@ -247,7 +247,7 @@ url = "/smart-footstone/app/ir/code/list"; jObject.Add("brandId", id); } responsePackNew = RequestServerhomeId(jObject, url); responsePackNew = RequestServerhomeId(jObject, url,5); } catch { } finally HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/HeigthChangeView.cs
New file @@ -0,0 +1,113 @@ using System; using Shared; using System.Collections.Generic; namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View { public class HeigthChangeView { /// <summary> /// 背景 /// </summary> FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; /// <summary> /// /// </summary> 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", }; /// <summary> /// /// </summary> FrameLayout textFLyout = new FrameLayout { X = Application.GetRealWidth(8), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(144), Height = Application.GetRealHeight(44), }; /// <summary> /// /// </summary> VerticalScrolViewLayout vv = new VerticalScrolViewLayout { X = Application.GetRealWidth(8), Y = Application.GetRealHeight(14), Width = Application.GetRealWidth(144), Height = Application.GetRealHeight(44 * 4), }; /// <summary> /// View方法 /// </summary> /// <param name="frame"></param> /// <param name="list"></param> /// <param name="action"></param> public void Show(FrameLayout frame, List<Pir> list, Action<Pir> action) { frame.AddChidren(fLayout); fLayout.AddChidren(iconFLyout); fLayout.MouseUpEventHandler += (sender1, e1) => { fLayout.RemoveFromParent(); }; if (list.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 * list.Count); textFLyout.Height = Application.GetRealHeight(44 * list.Count); iconFLyout.BackgroundImagePath = $"PirIcon/{list.Count}.png"; } for (int i = 0; i < list.Count; i++) { var pirJson = list[i]; View.PirNameView pirNameView = new View.PirNameView(); if (list.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) => { var pir = pirNameView.btnClick.Tag as Pir; action(pir); fLayout.RemoveFromParent(); //deviceNameBtn.Text = pirJson.name; //Pir.currPir = pirJson; }; if (list.Count - 1 == i) { ///改变最后那条一个线的颜色,界面显示效果作用; pirNameView.btnLine.BackgroundColor = CSS.CSS_Color.view; } } } } } HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/MainView.cs
New file @@ -0,0 +1,143 @@ using System; using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; using Shared; namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View { public class MainView { /// <summary> /// 主空间 /// </summary> public FrameLayout pirDeviceFLayout = new FrameLayout { Y = Application.GetRealHeight(12), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(187), BackgroundColor = CSS.CSS_Color.view, Radius = (uint)Application.GetRealHeight(12), }; /// <summary> /// 设备管理 /// </summary> public 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, }; /// <summary> /// 图标 /// </summary> public Button pirIcon = new Button { Y = Application.GetRealHeight(47), X = Application.GetRealWidth(28), Width = Application.GetRealWidth(66), Height = Application.GetRealWidth(66), UnSelectedImagePath = "PirIcon/Infraredtreasure.png", }; /// <summary> /// mini智能遥控器 /// </summary> public 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智能遥控器", }; /// <summary> /// 红外宝数量 /// </summary> public 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, }; /// <summary> /// 当前红外遥控设备 /// </summary> public Button numberDeviceTextBtn = new Button { Y = Application.GetRealHeight(137 + 20) + 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, }; /// <summary> /// 所有红外宝的遥控器数量 /// </summary> public 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, }; /// <summary> /// 已添加遥控器 /// </summary> public Button currDeviceNumberControlTextBtn = new Button { Y = Application.GetRealHeight(137 + 20) + 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, }; ///红外宝点击事件 public Button clickBtn = new Button(); public void Show(FrameLayout middFLayout) { middFLayout.AddChidren(pirDeviceFLayout); pirDeviceFLayout.AddChidren(text1Btn); pirDeviceFLayout.AddChidren(pirIcon); pirDeviceFLayout.AddChidren(text2Btn); pirDeviceFLayout.AddChidren(numberDeviceBtn); pirDeviceFLayout.AddChidren(numberDeviceTextBtn); pirDeviceFLayout.AddChidren(currDeviceNumberControlBtn); pirDeviceFLayout.AddChidren(currDeviceNumberControlTextBtn); pirDeviceFLayout.AddChidren(clickBtn); } } }