HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -330,7 +330,9 @@ { 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; //ReceiveCheckGateway(ss); //return; } //App订阅遥控器自学按键学习成功通知 else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/irCodeStudyDone/up") @@ -411,6 +413,9 @@ { MainPage.Log($"读取云端设备数据失败:Code:{deviceResult.Code}; Msg:{deviceResult.message}"); } HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.buttondata = revString; //ReceiveCheckGateway(ss); //return; } #endregion //A网关设备状态-包含涂鸦设备 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/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); } } }