using System; using System.Collections.Generic; using Newtonsoft.Json.Linq; using Shared; using Shared.Common; using Shared.Phone; using Shared.R; using ZigBee.Device; namespace Shared.Phone.Device.Logic.DoorLockLogic { public class LockLogicCommunalPage : FrameLayout { public LockLogicCommunalPage() { UserView.HomePage.Instance.RemoveViewByTag("LockLogic"); Tag = "LockLogic"; } EditText logicTextBox; public async void Show(Action action) { #region 最上面的布局代码 var topRowLayout = new RowLayout { BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor, Height = Application.GetRealHeight(184), LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor, }; this.AddChidren(topRowLayout); var titleName = new Button { TextSize = 17, TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth(176), Width = Application.GetRealWidth(600), Height = Application.GetRealHeight(69), Y = Application.GetRealHeight(92), TextID = MyInternationalizationString.selection, IsBold = true, }; topRowLayout.AddChidren(titleName); if (Common.Logic.CurrentLogic.LogicId != 0) { titleName.Text = Language.StringByID(MyInternationalizationString.editlinkageevent); } else { titleName.Text = Language.StringByID(MyInternationalizationString.addlinkageevent); } var clickBtn = new Button { Width = Application.GetRealWidth(81 + 51), Height = Application.GetRealHeight(58 + 40), Y = Application.GetRealHeight(98 - 40), }; topRowLayout.AddChidren(clickBtn); clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); }; var back = new Button { Width = Application.GetRealWidth(30), Height = Application.GetRealHeight(51), X = Application.GetRealWidth(81), Y = Application.GetRealHeight(98), //Gravity = Gravity.CenterVertical; UnSelectedImagePath = "ZigeeLogic/back.png", }; topRowLayout.AddChidren(back); back.MouseDownEventHandler += (sender, e) => { action(); RemoveFromParent(); }; #endregion var middle = new VerticalScrolViewLayout { Y = topRowLayout.Bottom, Height = Application.GetRealHeight(1920 - 184 - 180), BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; this.AddChidren(middle); #region -----自动化名称 设置名称----- var logicnamefl = new FrameLayout { Height = Application.GetRealHeight(130), BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, }; middle.AddChidren(logicnamefl); var text = new Button { Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(60), X = Application.GetRealWidth(58), TextAlignment = TextAlignment.CenterLeft, //Text = "自动化名称", TextID = MyInternationalizationString.automationname, TextColor = ZigbeeColor.Current.LogicTextBlackColor, Y = Application.GetRealHeight(35), TextSize = 15, }; logicnamefl.AddChidren(text); logicTextBox = new EditText { Y = Application.GetRealHeight(35), Width = Application.GetRealWidth(1080 - 58 - 300), Height = Application.GetRealHeight(60), X = text.Right, TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicBtnCancelColor, TextSize = 14, Text = Common.Logic.CurrentLogic.LogicName, //TextID=MyInternationalizationString.automation1, }; logicnamefl.AddChidren(logicTextBox); var fraline = new FrameLayout { Height = Application.GetRealHeight(30), }; middle.AddChidren(fraline); #endregion #region -----显示逻辑条件----- var conditionFrameLayout = new FrameLayout { Height = Application.GetRealHeight(160), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(conditionFrameLayout); var conditionRowLayout = new RowLayout { Y = Application.GetRealHeight(30), Width = Application.GetRealWidth(965), Height = Application.GetRealHeight(130), X = Application.GetRealWidth(58), LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, }; conditionFrameLayout.AddChidren(conditionRowLayout); conditionRowLayout.AddChidren(new Button { Text = Language.StringByID(MyInternationalizationString.ifcondition), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(60), TextSize = 15, Gravity = Gravity.CenterVertical, }); var conditionadd1 = new Button { Y = Application.GetRealHeight(30), Width = Application.GetRealWidth(57), Height = Application.GetRealHeight(130), X = Application.GetRealWidth(965 + 58), }; conditionFrameLayout.AddChidren(conditionadd1); var conditionadd = new Button { Width = Application.GetRealWidth(58), Height = Application.GetRealHeight(58), UnSelectedImagePath = "ZigeeLogic/add.png", X = Application.GetRealWidth(965 - 58), Gravity = Gravity.CenterVertical, }; conditionRowLayout.AddChidren(conditionadd); ///添加条件的点击事件 EventHandler conditionaddclick = (sender, e) => { AddCondition(-1); }; conditionadd.MouseUpEventHandler += conditionaddclick; conditionadd1.MouseUpEventHandler += conditionaddclick; List> ListConditions = new List>(); ListConditions.Clear(); ListConditions.AddRange(Common.Logic.CurrentLogic.Conditions); ListConditions.Add(new Dictionary()); for (int i = 0; i < ListConditions.Count; i++) { if (i == (ListConditions.Count - 1)) { var addfl = new FrameLayout { Height = Application.GetRealHeight(160 + 30 + 50), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(addfl); var addbtn = new Button { Height = Application.GetRealHeight(130 + 50), Width = Application.GetRealWidth(908), Y = Application.GetRealHeight(30), X = Application.GetRealWidth(86), UnSelectedImagePath = "ZigeeLogic/logicaddcolor.png", }; addfl.AddChidren(addbtn); var addtextbtn = new Button { Height = Application.GetRealHeight(58), Width = Application.GetRealWidth(500), Y = Application.GetRealHeight(45 + 30), TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor, TextID = MyInternationalizationString.selectunlockingmode, X = Application.GetRealWidth(290), TextSize = 14, }; addfl.AddChidren(addtextbtn); EventHandler addconditionsclick = (sender, e) => { AddCondition(-1); }; addbtn.MouseUpEventHandler += addconditionsclick; addtextbtn.MouseUpEventHandler += addconditionsclick; } else { var devicesFrameLayout = new FrameLayout { Height = Application.GetRealHeight(130), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(devicesFrameLayout); ///显示图标 var conditionIcon = new Button { Width = Application.GetRealWidth(81), Height = Application.GetRealHeight(81), X = Application.GetRealWidth(104), Y = Application.GetRealHeight(25), //UnSelectedImagePath = "ZigeeLogic/time.png", }; devicesFrameLayout.AddChidren(conditionIcon); var conditionsRowLayout = new RowLayout { Width = Application.GetRealWidth(800), Height = Application.GetRealHeight(130), X = Application.GetRealWidth(222), LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, }; devicesFrameLayout.AddChidren(conditionsRowLayout); var Type = int.Parse(ListConditions[i]["Type"]); var conditions = ListConditions[i]; switch (Type) { case 1: { var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; }); if (deviceinof == null) { deviceinof = new ZigBee.Device.CommonDevice(); //continue; } ///显示设备名称 var btndevice = new Button { Y = Application.GetRealHeight(20), Height = Application.GetRealHeight(50), Width = Application.GetRealWidth(400), TextAlignment = TextAlignment.CenterLeft, Text = deviceinof.DeviceEpointName, TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextSize = 14, }; conditionsRowLayout.AddChidren(btndevice); ///区域(房间)名称Button var btnregionname = new Button { Y = btndevice.Bottom + Application.GetRealHeight(10), Width = Application.GetRealWidth(400), TextAlignment = TextAlignment.CenterLeft, Height = Application.GetRealHeight(50), Text = "",//Language.StringByID(MyInternationalizationString.customroom), TextColor = ZigbeeColor.Current.LogicBtnCancelColor, }; conditionsRowLayout.AddChidren(btnregionname); ///通过设备找到区域(房间)名称 Device.Logic.Send.RoomNmae(btnregionname, deviceinof); var deviceedit = new Button { BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1, Text = Language.StringByID(MyInternationalizationString.edit), TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, Tag = i, }; conditionsRowLayout.AddRightView(deviceedit); deviceedit.MouseUpEventHandler += (sender, e) => { int intvalue = int.Parse(deviceedit.Tag.ToString()); AddCondition(intvalue); }; ///显示设备条件状态控件 var devicestatus = new Button { Width = Application.GetRealWidth(400), Height = Application.GetRealHeight(130), Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterRight, X = Application.GetRealWidth(400), TextColor = ZigbeeColor.Current.LogicBtnCancelColor, TextSize = 14, }; conditionsRowLayout.AddChidren(devicestatus); switch (deviceinof.Type) { case DeviceType.DoorLock: { conditionIcon.UnSelectedImagePath = "ZigeeLogic/doorlock.png"; for (int a = 0; a < Common.Logic.CurrentLogic.Accounts.Count; a++) { if (Common.Logic.CurrentLogic.Accounts[a]["Type"] == "1") { if (Common.Logic.CurrentLogic.Accounts[a]["UserId"] == conditions["AttriButeData2"]) { devicestatus.Text = Common.Logic.CurrentLogic.Accounts[a]["Account"]; break; } } } } break; } } break; } ///删除控件 var del = new Button { BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1, Text = Language.StringByID(MyInternationalizationString.del), }; conditionsRowLayout.AddRightView(del); del.MouseUpEventHandler += (sender, e) => { var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm, Language.StringByID(MyInternationalizationString.doyouwanttodelete), Language.StringByID(MyInternationalizationString.confrim)); alert.Show(); alert.ConfirmClickEvent += () => { Common.Logic.CurrentLogic.Conditions.Remove(conditions); var lockLogicCommunalPage = new LockLogicCommunalPage(); UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage); UserView.HomePage.Instance.PageIndex += 1; lockLogicCommunalPage.Show(() => { }); }; }; } } #endregion #region ----显示执行目标---- var targetFrameLayout = new FrameLayout { Height = Application.GetRealHeight(160), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(targetFrameLayout); var targetRowLayout = new RowLayout { Y = Application.GetRealHeight(30), Width = Application.GetRealWidth(965), Height = Application.GetRealHeight(130), X = Application.GetRealWidth(58), LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, }; targetFrameLayout.AddChidren(targetRowLayout); var btntargettitle = new Button { Text = Language.StringByID(MyInternationalizationString.execute), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(60), TextSize = 15, Gravity = Gravity.CenterVertical, }; targetRowLayout.AddChidren(btntargettitle); var btntargetadd1 = new Button { Y = Application.GetRealHeight(30), Width = Application.GetRealWidth(57), Height = Application.GetRealHeight(130), X = Application.GetRealWidth(965 + 58), }; targetFrameLayout.AddChidren(btntargetadd1); var btntargetadd = new Button { Width = Application.GetRealWidth(58), Height = Application.GetRealHeight(58), UnSelectedImagePath = "ZigeeLogic/add.png", X = Application.GetRealWidth(965 - 58), Gravity = Gravity.CenterVertical, }; targetRowLayout.AddChidren(btntargetadd); EventHandler btntargetaddclick = (sender, e) => { Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim(); var addAction = new AddAction(); UserView.HomePage.Instance.AddChidren(addAction); UserView.HomePage.Instance.PageIndex += 1; addAction.Show(); }; btntargetadd1.MouseUpEventHandler += btntargetaddclick; btntargetadd.MouseUpEventHandler += btntargetaddclick; List> ListActions = new List>(); ListActions.Clear(); ListActions.AddRange(Common.Logic.CurrentLogic.Actions); ListActions.Add(new Dictionary()); for (int i = 0; i < ListActions.Count; i++) { if (i == (ListActions.Count - 1)) { var addfl = new FrameLayout { Height = Application.GetRealHeight(160 + 30 + 50), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(addfl); var addbtn = new Button { Height = Application.GetRealHeight(130 + 50), Width = Application.GetRealWidth(908), Y = Application.GetRealHeight(30), X = Application.GetRealWidth(86), UnSelectedImagePath = "ZigeeLogic/logicaddcolor.png", }; addfl.AddChidren(addbtn); var addtextbtn = new Button { Height = Application.GetRealHeight(58), Width = Application.GetRealWidth(300), Y = Application.GetRealHeight(45 + 30), TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor, TextID = MyInternationalizationString.lockaddaction, X = Application.GetRealWidth(390), TextSize = 14, }; addfl.AddChidren(addtextbtn); EventHandler addfunctionclick = (sender, e) => { Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim(); var addAction = new AddAction(); UserView.HomePage.Instance.AddChidren(addAction); UserView.HomePage.Instance.PageIndex += 1; addAction.Show(); }; addbtn.MouseUpEventHandler += addfunctionclick; addtextbtn.MouseUpEventHandler += addfunctionclick; } else { var devicesFrameLayout = new FrameLayout { Height = Application.GetRealHeight(130), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(devicesFrameLayout); ///显示图标 var actionsIcon = new Button { Width = Application.GetRealWidth(81), Height = Application.GetRealHeight(81), X = Application.GetRealWidth(104), Y = Application.GetRealHeight(25), // UnSelectedImagePath = "ZigeeLogic/time.png", }; devicesFrameLayout.AddChidren(actionsIcon); var actionsrowLayout = new RowLayout { Width = Application.GetRealWidth(800), Height = Application.GetRealHeight(130), X = Application.GetRealWidth(222), LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, }; devicesFrameLayout.AddChidren(actionsrowLayout); var linkType = int.Parse(ListActions[i]["LinkType"].ToString()); var actions = ListActions[i]; switch (linkType) { case 0: { var obj1 = actions["DeviceAddr"].ToString(); var obj2 = actions["Epoint"].ToString(); var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); }); if (deviceinof == null) { deviceinof = new ZigBee.Device.CommonDevice(); //continue; } ///设备名称Button var btndevicename = new Button { Y = Application.GetRealHeight(20), Height = Application.GetRealHeight(50), Width = Application.GetRealWidth(450), TextAlignment = TextAlignment.CenterLeft, Text = deviceinof.DeviceEpointName, TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextSize = 14, }; actionsrowLayout.AddChidren(btndevicename); ///区域(房间)名称Button var btnregionname = new Button { Y = btndevicename.Bottom + Application.GetRealHeight(10), Width = Application.GetRealWidth(450), TextAlignment = TextAlignment.CenterLeft, Height = Application.GetRealHeight(50), Text = "",//Language.StringByID(MyInternationalizationString.customroom), TextColor = ZigbeeColor.Current.LogicBtnCancelColor, }; actionsrowLayout.AddChidren(btnregionname); ///通过设备找到区域(房间)名称 Device.Logic.Send.RoomNmae(btnregionname, deviceinof); ///显示设备条件状态控件 var devicestatus = new Button { Width = Application.GetRealWidth(350), Height = Application.GetRealHeight(130), Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterRight, X = Application.GetRealWidth(450), TextColor = ZigbeeColor.Current.LogicBtnCancelColor, TextSize = 14, }; actionsrowLayout.AddChidren(devicestatus); ///编辑设备状态Button var deviceedit = new Button { BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1, Text = Language.StringByID(MyInternationalizationString.edit), TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, }; actionsrowLayout.AddRightView(deviceedit); ///编辑点击事件 deviceedit.MouseUpEventHandler += (sender, e) => { var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor }; this.AddChidren(flMain); LockAddDevice.CurrentDeviceStateView(flMain, deviceinof, true); }; switch (deviceinof.Type) { case DeviceType.OnOffOutput: { actionsIcon.UnSelectedImagePath = "ZigeeLogic/light.png"; var TaskList = actions["TaskList"] as List>; if (TaskList == null) { continue; } foreach (var status in TaskList) { if (status["TaskType"].ToString() == "1") { if (status["Data1"].ToString() == "0") { devicestatus.Text = Language.StringByID(MyInternationalizationString.close); } else if (status["Data1"].ToString() == "1") { devicestatus.Text = Language.StringByID(MyInternationalizationString.open); } else if (status["Data1"].ToString() == "2") { devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff); } } } } break; case DeviceType.DimmableLight: { actionsIcon.UnSelectedImagePath = "ZigeeLogic/dimmableLight.png"; var TaskList = actions["TaskList"] as List>; if (TaskList == null) { continue; } foreach (var status in TaskList) { if (status["TaskType"].ToString() == "3") { var intvalue = int.Parse(status["Data1"]); var lightbrightnessvalue = (intvalue * 100) / 254; devicestatus.Text = lightbrightnessvalue.ToString() + "%"; } else if (status["TaskType"].ToString() == "1") { if (status["Data1"].ToString() == "0") { devicestatus.Text = Language.StringByID(MyInternationalizationString.close); } else if (status["Data1"].ToString() == "2") { devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff); } } } } break; case DeviceType.WindowCoveringDevice: { actionsIcon.UnSelectedImagePath = "ZigeeLogic/curtain.png"; var TaskList = actions["TaskList"] as List>; if (TaskList == null) { continue; } foreach (var status in TaskList) { if (status["TaskType"] == "6") { if (status["Data1"] == "0") { devicestatus.Text = Language.StringByID(MyInternationalizationString.open); } else if (status["Data1"] == "1") { devicestatus.Text = Language.StringByID(MyInternationalizationString.close); } else if (status["Data1"] == "5") { devicestatus.Text = status["Data2"] + "%"; } } } } break; case DeviceType.AirSwitch: { actionsIcon.UnSelectedImagePath = "ZigeeLogic/airswitch.png"; var TaskList = actions["TaskList"] as List>; if (TaskList == null) { continue; } foreach (var status in TaskList) { if (status["TaskType"].ToString() == "1") { if (status["Data1"].ToString() == "0") { devicestatus.Text = Language.StringByID(MyInternationalizationString.close); } else if (status["Data1"].ToString() == "1") { devicestatus.Text = Language.StringByID(MyInternationalizationString.open); } else if (status["Data1"].ToString() == "2") { devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff); } } } } break; case DeviceType.Thermostat: { actionsIcon.UnSelectedImagePath = "ZigeeLogic/ac.png"; var TaskList = actions["TaskList"] as List>; if (TaskList == null) { continue; } string modetext = "", temperaturetext = "", speedtext = ""; bool ifclose = false; foreach (var status in TaskList) { if (TaskList.Count == 1) { //数组只有一个元素说明当前空调状态为关; ifclose = false; //如果空调状态是关;直接跳出for循坏; break; } else { ifclose = true; } if (status["TaskType"].ToString() == "5") { if (status["Data1"] == "3") {//3---设置工作模式(1:自动;3:制冷;4:制热;7:送风;8:除湿) switch (status["Data2"]) { case "3": { modetext = Language.StringByID(MyInternationalizationString.logiccool); } break; case "4": { modetext = Language.StringByID(MyInternationalizationString.logicheat); } break; case "1": { modetext = Language.StringByID(MyInternationalizationString.logicauto); } break; case "8": { modetext = Language.StringByID(MyInternationalizationString.logicdry); } break; case "7": { modetext = Language.StringByID(MyInternationalizationString.logicfanonly); } break; } } else if (status["Data1"] == "6") {//6---设置风扇模式(1:低风;2:中风;3:高风;) switch (status["Data2"]) { case "1": { speedtext = Language.StringByID(MyInternationalizationString.logiclow); } break; case "2": { speedtext = Language.StringByID(MyInternationalizationString.logicmedium); } break; case "3": { speedtext = Language.StringByID(MyInternationalizationString.logichigh); } break; } } //4---设置加热度数;5---设置制冷、除湿度数;7---设置自动度数 else if (status["Data1"] == "4" || status["Data1"] == "5" || status["Data1"] == "7") { var s = int.Parse(status["Data2"]) / 100; temperaturetext = s.ToString(); } else if (status["Data1"] == "20") { temperaturetext = "无"; } } } if (ifclose) { devicestatus.Text = modetext + ";" + temperaturetext + "℃;" + speedtext; } else { devicestatus.Text = Language.StringByID(MyInternationalizationString.close); } } break; } } break; case 2: { //在本地查找该场景; var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); }); //本地没有存在; if (sceneinof == null) { //实现目的:显示出来让可以自己是否删除 sceneinof = new SceneUI(); #region ----- ////在网关查找该场景; ////标记问题:网络请求,存在视图加载快慢的问题; //sceneinof = await Send.GetScene(int.Parse(actions["DeviceAddr"].ToString())); ////网关没有存在; //if (sceneinof == null) //{ // //注解:本地和网关都不存在该场景,界面将不会显示该场景; // //sceneinof = new SceneUI(); // //移除该场景数据; // Common.Logic.CurrentLogic.Actions.Remove(actions); // //移除该场景视图; // devicesFrameLayout.RemoveFromParent(); // continue; //} #endregion } actionsIcon.UnSelectedImagePath = "ZigeeLogic/scene.png"; ///设备名称Button var btndevicename = new Button { Y = Application.GetRealHeight(20), Height = Application.GetRealHeight(50), Width = Application.GetRealWidth(500), TextAlignment = TextAlignment.CenterLeft, Text = sceneinof.Name, TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextSize = 14, }; actionsrowLayout.AddChidren(btndevicename); ///区域(房间)名称Button var btnregionname = new Button { Y = btndevicename.Bottom + Application.GetRealHeight(10), Width = Application.GetRealWidth(500), TextAlignment = TextAlignment.CenterLeft, Height = Application.GetRealHeight(50), Text = "",//Language.StringByID(MyInternationalizationString.customroom), TextColor = ZigbeeColor.Current.LogicBtnCancelColor, }; actionsrowLayout.AddChidren(btnregionname); /////通过设备找到区域(房间)名称 Common.Room room = new Common.Room(); btnregionname.Text = room.GetRoomNameBySceneId(sceneinof.Id); //Send.RoomNmae(btnregionname, deviceinof); } break; } ///删除控件 var del = new Button { BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1, Text = Language.StringByID(MyInternationalizationString.del), }; actionsrowLayout.AddRightView(del); del.MouseUpEventHandler += (sender, e) => { var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm, Language.StringByID(MyInternationalizationString.doyouwanttodelete), Language.StringByID(MyInternationalizationString.confrim)); alert.Show(); alert.ConfirmClickEvent += () => { Common.Logic.CurrentLogic.Actions.Remove(actions); var lockLogicCommunalPage = new LockLogicCommunalPage(); UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage); UserView.HomePage.Instance.PageIndex += 1; lockLogicCommunalPage.Show(() => { }); }; }; } } #endregion #region ----推送设置---- var fraline1 = new FrameLayout { Height = Application.GetRealHeight(30), }; middle.AddChidren(fraline1); var pushFrameLayout = new FrameLayout { Height = Application.GetRealHeight(160), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(pushFrameLayout); var pushswitchRowlayout = new RowLayout { Y = Application.GetRealHeight(30), Width = Application.GetRealWidth(965), Height = Application.GetRealHeight(130), X = Application.GetRealWidth(58), LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, }; pushFrameLayout.AddChidren(pushswitchRowlayout); var btnswitchtxet = new Button { TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(60), Gravity = Gravity.CenterVertical, TextID = MyInternationalizationString.pushswitch, TextSize = 14, }; pushswitchRowlayout.AddChidren(btnswitchtxet); var btnswitch = new Button { Width = Application.GetMinRealAverage(104), Height = Application.GetMinRealAverage(63), UnSelectedImagePath = "ZigeeLogic/logicclose.png", SelectedImagePath = "ZigeeLogic/logicopen.png", X = Application.GetRealWidth(965 - 104), Gravity = Gravity.CenterVertical, }; pushswitchRowlayout.AddChidren(btnswitch); var custompushFrameLayout = new FrameLayout { Height = Application.GetRealHeight(0), BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; middle.AddChidren(custompushFrameLayout); var custompushRowLayout = new RowLayout { Y = Application.GetRealHeight(30), Width = Application.GetRealWidth(965), Height = Application.GetRealHeight(130), X = Application.GetRealWidth(58), LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor, }; custompushFrameLayout.AddChidren(custompushRowLayout); var btncustompush = new Button { TextID = MyInternationalizationString.custompush, TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(60), Gravity = Gravity.CenterVertical, TextSize = 14, }; custompushRowLayout.AddChidren(btncustompush); var custompushback = new Button { Width = Application.GetRealWidth(58), Height = Application.GetRealHeight(58), UnSelectedImagePath = "ZigeeLogic/next.png", X = Application.GetRealWidth(965 - 58), Gravity = Gravity.CenterVertical, }; custompushRowLayout.AddChidren(custompushback); EventHandler customclick = (sender, e) => { var CustomText = new CustomText(); UserView.HomePage.Instance.AddChidren(CustomText); UserView.HomePage.Instance.PageIndex += 1; CustomText.Show(); }; btncustompush.MouseUpEventHandler += customclick; custompushback.MouseUpEventHandler += customclick; custompushRowLayout.MouseUpEventHandler += customclick; #endregion bool tag = false;//标记开关状态; btnswitch.MouseUpEventHandler += (sender1, e1) => { btnswitch.IsSelected = !btnswitch.IsSelected; if (btnswitch.IsSelected) { tag = true; custompushFrameLayout.Height = Application.GetRealHeight(160); Common.Logic.CurrentLogic.LogicIsCustomPushText = 1; if (Common.Logic.CurrentLogic.LogicId != 0) { Send.Data("添加/更新", "/App/HomeLogicConfig", "POST"); } } else { tag = false; custompushFrameLayout.Height = Application.GetRealHeight(0); Common.Logic.CurrentLogic.LogicIsCustomPushText = 0; if (Common.Logic.CurrentLogic.LogicId != 0) { Send.Data("删除", "/App/DelHomeLogicConfig", "POST"); } } }; if (Common.Logic.CurrentLogic.LogicIsCustomPushText == 0) { btnswitch.IsSelected = false; } else { btnswitch.IsSelected = true; } var saveFrameLayout = new FrameLayout { Y = middle.Bottom, Height = Application.GetRealHeight(180), BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; this.AddChidren(saveFrameLayout); var btnsave = new Button { X = Application.GetRealWidth(85), Height = Application.GetRealHeight(130),//194 Width = Application.GetRealWidth(910), Radius = (uint)Application.GetRealHeight(60), BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor, TextID = MyInternationalizationString.Save, TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, TextSize = 16, }; saveFrameLayout.AddChidren(btnsave); btnsave.MouseUpEventHandler += async (sender, e) => { var name = logicTextBox.Text.Trim(); if (string.IsNullOrEmpty(logicTextBox.Text.Trim())) { var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, Language.StringByID(MyInternationalizationString.PleaseEnterLogicName), Language.StringByID(MyInternationalizationString.confrim)); alert.Show(); return; } //var logicname = Common.Logic.LockLogicList.Find((logic) => Common.Logic.CurrentLogic.LogicId != logic.LogicId && logic.LogicName == name); //if (logicname != null) //{ // new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.Rename), Language.StringByID(MyInternationalizationString.Close)).Show(); // return; //} Common.Logic.CurrentLogic.LogicName = name; //判断是新添加逻辑(默认0)还是修改逻辑 CommonPage.Loading.Start(); if (Common.Logic.CurrentLogic.LogicId == 0) { //发送添加逻辑命令 var logicifon = await Send.AddModifyLogic(Common.Logic.CurrentLogic); if (logicifon != null && logicifon.LogicId != 0) { Common.Logic.CurrentLogic.LogicId = logicifon.LogicId; Common.Logic.LockLogicList.Add(Common.Logic.CurrentLogic); if (tag) { Send.Data("添加/更新", "/App/HomeLogicConfig", "POST"); } } } else { //发送修改逻辑命令 Send.AddModifyLogic(Common.Logic.CurrentLogic); } CommonPage.Loading.Hide(); UserView.HomePage.Instance.RemoveViewByTag("LockLogic"); UserView.HomePage.Instance.RemoveViewByTag("LockLogicList"); var doorLockLogicList = new LockLogicList(); UserView.HomePage.Instance.AddChidren(doorLockLogicList); UserView.HomePage.Instance.PageIndex += 1; doorLockLogicList.Show(); }; } public void AddCondition(int value) { var addCondition = new AddCondition(); addCondition.conditionsIndex = value; UserView.HomePage.Instance.AddChidren(addCondition); UserView.HomePage.Instance.PageIndex += 1; addCondition.Show(); } } }