黄学彪
2020-07-01 304dca51c28183a9dfc192c6b93ea1c00bdd5d97
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs
@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.DevicePanel
@@ -30,7 +31,28 @@
        /// 按键的颜色数据
        /// </summary>
        private Panel.KeyColorData keyColorData = null;
        /// <summary>
        /// 选择睡眠时间的事件 value:索引(从0开始)  文本信息请用Text获取
        /// </summary>
        public Action<int> timeAction = null;
        /// <summary>
        /// 当前选择的功能类型索引
        /// </summary>
        private int nowSelectNo = 0;
        /// <summary>
        /// /// <summary>
        /// 睡眠时间的值
        /// </summary>
        /// </summary>
        public string sleepTimeText
        {
            get { return btnSleepTime.Text; }
            set { btnSleepTime.Text = value; }
        }
        /// <summary>
        ///睡眠时间
        /// </summary>
        public NormalViewControl btnSleepTime = null;
        #endregion
        #region ■ 初始化_____________________________
@@ -70,7 +92,6 @@
            listview = new VerticalScrolViewLayout();
            listview.Height = Application.GetRealHeight(1981 - 184);
            bodyFrameLayout.AddChidren(listview);
            listview.ScrollEnabled = false;
            HdlThreadLogic.Current.RunMain(() =>
            {
@@ -80,8 +101,15 @@
                //添加屏幕亮度级别控件
                this.AddScreenBrightnesLevelControl();
                //添加新风面板的颜色
                this.AddColorControl();
                //获取设备类型的
                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { panelDevice });
                if (deviceEnumInfo.ConcreteType != Common.DeviceConcreteType.ButtonPanel_SimpleEnvironment)
                {
                    //添加面板的颜色
                    this.AddColorControl();
                }
                this.FinishInitControl(listview, energyModeInfo.enable);
                //保存
                var btnSave = new BottomClickButton();
@@ -146,6 +174,7 @@
            //进度条
            var seekBar1 = new SeekBarControl();
            seekBar1.SeekBarPadding = 25;
            seekBar1.MaxValue = 5;
            seekBar1.ProgressBarColor = 0xff3e99f4;
            seekBar1.Y = Application.GetRealHeight(253);
@@ -186,8 +215,12 @@
                        btnLevel.Text = "5" + strRank;
                        break;
                }
                listview.ScrollEnabled = false;
            };
            seekBar1.OnStopTrackingTouchEvent += (sender, e) =>
            {
                listview.ScrollEnabled = true;
            };
            seekBar1.OnStopTrackingTouchEvent += (div, value) =>
            {
                if (value == 0)
@@ -396,7 +429,7 @@
                btnSwitch.IsSelected = !btnSwitch.IsSelected;
                energyModeInfo.enable = btnSwitch.IsSelected;
                //展开或者缩小的高度
                var value = Application.GetRealHeight(443);
                var value = Application.GetRealHeight(614);
                if (btnSwitch.IsSelected == true)
                {
                    frameBack.Height += value;
@@ -405,6 +438,7 @@
                {
                    frameBack.Height -= value;
                }
                this.FinishInitControl(listview, energyModeInfo.enable);
            };
            if (energyModeInfo.enable == true)
            {
@@ -431,12 +465,18 @@
            var seekBar1 = new SeekBarControl();
            seekBar1.Y = Application.GetRealHeight(253);
            seekBar1.ProgressBarColor = 0xff3e99f4;
            seekBar1.SeekBarPadding = 25;
            frameBack.AddChidren(seekBar1);
            seekBar1.ProgressChangedEvent += (div, value) =>
            {
                btnProgress1.Text = value + "%";
                //数据变更
                energyModeInfo.level = value;
                listview.ScrollEnabled = false;
            };
            seekBar1.OnStopTrackingTouchEvent += (sender, e) =>
            {
                listview.ScrollEnabled = true;
            };
            seekBar1.Progress = energyModeInfo.level;
@@ -460,11 +500,21 @@
            if (energyModeInfo.enable == true)
            {
                //展开或者缩小的高度
                var value = Application.GetRealHeight(443);
                var value = Application.GetRealHeight(614);
                frameBack.Height += value;
            }
            //添加接近感应
            this.AddProximitySensorsRow(frameBack);
            //底线
            var btnLine = new NormalViewControl(965, 5, true);
            btnLine.Height = 1;
            btnLine.X = Application.GetRealWidth(52);
            btnLine.Y = Application.GetRealHeight(484 + 127);
            btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            frameBack.AddChidren(btnLine);
            //添加睡眠时间
            this.AddSleepTimeRow(frameBack);
        }
        #endregion
@@ -499,6 +549,100 @@
                btnSwitch.IsSelected = true;
            }
        }
        #endregion
        #region ■ 睡眠时间___________________________
        /// <summary>
        /// 睡眠时间行
        /// </summary>
        private void AddSleepTimeRow(FrameRowControl frameRowControl)
        {
            //睡眠时间行
            var frameBack = new FrameRowControl();
            frameBack.BackgroundColor = UserCenterColor.Current.White;
            frameBack.UseClickStatu = false;
            frameBack.Y = Application.GetRealHeight(784 - 170);
            frameBack.Height = Application.GetRealHeight(170);
            frameRowControl.AddChidren(frameBack);
            //睡眠时间
            frameBack.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.SleepTime), 400);
            //右箭头
            frameBack.AddRightArrow();
            btnSleepTime = new NormalViewControl(700, true);
            switch (energyModeInfo.time)
            {
                case 15:
                    btnSleepTime.Text = "15s";
                    nowSelectNo = 0;
                    break;
                case 60:
                    btnSleepTime.Text = "1min";
                    nowSelectNo = 1;
                    break;
                case 300:
                    btnSleepTime.Text = "5min";
                    nowSelectNo = 2;
                    break;
            }
            frameBack.AddMostRightView(this.sleepTimeText, 700);
            timeAction = null;
            timeAction += (nowSelectNo) =>
            {
                switch (nowSelectNo)
                {
                    case 0:
                        energyModeInfo.time = 15;
                        break;
                    case 1:
                        energyModeInfo.time = 60;
                        break;
                    case 2:
                        energyModeInfo.time = 300;
                        break;
                }
                AddSleepTimeRow(frameRowControl);
            };
            frameBack.ButtonClickEvent += (sender, e) =>
            {
                this.ShowSelectDeviceSleepTimeListForm();
            };
        }
        #region ■ 显示选择设备睡眠时间_______________
        /// <summary>
        /// 显示选择设备睡眠时间的界面
        /// </summary>
        public void ShowSelectDeviceSleepTimeListForm()
        {
            //显示列表
            var listText = new List<string>();
            listText.Add("15s");
            listText.Add("1min");
            listText.Add("5min");
            //标题:选择功能类型
            var title = Language.StringByID(R.MyInternationalizationString.SleepTime);
            var form = new BottomItemSelectForm();
            form.CancelCallEvent = false;//允许取消
            form.AddForm(title, listText, nowSelectNo);
            form.FinishSelectEvent += (selectNo) =>
            {
                if (selectNo == nowSelectNo)
                {
                    //选择的是相同的
                    return;
                }
                //-1:选择取消
                this.sleepTimeText = selectNo == -1 ? string.Empty : listText[selectNo];
                nowSelectNo = selectNo;
                //调用回调函数
                this.timeAction?.Invoke(nowSelectNo);
            };
        }
        #endregion
        #endregion
        #region ■ 获取初始数据_______________________
@@ -560,8 +704,7 @@
            this.ShowProgressBar();
            //节能模式修改(他们说随便一个回路就行)
            //设备同事说新风面板默认60秒时间,这样接近感应功能才合理
            energyModeInfo.time = 60;
            var result = HdlDevicePanelLogic.Current.SetDeviceEnergyConservationMode(panelDevice, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
            if (result == false)
            {