using System; using HDL_ON.DAL.Server; using Shared; using System.Collections.Generic; using Newtonsoft.Json.Linq; namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice { public class Method { /// /// 添加遥控器的方法 /// public void AddControl(FrameLayout frameLayout) { View.TipView tipView = new View.TipView(); tipView.InputBox(frameLayout,"", (name, frame) => { ///清除之前列表数据 Pir.BuottonList.Clear(); if (!string.IsNullOrEmpty(name)) { Control control = new Control(); control.name = name; control.type = "learn"; ThreadAddControl(control, frame,false); } }, false); } /// /// 发送遥控器命令方法 /// /// /// public void ThreadAddControl(Control control, FrameLayout frame,bool bool_library) { DAL.Server.ResponsePackNew responsePackNew = null; Loading loading = new Loading(); frame.AddChidren(loading); loading.Start(); new System.Threading.Thread(() => { try { responsePackNew = PirSend.Add(control, bool_library); } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); //if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") //{ if (!string.IsNullOrEmpty(Sid("sid"))) { } ///这里:监听MTTP推送下来主题,才知道是否添加成功 frame.RemoveFromParent();//添加成功关闭弹窗 if (bool_library) { MainPage.BasePageView.RemoveViewByTag("PirView"); AddControlComplete addControlComplete = new AddControlComplete(); MainPage.BasePageView.AddChidren(addControlComplete); addControlComplete.Show(control, bool_library); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } else { AddButton addButton = new AddButton(); MainPage.BasePageView.AddChidren(addButton); addButton.Show(control); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } //监听Mqtt推送下来状态码做提示 //View.FailView failView = new View.FailView(); //failView.ShouError((view) => { // view.Close(); // ThreadAddControl(control, dialog); //}); //} //else //{ // ErrorShow(responsePackNew); //} }); } }) { IsBackground = true }.Start(); } /// /// MQTT主题推送下来的数据(遥控器添加) /// public static string addcontronsid = ""; /// /// /// /// /// public string Sid(string sid) { var dateTime = DateTime.Now; while ((DateTime.Now - dateTime).TotalMilliseconds < 5* 1000) { if (!string.IsNullOrEmpty(addcontronsid) && addcontronsid == sid) { break; } } return addcontronsid; } /// /// 错误码提示 /// /// public void ErrorShow(ResponsePackNew responsePackNew) { if (responsePackNew != null && responsePackNew.Code == "14005") { new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline)); } else { new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail)); } } } }