WJC
2019-12-30 f1c3921b08bb22ac6f5db22d620e01d7e8e5c49f
ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
@@ -18,7 +18,7 @@
            Tag = "Logic";
        }
        EditText logicTextBox;
        public void Show(Action action)
        public async void Show(Action action)
        {
            
            #region  最上面的布局代码
@@ -32,14 +32,15 @@
            var titleName = new Button
            {
                TextSize = 16,
                TextSize = 17,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                TextAlignment = TextAlignment.CenterLeft,
                X = Application.GetRealWidth(176),
                Width = Application.GetRealWidth(400),
                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)
@@ -78,12 +79,7 @@
                action();
                RemoveFromParent();
            };
            #endregion
            var middle = new VerticalScrolViewLayout
            {
@@ -92,7 +88,26 @@
                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
            };
            this.AddChidren(middle);
            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);
            #region -----自动化名称 设置名称-----
            var logicnamefl = new FrameLayout
@@ -112,6 +127,7 @@
                TextID = MyInternationalizationString.automationname,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                Y = Application.GetRealHeight(35),
                TextSize = 15,
            };
            logicnamefl.AddChidren(text);
@@ -123,7 +139,7 @@
                X = text.Right,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                TextSize = 13,
                TextSize = 14,
                Text = Common.Logic.CurrentLogic.LogicName,
                //TextID=MyInternationalizationString.automation1,
            };
@@ -166,7 +182,7 @@
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                Width = Application.GetRealWidth(300),
                Height = Application.GetRealHeight(60),
                TextSize = 16,
                TextSize = 15,
                Gravity = Gravity.CenterVertical,
            });
@@ -277,6 +293,7 @@
                        TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
                        TextID = MyInternationalizationString.addconditions,
                        X = Application.GetRealWidth(390),
                        TextSize = 14,
                    };
                    addfl.AddChidren(addtextbtn);
@@ -343,6 +360,7 @@
                                    TextAlignment = TextAlignment.CenterLeft,
                                    Gravity = Gravity.CenterVertical,
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(timevalue);
@@ -354,6 +372,7 @@
                                    Gravity = Gravity.CenterVertical,
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    X = conditionsRowLayout.Width - Application.GetRealWidth(400),
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(timeTxet);
@@ -454,6 +473,7 @@
                                    Text = conditions["StartHour"] + ":" + s1 + "-" + conditions["StopHour"] + ":" + s2,
                                    //TextColor = 0xff121212,
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(timevalue);
                                var timeTxet = new Button
@@ -464,6 +484,7 @@
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    X = conditionsRowLayout.Width - Application.GetRealWidth(400),
                                    TextID = MyInternationalizationString.timeframe,
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(timeTxet);
@@ -490,7 +511,8 @@
                                var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; });
                                if (deviceinof == null)
                                {
                                    continue;
                                    deviceinof = new ZigBee.Device.CommonDevice();
                                    //continue;
                                }
                                ///显示设备名称
                                var btndevice = new Button
@@ -501,6 +523,7 @@
                                    TextAlignment = TextAlignment.CenterLeft,
                                    Text = deviceinof.DeviceEpointName,
                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(btndevice);
@@ -541,7 +564,7 @@
                                        UserView.HomePage.Instance.AddChidren(memberList);
                                        UserView.HomePage.Instance.PageIndex += 1;
                                        MemberList.edit = true;
                                        memberList.Show(deviceinof);
                                        memberList.Show(deviceinof, conditions);
                                    }
                                };
@@ -555,6 +578,7 @@
                                    TextAlignment = TextAlignment.CenterRight,
                                    X = Application.GetRealWidth(400),
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(devicestatus);
@@ -609,14 +633,24 @@
                                                        {
                                                            int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                            int second = int.Parse(conditions["IgnoreTime"]) % 60;
                                                            if (second != 0)
                                                            if (minute != 0 && second != 0)
                                                            {
                                                                devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                            }
                                                            else
                                                            {
                                                                devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                if (minute == 0 && second != 0)
                                                                {
                                                                    devicestatus.Text = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                }
                                                                if (minute != 0 && second == 0)
                                                                {
                                                                    devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                }
                                                            }
                                                        }
                                                    }
@@ -624,7 +658,6 @@
                                                case 21:
                                                case 22:
                                                    {
                                                        conditionIcon.UnSelectedImagePath = "ZigeeLogic/doormagnetism.png";
                                                        if (intvalue == "1")
                                                        {
                                                            devicestatus.TextID = MyInternationalizationString.logicopen;
@@ -636,14 +669,24 @@
                                                                int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                                int second = int.Parse(conditions["IgnoreTime"]) % 60;
                                                                if (second != 0)
                                                                if (minute != 0 && second != 0)
                                                                {
                                                                    devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
                                                                }
                                                                else
                                                                {
                                                                    devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime);
                                                                    if (minute == 0 && second != 0)
                                                                    {
                                                                        devicestatus.Text = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
                                                                    }
                                                                    if (minute != 0 && second == 0)
                                                                    {
                                                                        devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime);
                                                                    }
                                                                }
                                                            }
@@ -656,7 +699,6 @@
                                                    break;
                                                case 40:
                                                    {
                                                        conditionIcon.UnSelectedImagePath = "ZigeeLogic/smoke.png";
                                                        if (intvalue == "1")
                                                        {
                                                            devicestatus.TextID = MyInternationalizationString.smokescreen;
@@ -666,7 +708,6 @@
                                                    break;
                                                case 42:
                                                    {
                                                        conditionIcon.UnSelectedImagePath = "ZigeeLogic/waterleakage.png";
                                                        if (intvalue == "1")
                                                        {
                                                            devicestatus.TextID = MyInternationalizationString.waterleakage;
@@ -679,7 +720,6 @@
                                                    break;
                                                case 43:
                                                    {
                                                        conditionIcon.UnSelectedImagePath = "ZigeeLogic/gas.png";
                                                        if (intvalue == "1")
                                                        {
                                                            devicestatus.TextID = MyInternationalizationString.gas;
@@ -689,7 +729,6 @@
                                                    break;
                                                case 277:
                                                    {
                                                        conditionIcon.UnSelectedImagePath = "ZigeeLogic/waterleakage.png";
                                                        if (intvalue == "1")
                                                        {
                                                            devicestatus.TextID = MyInternationalizationString.callthepolice;
@@ -699,7 +738,6 @@
                                                    break;
                                                default:
                                                    {
                                                        conditionIcon.UnSelectedImagePath = "ZigeeLogic/infraredsensor.png";
                                                        if (intvalue == "1")
                                                        {
                                                            devicestatus.TextID = MyInternationalizationString.callthepolice;
@@ -725,7 +763,7 @@
                                                {
                                                    if (Common.Logic.CurrentLogic.Accounts[a]["UserId"] == conditions["AttriButeData2"])
                                                    {
                                                        devicestatus.Text = conditions["Account"];
                                                        devicestatus.Text = Common.Logic.CurrentLogic.Accounts[a]["Account"];
                                                        break;
                                                    }
@@ -735,22 +773,54 @@
                                        }
                                        break;
                                    case DeviceType.TemperatureSensor:
                                       // conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png";
                                        // conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png";
                                        var dev = deviceinof as TemperatureSensor;
                                        if (conditions["Cluster_ID"]=="1026") {
                                        if (conditions["Cluster_ID"] == "1026")
                                        {
                                            dev.SensorDiv = 1;
                                        } else {
                                        }
                                        else
                                        {
                                            dev.SensorDiv = 2;
                                        }
                                        string s = "";
                                        switch (conditions["Range"])
                                        {
                                            case "0":
                                                {
                                                    s = ">";
                                                }
                                                break;
                                            case "1":
                                                {
                                                    s = "=";
                                                }
                                                break;
                                            case "2":
                                                {
                                                    s = "<";
                                                }
                                                break;
                                            case "6":
                                                {
                                                    s = "≥";
                                                }
                                                break;
                                            case "7":
                                                {
                                                    s = "≤";
                                                }
                                                break;
                                        }
                                        if (conditions["Cluster_ID"] == "1026")
                                        {
                                            conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png";
                                            devicestatus.Text = ">" + conditions["AttriButeData1"] + "℃";
                                            devicestatus.Text = s + conditions["AttriButeData1"] + "℃";
                                        }
                                        else
                                        {
                                            conditionIcon.UnSelectedImagePath = "ZigeeLogic/humidity.png";
                                            devicestatus.Text = "<" + conditions["AttriButeData1"] + "%";
                                            devicestatus.Text = s + conditions["AttriButeData1"] + "%";
                                        }
                                        break;
@@ -773,6 +843,7 @@
                                    Gravity = Gravity.CenterVertical,
                                    Text = logicinof.LogicName,
                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                                    TextSize = 14,
                                    //TextColor = 0xff121212,
                                };
                                conditionsRowLayout.AddChidren(btnlogic);
@@ -803,6 +874,7 @@
                                    TextAlignment = TextAlignment.CenterRight,
                                    X = Application.GetRealWidth(500),
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(logicstatus);
@@ -827,6 +899,7 @@
                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                                    //TextColor = 0xff121212,
                                    TextID = MyInternationalizationString.security,
                                    TextSize = 14,
                                };
                                //conditionsRowLayout.AddChidren(btnsecurity);
@@ -859,42 +932,55 @@
                                    Gravity = Gravity.CenterVertical,
                                    TextAlignment = TextAlignment.CenterLeft,
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(securitystatus);
                                if (conditions["EnOrWithdrawMode"] == "1")
                                switch (conditions["EnOrWithdrawMode"])
                                {
                                    conditionIcon.UnSelectedImagePath = "ZigeeLogic/withdrawal.png";
                                    securitystatus.Text = Language.StringByID(MyInternationalizationString.withdrawal);
                                }
                                else
                                {
                                    if (conditions["ModeId"] == "1")
                                    {
                                        conditionIcon.UnSelectedImagePath = "ZigeeLogic/athome.png";
                                        securitystatus.Text = Language.StringByID(MyInternationalizationString.logicathomegarrison);
                                    case "0":
                                        {
                                            if (conditions["ModeId"] == "1")
                                            {
                                                conditionIcon.UnSelectedImagePath = "ZigeeLogic/athome.png";
                                                securitystatus.Text = Language.StringByID(MyInternationalizationString.logicathomegarrison);
                                    }
                                    else
                                    {
                                        conditionIcon.UnSelectedImagePath = "ZigeeLogic/leavehome.png";
                                        securitystatus.Text = Language.StringByID(MyInternationalizationString.logicremovehomegarrison);
                                    }
                                            }
                                            else
                                            {
                                                conditionIcon.UnSelectedImagePath = "ZigeeLogic/leavehome.png";
                                                securitystatus.Text = Language.StringByID(MyInternationalizationString.logicremovehomegarrison);
                                            }
                                        }
                                        break;
                                    case "1":
                                        {
                                            conditionIcon.UnSelectedImagePath = "ZigeeLogic/withdrawal.png";
                                            securitystatus.Text = Language.StringByID(MyInternationalizationString.withdrawal);
                                        }
                                        break;
                                    case "2":
                                        {
                                            conditionIcon.UnSelectedImagePath = "ZigeeLogic/withdrawal.png";
                                            securitystatus.Text = Language.StringByID(MyInternationalizationString.urgentwithdrawal);
                                        }
                                        break;
                                }
                            }
                            break;
                        case 7:
                            {
                                conditionIcon.UnSelectedImagePath = "ZigeeLogic/position.png";
                                var btnlocation = new Button
                                {
                                    Width = Application.GetRealWidth(700),
                                    Width = Application.GetRealWidth(250),
                                    TextAlignment = TextAlignment.CenterLeft,
                                    Gravity = Gravity.CenterVertical,
                                    //Text = "地理位置",
                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                                    //TextColor = 0xff121212,
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextID = MyInternationalizationString.geographicalposition,
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(btnlocation);
@@ -916,12 +1002,13 @@
                                var locationstatus = new Button
                                {
                                    Width = Application.GetRealWidth(300),
                                    Width = Application.GetRealWidth(550),
                                    Height = Application.GetRealHeight(130),
                                    Gravity = Gravity.CenterVertical,
                                    TextAlignment = TextAlignment.CenterRight,
                                    X = Application.GetRealWidth(500),
                                    X = Application.GetRealWidth(250),
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextSize = 14,
                                };
                                conditionsRowLayout.AddChidren(locationstatus);
                                foreach (var radius in Common.Logic.CurrentLogic.Accounts)
@@ -1005,7 +1092,7 @@
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                Width = Application.GetRealWidth(300),
                Height = Application.GetRealHeight(60),
                TextSize = 16,
                TextSize = 15,
                Gravity = Gravity.CenterVertical,
            };
            targetRowLayout.AddChidren(btntargettitle);
@@ -1075,6 +1162,7 @@
                        TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
                        TextID = MyInternationalizationString.addfunction,
                        X = Application.GetRealWidth(390),
                        TextSize = 14,
                    };
                    addfl.AddChidren(addtextbtn);
                    EventHandler<MouseEventArgs> addfunctionclick = (sender, e) =>
@@ -1133,18 +1221,21 @@
                                var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); });
                                if (deviceinof == null)
                                {
                                    continue;
                                    deviceinof = new ZigBee.Device.CommonDevice();
                                    // continue;
                                }
                                ///设备名称Button
                                var btndevicename = new Button
                                {
                                    Y = Application.GetRealHeight(20),
                                    Height = Application.GetRealHeight(50),
                                    Width = Application.GetRealWidth(450),
                                    Width = Application.GetRealWidth(400),
                                    TextAlignment = TextAlignment.CenterLeft,
                                    Text = deviceinof.DeviceEpointName,
                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                                    TextSize = 14,
                                };
                                actionsrowLayout.AddChidren(btndevicename);
@@ -1152,7 +1243,7 @@
                                var btnregionname = new Button
                                {
                                    Y = btndevicename.Bottom + Application.GetRealHeight(10),
                                    Width = Application.GetRealWidth(450),
                                    Width = Application.GetRealWidth(400),
                                    TextAlignment = TextAlignment.CenterLeft,
                                    Height = Application.GetRealHeight(50),
                                    Text = "",//Language.StringByID(MyInternationalizationString.customroom),
@@ -1164,12 +1255,13 @@
                                ///显示设备条件状态控件
                                var devicestatus = new Button
                                {
                                    Width = Application.GetRealWidth(350),
                                    Width = Application.GetRealWidth(400),
                                    Height = Application.GetRealHeight(130),
                                    Gravity = Gravity.CenterVertical,
                                    TextAlignment = TextAlignment.CenterRight,
                                    X = Application.GetRealWidth(450),
                                    X = Application.GetRealWidth(400),
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextSize = 14,
                                };
                                actionsrowLayout.AddChidren(devicestatus);
@@ -1333,26 +1425,23 @@
                                            {
                                                continue;
                                            }
                                            string modetext = "", temperaturetext="", speedtext = "";
                                            string modetext = "", temperaturetext = "", speedtext = "";
                                            bool ifclose = false;
                                            foreach (var status in TaskList)
                                            {
                                                if (status["TaskType"].ToString() == "1")
                                                if (TaskList.Count == 1)
                                                {
                                                    if (status["Data1"].ToString() == "0")
                                                    {
                                                       // devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
                                                        ifclose = false;
                                                    }
                                                    else if (status["Data1"].ToString() == "1")
                                                    {
                                                        //devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
                                                        ifclose = true;
                                                    }
                                                    //数组只有一个元素说明当前空调状态为关;
                                                    ifclose = false;
                                                    //如果空调状态是关;直接跳出for循坏;
                                                    break;
                                                }
                                                else if (status["TaskType"].ToString() == "5")
                                                else
                                                {
                                                    ifclose = true;
                                                }
                                                if (status["TaskType"].ToString() == "5")
                                                {
                                                    if (status["Data1"] == "3")
                                                    {//3---设置工作模式(1:自动;3:制冷;4:制热;7:送风;8:除湿)
@@ -1411,7 +1500,7 @@
                                                    //4---设置加热度数;5---设置制冷、除湿度数;7---设置自动度数
                                                    else if (status["Data1"] == "4" || status["Data1"] == "5" || status["Data1"] == "7")
                                                    {
                                                        var s = int.Parse(status["Data2"]) /100;
                                                        var s = int.Parse(status["Data2"]) / 100;
                                                        temperaturetext = s.ToString();
                                                    }
                                                    else if (status["Data1"] == "20")
@@ -1442,11 +1531,29 @@
                            break;
                        case 2:
                            {
                                //在本地查找该场景;
                                var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); });
                                //本地没有存在;
                                if (sceneinof == null)
                                {
                                    continue;
                                    //实现目的:显示出来让可以自己是否删除
                                    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";
@@ -1459,6 +1566,7 @@
                                    TextAlignment = TextAlignment.CenterLeft,
                                    Text = sceneinof.Name,
                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                                    TextSize = 14,
                                };
                                actionsrowLayout.AddChidren(btndevicename);
@@ -1479,7 +1587,6 @@
                                //Send.RoomNmae(btnregionname, deviceinof);
                            }
                            break;
                        case 4:
@@ -1497,6 +1604,7 @@
                                    Gravity = Gravity.CenterVertical,
                                    Text = logicinof.LogicName,
                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                                    TextSize = 14,
                                    //TextColor = 0xff121212,
                                };
                                actionsrowLayout.AddChidren(btnlogic);
@@ -1528,6 +1636,7 @@
                                    X = Application.GetRealWidth(1080 - 330),
                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                                    TextAlignment = TextAlignment.CenterRight,
                                    TextSize = 14,
                                };
                                actionsrowLayout.AddChidren(logicstatus);
@@ -1551,6 +1660,7 @@
                                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                                    //TextColor = 0xff121212,
                                    TextID = MyInternationalizationString.security,
                                    TextSize = 14,
                                };
                                //actionsrowLayout.AddChidren(btnsecurity);
@@ -1579,6 +1689,7 @@
                                    Gravity = Gravity.CenterVertical,
                                    TextAlignment = TextAlignment.CenterLeft,
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextSize = 14,
                                };
                                actionsrowLayout.AddChidren(securitystatus);
@@ -1626,6 +1737,7 @@
                                    Width = Application.GetRealWidth(500),
                                    TextAlignment = TextAlignment.CenterLeft,
                                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                                    TextSize = 14,
                                };
                                actionsrowLayout.AddChidren(delaytimeBtn);
                                if (Minutes != 0)
@@ -1685,6 +1797,7 @@
                            if (e1)
                            {
                                Common.Logic.CurrentLogic.Actions.Remove(actions);
                                // devicesFrameLayout.RemoveFromParent();
                                var logicCommunalPage = new LogicCommunalPage();
                                UserView.HomePage.Instance.AddChidren(logicCommunalPage);
                                UserView.HomePage.Instance.PageIndex += 1;
@@ -1733,6 +1846,7 @@
                Width = Application.GetRealWidth(300),
                Height = Application.GetRealHeight(60),
                Gravity = Gravity.CenterVertical,
                TextSize = 14,
            };
            weekRowLayout.AddChidren(settxet);
            var btnweektext = new Button
@@ -1745,6 +1859,7 @@
                TextID = MyInternationalizationString.everyday,
                Y = Application.GetRealHeight(35),
                X = settxet.Right,
                TextSize = 14,
            };
            weekRowLayout.AddChidren(btnweektext);
@@ -1805,6 +1920,7 @@
                Height = Application.GetRealHeight(60),
                Gravity = Gravity.CenterVertical,
                TextID = MyInternationalizationString.pushswitch,
                TextSize = 14,
            };
            pushswitchRowlayout.AddChidren(btnswitchtxet);
@@ -1818,23 +1934,11 @@
                Gravity = Gravity.CenterVertical,
            };
            pushswitchRowlayout.AddChidren(btnswitch);
            btnswitch.MouseUpEventHandler += (sender1, e1) =>
            {
                btnswitch.IsSelected = !btnswitch.IsSelected;
                if (btnswitch.IsSelected)
                {
                }
                else
                {
                }
            };
            var custompushFrameLayout = new FrameLayout
            {
                Height = Application.GetRealHeight(160),
                Height = Application.GetRealHeight(0),
                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
            };
            middle.AddChidren(custompushFrameLayout);
@@ -1857,6 +1961,7 @@
                Width = Application.GetRealWidth(300),
                Height = Application.GetRealHeight(60),
                Gravity = Gravity.CenterVertical,
                TextSize = 14,
            };
            custompushRowLayout.AddChidren(btncustompush);
@@ -1881,50 +1986,53 @@
            btncustompush.MouseUpEventHandler += customclick;
            custompushback.MouseUpEventHandler += customclick;
            custompushRowLayout.MouseUpEventHandler += customclick;
            bool tag = false;//标记开关状态;
            btnswitch.MouseUpEventHandler += (sender1, e1) =>
              {
                  btnswitch.IsSelected = !btnswitch.IsSelected;
                  if (btnswitch.IsSelected)
                  {
                      tag = true;
                      custompushFrameLayout.Height = Application.GetRealHeight(160);
                      if (Common.Logic.CurrentLogic.LogicId != 0)
                      {
                          Send.Data("添加/更新", "/App/HomeLogicConfig", "POST");
                      }
                  }
                  else
                  {
                      tag = false;
                      custompushFrameLayout.Height = Application.GetRealHeight(0);
                      if (Common.Logic.CurrentLogic.LogicId != 0)
                      {
                          Send.Data("删除", "/App/DelHomeLogicConfig", "POST");
                      }
                  }
              };
            #endregion
            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,
            };
            saveFrameLayout.AddChidren(btnsave);
            btnsave.MouseUpEventHandler += async (sender, e) =>
            {
                var name = logicTextBox.Text.Trim();
                //if (Common.Logic.CurrentLogic.Conditions.Count != 0 && Common.Logic.CurrentLogic.Actions.Count != 0)
                //{
                //    AddChidren(btnsave);
                //}
                if (string.IsNullOrEmpty(logicTextBox.Text.Trim()))
                {
                    new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.PleaseEnterLogicName), Language.StringByID(MyInternationalizationString.Close)).Show();
                    return;
                }
                var logicname = Common.Logic.LogicList.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;
                }
                ///先隐藏判断名字相同的功能;
                //var logicname = Common.Logic.LogicList.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;
                bool succeed = false;
                //判断是新添加逻辑(默认0)还是修改逻辑
                CommonPage.Loading.Start();
                if (Common.Logic.CurrentLogic.LogicId == 0)
@@ -1933,24 +2041,35 @@
                    var logicifon = await Send.AddModifyLogic(Common.Logic.CurrentLogic);
                    if (logicifon != null && logicifon.LogicId != 0)
                    {
                        succeed = true;
                        Common.Logic.CurrentLogic.LogicId = logicifon.LogicId;
                        Common.Logic.LogicList.Add(Common.Logic.CurrentLogic);
                        if (tag)
                        {
                            Send.Data("添加/更新", "/App/HomeLogicConfig", "POST");
                        }
                    }
                }
                else
                {
                    //发送修改逻辑命令
                    Send.AddModifyLogic(Common.Logic.CurrentLogic);
                   var modlogic=Send.AddModifyLogic(Common.Logic.CurrentLogic);
                    //编辑默认成功(不考虑网络情况);
                    succeed = true;
                }
                CommonPage.Loading.Hide();
                if (!succeed)//succeed标记是添加成功还是失败
                {
                    //网关回复失败,不关闭界面,让它停留当前界面;
                    //(原因:考虑到失败重新编辑原来数据给用户带来了麻烦)
                    ///提示:添加自动化失败;
                    //TipView("添加自动化失败");
                    //return;
                }
                UserView.HomePage.Instance.RemoveViewByTag("Logic");
                Category.Category.instance?.RefreshBodyView();
                //UserView.HomePage.Instance.RemoveAt("Logic1");
                //Category.Category category = new Category.Category();
                //UserView.HomePage.Instance.AddChidren(category);
                //UserView.HomePage.Instance.PageIndex += 1;
                //category.Show(2);
            };
@@ -2226,14 +2345,7 @@
                flMain.RemoveFromParent();
            };
            var timetypeframelayout1 = new FrameLayout
            {
                Width = Application.GetRealWidth(1080),
                Height = Application.GetRealHeight(100),
                Y = Application.GetRealHeight(1920 - 100),
                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
            };
            flMain.AddChidren(timetypeframelayout1);
            var framelayout = new FrameLayout
            {
                Width = Application.GetRealWidth(1080),
@@ -2243,6 +2355,7 @@
                Radius = (uint)Application.GetRealHeight(60),
            };
            flMain.AddChidren(framelayout);
            framelayout.SetCornerWithSameRadius(Application.GetRealHeight(58),HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight);
            #region  -------取消   完成
            var timetype = new RowLayout
@@ -2259,6 +2372,7 @@
                Width = Application.GetRealWidth(200),
                X = Application.GetRealWidth(80),
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = 14,
            };
            timetype.AddChidren(Btncancel);
            Btncancel.MouseUpEventHandler += (sender16, e16) =>
@@ -2286,6 +2400,7 @@
                Width = Application.GetRealWidth(200),
                TextAlignment = TextAlignment.CenterRight,
                X = Btntitle.Right + Application.GetRealWidth(100),
                TextSize = 14,
            };
            timetype.AddChidren(Btncomplete);
@@ -2321,6 +2436,7 @@
                TextID = MyInternationalizationString.Allconditions,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor,
                TextSize = 14,
            };
            androw.AddChidren(andbtn);
@@ -2356,6 +2472,7 @@
                TextID = MyInternationalizationString.anycondition,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor,
                TextSize = 14,
            };
            orrow.AddChidren(orbtn);
@@ -2449,5 +2566,50 @@
            };
        }
        /// <summary>
        /// 闪现式提示框的方法
        /// </summary>
        /// <param name="tipText">提示内容</param>
        /// <param name="second">停留时间单位为s</param>
        public void TipView(string tipText, int second = 1)
        {
            var frameLayout = new FrameLayout { BackgroundColor = 0x50000000 };
            this.AddChidren(frameLayout);
            var btn = new Button
            {
                Gravity = Gravity.Center,
                Text = tipText,
                BackgroundColor = 0xff1f1f1f,
                Width = Application.GetRealWidth(500),
                Height = Application.GetRealHeight(100),
                Radius = (uint)Application.GetRealHeight(50),
            };
            frameLayout.AddChidren(btn);
            var dateTime1 = DateTime.Now;
            new System.Threading.Thread(() =>
            {
                Application.RunOnMainThread(() =>
                {
                    while (true)
                    {
                        if ((DateTime.Now - dateTime1).TotalMilliseconds > second * 1000)
                        {
                            //默认一秒关闭
                            frameLayout.RemoveFromParent();
                            break;
                        }
                    }
                });
            })
            { IsBackground = true }.Start();
        }
    }
}