wxr
2021-11-29 dd7e4794fd611de967c6322dd0bb7ffda41c2f7b
HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
@@ -14,13 +14,11 @@
        Action<SecurityAlarm> refreshAction;
        SecurityAlarm securityAlarm;
        List<SecurityInput> inputList = new List<SecurityInput>();
        public AddInputPage(SecurityAlarm alarm,Action<SecurityAlarm> action)
        SecurityAlarm alarm;
        public AddInputPage(SecurityAlarm inAlarm,Action<SecurityAlarm> action)
        {
            bodyView = this;
            securityAlarm = alarm;
            alarm = inAlarm;
            refreshAction = action;
        }
@@ -65,14 +63,17 @@
                Text = DB_ResidenceData.Instance.CurFloor.roomName,
            };
            showdFunctionTypeRow.AddChidren(btnFloor);
            btnFloor.MouseUpEventHandler += (sender, e) =>
            btnFloor.MouseUpEventHandler = (sender, e) =>
            {
                string nowSelectId = null;
                var listAllFun = FunctionList.List.GetArmSensorList();
                var list = FunctionList.List.GetArmSensorList();
#if DEBUG
                list.AddRange(FunctionList.List.GetLightList());
#endif
                //显示下拉界面
                var form = new FloorRoomSelectPopupView();
                form.ShowDeviceFunctionView(btnFloor, listAllFun, (selectId, listFun) =>
                form.ShowDeviceFunctionView(btnFloor, list, (selectId, listFun) =>
                {
                    nowSelectId = selectId;
                    //重新刷新设备列表
@@ -92,8 +93,12 @@
            bodyView.AddChidren(functionListView);
            var listAllFun = FunctionList.List.GetArmSensorList();
#if DEBUG
            listAllFun.AddRange(FunctionList.List.GetLightList());
#endif
            LoadFunctionListRow(FunctionList.List.GetArmSensorList());
            LoadFunctionListRow(listAllFun);
@@ -122,16 +127,8 @@
            bottomView.AddChidren(btnConfrim);
            btnConfrim.MouseUpEventHandler = (sender, e) =>
            {
                securityAlarm.input = new List<SecurityInput>();
                foreach (var input in inputList)
                {
                    if (input.addCondition)
                    {
                        securityAlarm.input.Add(input);
                    }
                }
                this.RemoveFromParent();
                refreshAction?.Invoke(securityAlarm);
                refreshAction?.Invoke(alarm);
            };
            
@@ -151,13 +148,10 @@
                functions = FunctionList.List.GetArmSensorList();
            }
#if DEBUG
            functions.AddRange(FunctionList.List.GetLightList());
#endif
            foreach (var function in functions)
            {
                var input = securityAlarm.input.Find((obj) => obj.sid == function.sid);
                var input = alarm.input.Find((obj) => obj.sid == function.sid);
                if (input == null)
                {
                    input = new SecurityInput();
@@ -188,32 +182,32 @@
                            break;
                    }
                    input.condition = new List<SecurityInputCondition>()
                {
                    new SecurityInputCondition()
                    {
                        key = inKey,
                        value = inValue,
                    }
                };
                        new SecurityInputCondition()
                        {
                            key = inKey,
                            value = inValue,
                        }
                    };
                    if (function.spk == SPK.LightSwitch || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                    {
                        input.condition = new List<SecurityInputCondition>()
                    {
                        new SecurityInputCondition()
                        {
                            key = FunctionAttributeKey.OnOff,
                            value = "off",
                        }
                    };
                            new SecurityInputCondition()
                            {
                                key = FunctionAttributeKey.OnOff,
                                value = "off",
                            }
                        };
                    }
                }
                else
                {
                    input.addCondition = true;
                }
                inputList.Add(input);
                //else
                //{
                //    //input.addCondition = true;
                //    alarm.input.Add(input);
                //}
                FrameLayout functionRow = new FrameLayout()
                {
@@ -268,37 +262,53 @@
                };
                functionRow.AddChidren(btnChooseIcon);
                btnChooseIcon.MouseUpEventHandler = (sender, e) => {
                btnChooseIcon.MouseUpEventHandler = (sender, e) =>
                {
                    btnChooseIcon.IsSelected = !btnChooseIcon.IsSelected;
                    if(btnChooseIcon.IsSelected)
                    var tempLocal = alarm.input.Find((obj) =>
                        obj.sid == input.sid
                    );
                    if (btnChooseIcon.IsSelected)
                    {
                        input.addCondition = true;
                        //if (input.condition.Count==0)
                        //{
                        //    ShowStateDialog(input, btnState,btnChooseIcon,function.spk);
                        //}
                        //input.addCondition = true;
                        if (tempLocal == null)
                            alarm.input.Add(input);
                    }
                    else
                    {
                        input.addCondition = false;
                        //input.addCondition = false;
                        if (tempLocal != null)
                        {
                            alarm.input.Remove(input);
                        }
                    }
                };
                btnState.MouseUpEventHandler = (sender, e) =>
                {
                    //ShowStateDialog(input, btnState, btnChooseIcon, function.spk);
                    btnChooseIcon.IsSelected = !btnChooseIcon.IsSelected;
                    var tempLocal = alarm.input.Find((obj) =>
                        obj.sid == input.sid
                    );
                    if (btnChooseIcon.IsSelected)
                    {
                        input.addCondition = true;
                        //input.addCondition = true;
                        if (tempLocal == null)
                            alarm.input.Add(input);
                    }
                    else
                    {
                        input.addCondition = false;
                        //input.addCondition = false;
                        if (tempLocal != null)
                        {
                            alarm.input.Remove(input);
                        }
                    }
                };
                if (input.addCondition)
                var localInput = alarm.input.Find((obj) =>
                           obj.sid == input.sid
                       );
                if (localInput!=null)
                {
                    btnChooseIcon.IsSelected = true;
                    btnState.Text = input.StateText();
@@ -414,8 +424,12 @@
                }
                var localInput = alarm.input.Find((obj) =>
                        obj.sid == input.sid
                    );
                if (localInput == null)
                    alarm.input.Add(input);
                input.addCondition = true;
                if (btnChoose != null)
                {
                    btnChoose.IsSelected = true;
@@ -448,7 +462,12 @@
                }
                input.addCondition = true;
                var localInput = alarm.input.Find((obj) =>
                        obj.sid == input.sid
                    );
                if (localInput == null)
                    alarm.input.Add(input);
                if (btnChoose != null)
                {
                    btnChoose.IsSelected = true;