WJC
2020-04-02 94e4e5b9fd3da964c44b7b14227d6fe2bbb426d7
ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
@@ -23,6 +23,7 @@
        {
            #region  View布局代码
            UserView.HomePage.Instance.ScrollEnabled = false;//锁住左滑
            TopView view = new TopView();
            this.AddChidren(view.TopRowView());
            if (Common.Logic.CurrentLogic.LogicId != 0)
@@ -35,6 +36,7 @@
            }
            view.clickBtn.MouseDownEventHandler += (sender, e) =>
            {
               // UserView.HomePage.Instance.ScrollEnabled = true;//恢复左滑
                action();
                RemoveFromParent();
            };
@@ -99,7 +101,7 @@
            addconditionview.iconBtn.Visible = true;
            addconditionview.titleBtn.TextID = MyInternationalizationString.ifcondition;
            middle.AddChidren(addconditionview.AddDeviceView());
            ///添加条件的点击事件
            addconditionview.clickBtn.MouseUpEventHandler+= (sender, e) =>
            {
@@ -160,6 +162,7 @@
                    LogicView.AddDeviceView addflview = new LogicView.AddDeviceView();
                    addflview.titleBtn.TextID = MyInternationalizationString.addconditions;
                    middle.AddChidren(addflview.AddFl());
                    addflview.clickBtn.MouseUpEventHandler += (sender, e) =>
                    {
                        if (Common.Logic.CurrentLogic.Conditions.Count == 1)
@@ -179,6 +182,9 @@
                {
                    SelectedDeviceView selecteddevice = new SelectedDeviceView();
                    selecteddevice.Show(middle);
                    selecteddevice.stateRow.AddRightView(selecteddevice.edit);
                    selecteddevice.stateRow.AddRightView(selecteddevice.del);
                    var Type = int.Parse(ListConditions[i]["Type"]);
                    var conditions = ListConditions[i];
                    string name = "";
@@ -275,7 +281,7 @@
                        case 1:
                            {
                                var deviceinof = Method.GetCommonDevice(conditions["MacAddr"], conditions["Epoint"]);
                                name = deviceinof.DeviceEpointName;
                                name = LocalDevice.Current.GetDeviceEpointName(deviceinof);
                                selecteddevice.regionNameBtn.Visible = true;
                                Method.RoomNmae(selecteddevice.regionNameBtn, deviceinof);
@@ -445,7 +451,7 @@
                                                {
                                                    if (Common.Logic.CurrentLogic.Accounts[a]["UserId"] == conditions["AttriButeData2"])
                                                    {
                                                        state = Common.Logic.CurrentLogic.Accounts[a]["Account"];
                                                        state = Common.Logic.CurrentLogic.Accounts[a]["AccountName"];
                                                        break;
                                                    }
@@ -655,10 +661,11 @@
                        alert.ConfirmClickEvent += () =>
                        {
                            Common.Logic.CurrentLogic.Conditions.Remove(conditions);
                            var logicCommunalPage = new LogicCommunalPage();
                            UserView.HomePage.Instance.AddChidren(logicCommunalPage);
                            UserView.HomePage.Instance.PageIndex += 1;
                            logicCommunalPage.Show(() => { });
                            selecteddevice.selecetdFrameLayout.RemoveFromParent();
                            //var logicCommunalPage = new LogicCommunalPage();
                            //UserView.HomePage.Instance.AddChidren(logicCommunalPage);
                            //UserView.HomePage.Instance.PageIndex += 1;
                            //logicCommunalPage.Show(() => { });
                        };
                    };
@@ -675,20 +682,20 @@
            addactionview.iconBtn.Visible = true;
            addactionview.titleBtn.TextID = MyInternationalizationString.execute;
            middle.AddChidren(addactionview.AddDeviceView());
            addactionview.clickBtn.MouseUpEventHandler+= (sender, e) =>
            {
                Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
                var deviceTarget = new DeviceTarget();
                UserView.HomePage.Instance.AddChidren(deviceTarget);
                UserView.HomePage.Instance.PageIndex += 1;
                deviceTarget.Show();
                Method.View(IfString.Action_Logic,IfString.Action_LogicScene);
            };
            List<Dictionary<string, object>> ListActions = new List<Dictionary<string, object>>();
            ListActions.Clear();
            ListActions.AddRange(Common.Logic.CurrentLogic.Actions);
            ListActions.Add(new Dictionary<string, object>());
            for (int i = 0; i < ListActions.Count; i++)
            {
@@ -698,13 +705,12 @@
                    LogicView.AddDeviceView addflview = new LogicView.AddDeviceView();
                    addflview.titleBtn.TextID = MyInternationalizationString.addfunction;
                    middle.AddChidren(addflview.AddFl());
                    addflview.clickBtn.MouseUpEventHandler += (sender, e) =>
                    {
                        Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
                        var deviceTarget = new DeviceTarget();
                        UserView.HomePage.Instance.AddChidren(deviceTarget);
                        UserView.HomePage.Instance.PageIndex += 1;
                        deviceTarget.Show();
                        Method.View(IfString.Action_Logic, IfString.Action_LogicScene);
                    };
                }
                else
@@ -721,13 +727,13 @@
                    switch (linkType)
                    {
                        case 0:
                        case 8:
                            {
                                var deviceinof = Method.GetCommonDevice(actions["DeviceAddr"].ToString(), actions["Epoint"].ToString());
                                name = deviceinof.DeviceEpointName;
                                name = LocalDevice.Current.GetDeviceEpointName(deviceinof);
                                actiondevice.regionNameBtn.Visible = true;
                                Method.RoomNmae(actiondevice.regionNameBtn, deviceinof);
                                switch (deviceinof.Type)
                                {
                                    case DeviceType.OnOffOutput:
@@ -968,16 +974,28 @@
                                            }
                                        }
                                        break;
                                    case DeviceType.DoorLock:
                                        {
                                            //门锁特殊
                                            icon = "ZigeeLogic/doorlock.png";
                                            if (actions["PassData"].ToString() == "055704010112")
                                            {
                                                state = Language.StringByID(MyInternationalizationString.logicopen);
                                            }
                                            else
                                            {
                                                state = Language.StringByID(MyInternationalizationString.logicclose);
                                            }
                                        }
                                        break;
                                }
                            }
                            break;
                        case 2:
                            {
                                //在本地查找该场景;
                                var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); });
                               //在本地查找该场景;
                               var sceneinof = UserCenter.HdlSceneLogic.Current.GetSceneUIBySceneId(Convert.ToInt32(actions["DeviceAddr"].ToString()));
                                //本地没有存在;
                                if (sceneinof == null)
                                {
@@ -1006,7 +1024,7 @@
                                actiondevice.regionNameBtn.Visible = true;
                                /////通过设备找到区域(房间)名称
                                Common.Room room = new Common.Room();
                                actiondevice.regionNameBtn.Text = room.GetRoomNameBySceneId(sceneinof.Id);
                                actiondevice.regionNameBtn.Text = UserCenter.HdlRoomLogic.Current.GetRoomNameBySceneId(sceneinof.Id);
                            }
                            break;
@@ -1052,7 +1070,7 @@
                                var seconds = delaytimevalue % 60;
                                icon = "ZigeeLogic/delay.png";
                                if (Minutes != 0)
                                {
                                    if (seconds == 0)
@@ -1073,6 +1091,13 @@
                            };
                            break;
                    }
                    if (linkType != 2)
                    {
                        actiondevice.stateRow.AddRightView(actiondevice.edit);
                    }
                    actiondevice.stateRow.AddRightView(actiondevice.del);
                    if (linkType == 6 || linkType == 7)
                    {
                        actiondevice.ordinaryBtn.Visible = true;
@@ -1093,7 +1118,7 @@
                    {
                        switch (linkType)
                        {
                            case 8:
                            case 0:
                                {
                                    var deviceinof = Method.GetCommonDevice(actions["DeviceAddr"].ToString(), actions["Epoint"].ToString());
@@ -1119,6 +1144,7 @@
                                    delayTime.Show(int.Parse(actiondevice.edit.Tag.ToString()), true);
                                }
                                break;
                        }
                    };
                    ///删除控件
@@ -1132,11 +1158,12 @@
                        alert.ConfirmClickEvent += () =>
                        {
                            Common.Logic.CurrentLogic.Actions.Remove(actions);
                            actiondevice.selecetdFrameLayout.RemoveFromParent();
                            // devicesFrameLayout.RemoveFromParent();
                            var logicCommunalPage = new LogicCommunalPage();
                            UserView.HomePage.Instance.AddChidren(logicCommunalPage);
                            UserView.HomePage.Instance.PageIndex += 1;
                            logicCommunalPage.Show(() => { });
                            //var logicCommunalPage = new LogicCommunalPage();
                            //UserView.HomePage.Instance.AddChidren(logicCommunalPage);
                            //UserView.HomePage.Instance.PageIndex += 1;
                            //logicCommunalPage.Show(() => { });
                        };
                    };
@@ -1305,50 +1332,7 @@
            };
        }
        /// <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();
        }
    }
}