HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-09-18 c7df85937f73fb347ee0b19e9c052d2d00a6df6c
ZigbeeApp/Shared/Phone/Device/Logic/Nightlight.cs
@@ -15,10 +15,10 @@
        }
        string selectedDeviceStatus = "";
        Dictionary<string, object> actionsInfo = null;
        List<Dictionary<string, string>> TaskList = null;
        List<Dictionary<string, string>> TaskList = new List<Dictionary<string, string>>();
        public void Show(CommonDevice common, bool edit,string str_if,Dictionary<string, object> editdeviceActionInfo = null)
        {
            actionsInfo = editdeviceActionInfo;
            #region  布局界面
            this.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
            TopView view = new TopView();
            this.AddChidren(view.TopRowView());
@@ -26,6 +26,7 @@
            view.clickBtn.MouseDownEventHandler += (sender, e) =>
            {
                RemoveFromParent();
            };
            var middle = new FrameLayout
            {
@@ -34,48 +35,59 @@
                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
            };
            this.AddChidren(middle);
            //夜灯开关
            LogicView.LightView openView = new LogicView.LightView();
            openView.titleBtn.Text = Language.StringByID(MyInternationalizationString.nightLightSwitch);
            middle.AddChidren(openView.Show());
            openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                CurrentDeviceView("夜灯开关", common, edit, openView.seletecdTextBtn);
            };
            //亮度
            LogicView.LightView brightnessView = new LogicView.LightView();
            brightnessView.frameLayout.Y = openView.frameLayout.Bottom;
            brightnessView.titleBtn.Text = Language.StringByID(MyInternationalizationString.brightness);
            middle.AddChidren(brightnessView.Show());
            brightnessView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                CurrentDeviceView("亮度", common, edit, brightnessView.seletecdTextBtn);
            };
            //色温
            LogicView.LightView colorTemperatureView = new LogicView.LightView();
            colorTemperatureView.frameLayout.Y = brightnessView.frameLayout.Bottom;
            colorTemperatureView.titleBtn.Text = Language.StringByID(MyInternationalizationString.colorTemperature);
            middle.AddChidren(colorTemperatureView.Show());
            colorTemperatureView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                CurrentDeviceView("色温", common, edit, colorTemperatureView.seletecdTextBtn);
            };
            //蜂鸣器
            LogicView.LightView buzzView = new LogicView.LightView();
            buzzView.frameLayout.Y = colorTemperatureView.frameLayout.Bottom;
            buzzView.titleBtn.Text = Language.StringByID(MyInternationalizationString.buzzer);
            middle.AddChidren(buzzView.Show());
            //保存
            LogicView.SaveView saveView = new LogicView.SaveView();
            saveView.frameLayout.Y = middle.Height - Application.GetRealHeight(260);
            middle.AddChidren(saveView.Show());
            #endregion
            #region  点击事件
            //夜灯开关点击事件
            openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                CurrentDeviceView("夜灯开关", common, edit, openView.seletecdTextBtn);
            };
            //亮度点击事件
            brightnessView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                CurrentDeviceView("亮度", common, edit, brightnessView.seletecdTextBtn);
            };
            //色温点击事件
            colorTemperatureView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                CurrentDeviceView("色温", common, edit, colorTemperatureView.seletecdTextBtn);
            };
            //蜂鸣器点击事件
            buzzView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                CurrentDeviceView("蜂鸣器", common, edit, buzzView.seletecdTextBtn);
            };
            LogicView.SaveView saveView = new LogicView.SaveView();
            saveView.frameLayout.Y = middle.Height - Application.GetRealHeight(260);
            middle.AddChidren(saveView.Show());
            //保存点击事件
            saveView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                if (selectedDeviceStatus != "" && actionsInfo != null)
                if (TaskList.Count!=0)
                {
                    LogicIfon.AddDeviceActions(common, actionsInfo);
                }
@@ -83,7 +95,7 @@
                {
                    if (!edit)
                    {
                        var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
                        var alert = new UserCenter.ShowMsgControl(ShowMsgType.Normal,
                                    Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
                                   Language.StringByID(MyInternationalizationString.confrim));
                        alert.Show();
@@ -109,69 +121,83 @@
                }
            };
            #endregion
            if (edit)
            {
                foreach (var deviceinfo in Common.Logic.CurrentLogic.Actions)
                {
                    if (deviceinfo["LinkType"].ToString() == "0")
                    foreach (var deviceinfo in Common.Logic.CurrentLogic.Actions)
                    {
                        if (deviceinfo["DeviceAddr"].ToString() == common.DeviceAddr && deviceinfo["Epoint"].ToString() == common.DeviceEpoint.ToString())
                        if (deviceinfo["LinkType"].ToString() == "0")
                        {
                            TaskList = deviceinfo["TaskList"] as List<Dictionary<string, string>>;
                            foreach (var tasks in TaskList)
                            if (deviceinfo["DeviceAddr"].ToString() == common.DeviceAddr && deviceinfo["Epoint"].ToString() == common.DeviceEpoint.ToString())
                            {
                                switch (tasks["TaskType"])
                                var taskLists = deviceinfo["TaskList"] as List<Dictionary<string, string>>;
                                foreach (var tasks in taskLists)
                                {
                                    case "1":
                                        {
                                            if (tasks["Data1"] == "0")
                                    TaskList.Add(tasks);
                                    switch (tasks["TaskType"])
                                    {
                                        case "1":
                                            {
                                                openView.seletecdTextBtn.TextID = MyInternationalizationString.close;
                                                if (tasks["Data1"] == "0")
                                                {
                                                    openView.seletecdTextBtn.TextID = MyInternationalizationString.close;
                                                }
                                                else
                                                {
                                                    openView.seletecdTextBtn.TextID = MyInternationalizationString.open;
                                                }
                                            }
                                            else
                                            break;
                                        case "3":
                                            {
                                                openView.seletecdTextBtn.TextID = MyInternationalizationString.open;
                                                var intvalue = int.Parse(tasks["Data1"]);
                                                var lightbrightnessvalue = (intvalue * 100) / 254;
                                                brightnessView.seletecdTextBtn.Text = lightbrightnessvalue.ToString() + "%";
                                            }
                                        }
                                        break;
                                    case "3":
                                        {
                                            var intvalue = int.Parse(tasks["Data1"]);
                                            var lightbrightnessvalue = (intvalue * 100) / 254;
                                            brightnessView.seletecdTextBtn.Text = lightbrightnessvalue.ToString() + "%";
                                        }
                                        break;
                                    case "7":
                                        {
                                            if (tasks["Data1"] == "0")
                                            break;
                                        case "7":
                                            {
                                                buzzView.seletecdTextBtn.TextID = MyInternationalizationString.close;
                                                if (tasks["Data1"] == "0")
                                                {
                                                    buzzView.seletecdTextBtn.TextID = MyInternationalizationString.close;
                                                }
                                                else
                                                {
                                                    buzzView.seletecdTextBtn.TextID = MyInternationalizationString.open;
                                                }
                                            }
                                            else
                                            break;
                                        case "8":
                                            {
                                                buzzView.seletecdTextBtn.TextID = MyInternationalizationString.open;
                                                var intvalue = int.Parse(tasks["Data1"]);
                                                var lightbrightnessvalue = 1000000 / (intvalue * 100);
                                                colorTemperatureView.seletecdTextBtn.Text = lightbrightnessvalue.ToString() + "00K";
                                            }
                                        }
                                        break;
                                    case "8":
                                        {
                                            var intvalue = int.Parse(tasks["Data1"]);
                                            var lightbrightnessvalue = 1000000 / (intvalue * 100);
                                            colorTemperatureView.seletecdTextBtn.Text = lightbrightnessvalue.ToString() + "K";
                                        }
                                        break;
                                            break;
                                    }
                                }
                                break;
                            }
                            break;
                        }
                    }
                }
            }
            if (actionsInfo == null)
            {
                actionsInfo = new Dictionary<string, object>();
                actionsInfo.Add("LinkType", 0);
                actionsInfo.Add("DeviceAddr", common.DeviceAddr);
                actionsInfo.Add("Epoint", common.DeviceEpoint);
                actionsInfo.Add("Time", 0);
                actionsInfo.Add("TaskList", TaskList);
            }
        }
        public void CurrentDeviceView(string if_str, CommonDevice common, bool edit, Button button)
        {
            #region  布局界面
            var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
            this.AddChidren(flMain);
            UserView.HomePage.Instance.ScrollEnabled = false;//不让当前界面滑动
@@ -185,26 +211,16 @@
            };
            flMain.MouseUpEventHandler += clickcancel;
            completeView.Btncancel.MouseUpEventHandler += clickcancel;
            if (actionsInfo == null)
            {
                actionsInfo = new Dictionary<string, object>();
                TaskList = new List<Dictionary<string, string>>();
                actionsInfo.Add("LinkType", 0);
                actionsInfo.Add("DeviceAddr", common.DeviceAddr);
                actionsInfo.Add("Epoint", common.DeviceEpoint);
                actionsInfo.Add("Time", 0);
                actionsInfo.Add("TaskList", TaskList);
            }
            string status = "";
            #endregion
            string status = "";
            Dictionary<string, string> dictionaryLight = new Dictionary<string, string>();
            dictionaryLight.Clear();
            switch (if_str)
            {
                case "夜灯开关":
                    {
                        Dictionary<string, string> switchDictionary = new Dictionary<string, string>();
                        Send.dictionary(switchDictionary, "TaskType", "1");
                        Send.dictionary(switchDictionary, "Data2", "0");
                        mFunView openView = new mFunView();
                        openView.frameLayout.Y = Application.GetRealHeight(140 + 20);
                        openView.titleBtn.TextID = MyInternationalizationString.open;
@@ -222,8 +238,7 @@
                            closeView.selectedIconBtn.Visible = false;
                            openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                            closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                            Send.dictionary(switchDictionary, "Data1", "1");//默认值
                            DicValue("1", switchDictionary);
                            Send.dictionary(dictionaryLight, "Data1", "1");//默认值
                            status = Language.StringByID(MyInternationalizationString.open);
                        };
@@ -235,12 +250,11 @@
                            closeView.selectedIconBtn.Visible = true;
                            openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                            closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                            Send.dictionary(switchDictionary, "Data1", "0");//默认值
                            DicValue("1", switchDictionary);
                            Send.dictionary(dictionaryLight, "Data1", "0");//默认值
                            status = Language.StringByID(MyInternationalizationString.close);
                        };
                        if (TaskList != null && TaskList.Count != 0)
                        if ( TaskList.Count != 0)
                        {
                            foreach (var value in TaskList)
                            {
@@ -265,37 +279,34 @@
                    break;
                case "亮度":
                    {
                        Dictionary<string, string> brightnessDictionary = new Dictionary<string, string>();
                        Send.dictionary(brightnessDictionary, "TaskType", "3");
                        Send.dictionary(brightnessDictionary, "Data2", "0");
                        var horizontalSeekBarVol = new DiyImageSeekBar
                        {
                            Y = Application.GetRealHeight(140),//进度条父控件Y坐标
                            X = Application.GetRealWidth(78),//进度条X坐标
                            Width = Application.GetRealWidth(918),//进度条的长度
                            Height = Application.GetRealHeight(320),//进度条父控控件高度
                            Height = Application.GetRealHeight(320),//进度条父控件高度
                            IsProgressTextShow = true,//显示百分比
                            IsClickable = true,//进度条是否滑动
                            ProgressBarColor = ZigbeeColor.Current.LogicProgressColorSelected,//选中进度条颜色
                            ThumbImagePath = "ZigeeLogic/progressbtn2.png",//进度条按钮图标
                            ThumbImageHeight = Application.GetRealHeight(89),//进度条按钮图标的高度(默认正方形:宽和高一样)
                            ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                            ProgressTextSize = 9,//显示百分比字体大小12
                            ProgressTextSize = 12,//显示百分比字体大小12
                            SeekBarViewHeight = Application.GetRealHeight(6),//进度条的高度10
                            SeekBarPadding=30,
                        };
                        completeView.Show(2).AddChidren(horizontalSeekBarVol);
                        EventHandler<int> progressclick = (sender, e) =>
                        {
                            selectedDeviceStatus = "3";
                            int lightbrightnessvalue = (254 * horizontalSeekBarVol.Progress) / 100;
                            Send.dictionary(brightnessDictionary, "Data1", lightbrightnessvalue.ToString());
                            DicValue("3", brightnessDictionary);
                            Send.dictionary(dictionaryLight, "Data1", lightbrightnessvalue.ToString());
                            status = horizontalSeekBarVol.Progress.ToString() + "%";
                        };
                        horizontalSeekBarVol.OnProgressChangedEvent += progressclick;
                        horizontalSeekBarVol.OnStopTrackingTouchEvent += progressclick;
                        if (TaskList != null && TaskList.Count != 0)
                        if ( TaskList.Count != 0)
                        {
                            foreach (var value in TaskList)
                            {
@@ -313,9 +324,6 @@
                    break;
                case "色温":
                    {
                        Dictionary<string, string> brightnessDictionary = new Dictionary<string, string>();
                        Send.dictionary(brightnessDictionary, "TaskType", "8");
                        Send.dictionary(brightnessDictionary, "Data2", "0");
                        Button seekIconBtn = new Button
                        {
                            Y = Application.GetRealHeight(140 + 160),
@@ -345,14 +353,13 @@
                            horizontalSeekBarVol.SetCustomText(e * 100 + "K");
                            selectedDeviceStatus = "8";
                            var lightbrightnessvalue = 1000000 / (100 * horizontalSeekBarVol.Progress);
                            Send.dictionary(brightnessDictionary, "Data1", lightbrightnessvalue.ToString());
                            DicValue("8", brightnessDictionary);
                            status =horizontalSeekBarVol.Progress.ToString() + "K";
                            Send.dictionary(dictionaryLight, "Data1", lightbrightnessvalue.ToString());
                            status =horizontalSeekBarVol.Progress.ToString() + "00K";
                        };
                        horizontalSeekBarVol.OnProgressChangedEvent += progressclick;
                        horizontalSeekBarVol.OnStopTrackingTouchEvent += progressclick;
                        if (TaskList != null && TaskList.Count != 0)
                        if ( TaskList.Count != 0)
                        {
                            foreach (var value in TaskList)
                            {
@@ -374,10 +381,6 @@
                    break;
                case "蜂鸣器":
                    {
                        Dictionary<string, string> switchDictionary = new Dictionary<string, string>();
                        Send.dictionary(switchDictionary, "TaskType", "7");
                        Send.dictionary(switchDictionary, "Data2", "0");
                        mFunView openView = new mFunView();
                        openView.frameLayout.Y = Application.GetRealHeight(140 + 20);
@@ -397,8 +400,7 @@
                            closeView.selectedIconBtn.Visible = false;
                            openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                            closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                            Send.dictionary(switchDictionary, "Data1", "1");//默认值
                            DicValue("7", switchDictionary);
                            Send.dictionary(dictionaryLight, "Data1", "1");//默认值
                            status = Language.StringByID(MyInternationalizationString.open);
                        };
@@ -410,13 +412,12 @@
                            closeView.selectedIconBtn.Visible = true;
                            openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                            closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                            Send.dictionary(switchDictionary, "Data1", "0");//默认值
                            DicValue("7", switchDictionary);
                            Send.dictionary(dictionaryLight, "Data1", "0");//默认值
                            status = Language.StringByID(MyInternationalizationString.close);
                        };
                        if (TaskList != null && TaskList.Count != 0)
                        if ( TaskList.Count != 0)
                        {
                            foreach (var value in TaskList)
                            {
@@ -442,10 +443,12 @@
            }
            completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
            {
                if (selectedDeviceStatus != "")
                if (dictionaryLight.Count!=0)
                {
                    Send.dictionary(dictionaryLight, "TaskType", selectedDeviceStatus);
                    Send.dictionary(dictionaryLight, "Data2", "0");
                    flMain.RemoveFromParent();
                    DicValue(selectedDeviceStatus, dictionaryLight);
                    button.Text = status;
                }
@@ -453,7 +456,7 @@
                {
                    if (!edit)
                    {
                        var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
                        var alert = new UserCenter.ShowMsgControl(ShowMsgType.Normal,
                                    Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
                                   Language.StringByID(MyInternationalizationString.confrim));
                        alert.Show();
@@ -484,10 +487,7 @@
            }
            if (!d)
            {
                if (TaskList != null)
                {
                    TaskList.Add(dictionay);
                }
                TaskList.Add(dictionay);
            }
        }
    }