From 07c647861d549a4c61f615dba9c008c29ad57f43 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 02 九月 2020 15:57:58 +0800
Subject: [PATCH] 2020-09-02-1

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBrightnessAdjustForm.cs |  310 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 220 insertions(+), 90 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBrightnessAdjustForm.cs
similarity index 73%
rename from ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBrightnessAdjustForm.cs
index 45d82b8..1803c0b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBrightnessAdjustForm.cs
@@ -1,9 +1,10 @@
 锘縰sing System;
+using System.Collections.Generic;
 using System.Threading.Tasks;
-using ZigBee.Device;
-namespace Shared.Phone.UserCenter.DevicePanel
-{
-    public class PanelFangyueFreshAirBackLightSettionForm : EditorCommonForm
+using ZigBee.Device;
+namespace Shared.Phone.UserCenter.DevicePanel
+{
+    public class PanelBrightnessAdjustForm : EditorCommonForm
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
         /// <summary>
@@ -13,7 +14,11 @@
         /// <summary>
         /// 闈㈡澘鐨勫洖璺�
         /// </summary>
-        private Panel panelDevice;
+        private Panel panelDevice;
+        /// <summary>
+        /// 璁惧鐨勬煇涓�鍥炶矾
+        /// </summary>
+        private CommonDevice deviceObj = null;
         /// <summary>
         /// 浜害璋冭妭鐨勪俊鎭�
         /// </summary>
@@ -29,23 +34,48 @@
         /// <summary>
         /// 鎸夐敭鐨勯鑹叉暟鎹�
         /// </summary>
-        private Panel.KeyColorData keyColorData = null;
-
+        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 鈻� 鍒濆鍖朹____________________________
-
+
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
         /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param>
-        public void ShowForm(Panel i_panel)
+        public void ShowForm(CommonDevice device)
         {
             //宸︽粦浣胯兘涓嶅彲
-            this.ScrollEnabled = false;
-            this.panelDevice = i_panel;
-
-            //璁剧疆澶撮儴淇℃伅
+            this.ScrollEnabled = false;
+            this.deviceObj = device;
+            this.panelDevice = new Panel();
+            this.panelDevice.DeviceAddr = this.deviceObj.DeviceAddr;
+            this.panelDevice.DeviceEpoint = 200;
+            this.panelDevice.CurrentGateWayId = this.deviceObj.CurrentGateWayId;
+
+            //璁剧疆澶撮儴淇℃伅
             base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uLightRegulation));
 
             //鍒濆鍖栦腑閮ㄤ俊鎭�
@@ -69,19 +99,25 @@
 
             listview = new VerticalScrolViewLayout();
             listview.Height = Application.GetRealHeight(1981 - 184);
-            bodyFrameLayout.AddChidren(listview);
-            listview.ScrollEnabled = false;
-
+            bodyFrameLayout.AddChidren(listview);
+
             HdlThreadLogic.Current.RunMain(() =>
             {
                 //娣诲姞鑺傝兘妯″紡鎺т欢
                 this.AddEnergyConservationRow();
 
                 //娣诲姞灞忓箷浜害绾у埆鎺т欢
-                this.AddScreenBrightnesLevelControl();
-
-                //娣诲姞鏂伴闈㈡澘鐨勯鑹�
-                this.AddColorControl();
+                this.AddScreenBrightnesLevelControl();
+
+                //鑾峰彇璁惧绫诲瀷鐨�
+                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { deviceObj });
+                if (deviceEnumInfo.ConcreteType != Common.DeviceConcreteType.ButtonPanel_SimpleEnvironment)
+                {
+                    //娣诲姞闈㈡澘鐨勯鑹�
+                    this.AddColorControl();
+                }
+
+                this.FinishInitControl(listview, energyModeInfo.enable);
 
                 //淇濆瓨
                 var btnSave = new BottomClickButton();
@@ -146,6 +182,7 @@
 
             //杩涘害鏉�
             var seekBar1 = new SeekBarControl();
+            seekBar1.SeekBarPadding = 25;
             seekBar1.MaxValue = 5;
             seekBar1.ProgressBarColor = 0xff3e99f4;
             seekBar1.Y = Application.GetRealHeight(253);
@@ -186,8 +223,12 @@
                         btnLevel.Text = "5" + strRank;
                         break;
                 }
+                listview.ScrollEnabled = false;
             };
-
+            seekBar1.OnStopTrackingTouchEvent += (sender, e) =>
+            {
+                listview.ScrollEnabled = true;
+            };
             seekBar1.OnStopTrackingTouchEvent += (div, value) =>
             {
                 if (value == 0)
@@ -286,8 +327,8 @@
             frameColor.UseClickStatu = false;
             frameColor.Width = Application.GetRealHeight(262);
             frameColor.Height = this.GetPictrueRealSize(79);
-            frameColor.Gravity = Gravity.CenterVertical;
-            frameColor.X = frameBack.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
+            frameColor.Y = Application.GetRealHeight(26);
+            frameColor.X = listview.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
             frameBack.AddChidren(frameColor);
 
             //棰滆壊
@@ -305,21 +346,25 @@
             int B1 = Convert.ToInt32(this.keyColorData.OpenColorB, 16);
             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
 
-            //棰滆壊澶栨 
-            var btnColorLine = new FrameLayoutStatuControl();
-            btnColorLine.Width = Application.GetRealHeight(79);
-            btnColorLine.Height = this.GetPictrueRealSize(79);
-            btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
-            btnColorLine.Radius = (uint)this.GetPictrueRealSize(79) / 2;
-            btnColorLine.BorderWidth = 1;
-            btnColorLine.BorderColor = 0xffcccccc;
-            frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEvent);
+            //棰滆壊澶栨
+            var frameColorLine = new FrameLayoutStatuControl();
+            frameColorLine.UseClickStatu = false;
+            frameColorLine.Height = this.GetPictrueRealSize(79);
+            frameColorLine.Width = this.GetPictrueRealSize(79);
+            frameColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
+            frameColorLine.Radius = (uint)this.GetPictrueRealSize(79) / 2;
+            frameColorLine.BorderWidth = 1;
+            frameColorLine.BorderColor = 0xffcccccc;
+            frameColor.AddChidren(frameColorLine, ChidrenBindMode.NotBind);
 
-            var btnColor = new NormalViewControl(this.GetPictrueRealSize(69), this.GetPictrueRealSize(69), false);
+            //鍒嗕袱姝ヨ绠楋紝涓嶇劧鏈夊彲鑳藉畠寰楀嚭鐨勭粨鏋滄湁璇樊瀵艰嚧涓嶅眳涓�
+            int btnColorWidth = frameColorLine.Height - this.GetPictrueRealSize(7) - this.GetPictrueRealSize(7);
+            var btnColor = new NormalViewControl(btnColorWidth, btnColorWidth, false);
             btnColor.Gravity = Gravity.Center;
-            btnColor.Radius = (uint)this.GetPictrueRealSize(69) / 2;
+            btnColor.Radius = (uint)btnColorWidth / 2;
             btnColor.BackgroundColor = backColor;
-            btnColorLine.AddChidren(btnColor, ChidrenBindMode.BindEvent);
+            frameColorLine.AddChidren(btnColor, ChidrenBindMode.NotBind);
+            frameColor.ChangedChidrenBindMode(frameColorLine, ChidrenBindMode.BindEvent);
 
             var btnRight = new NormalViewControl(this.GetPictrueRealSize(58), this.GetPictrueRealSize(58), false);
             btnRight.UnSelectedImagePath = "Item/RightNext.png";
@@ -330,47 +375,22 @@
 
             frameColor.ButtonClickEvent += (sender, e) =>
             {
-                PanelColor(btnColor, R1, G1, B1);
-            };
-            btnColorView.ButtonClickEvent += (sender, e) =>
-            {
-                PanelColor(btnColor, R1, G1, B1);
-            };
-            btnColor.ButtonClickEvent += (sender, e) =>
-            {
-                PanelColor(btnColor, R1, G1, B1);
-            };
-            btnColorLine.ButtonClickEvent += (sender, e) =>
-            {
-                PanelColor(btnColor, R1, G1, B1);
-            };
-            btnRight.ButtonClickEvent += (sender, e) =>
-            {
-                PanelColor(btnColor, R1, G1, B1);
+                var form = new PanelColorSelectForm();
+                form.AddForm(R1, G1, B1);
+                form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
+                {
+                    R1 = Rcolor;
+                    G1 = Gcolor;
+                    B1 = Bcolor;
+
+                    this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
+                    this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
+                    this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
+
+                    btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
+                };
             };
         }
-
-        /// <summary>
-        /// PanelColorSelectForm
-        /// </summary>
-        private void PanelColor(NormalViewControl btnColor, int R1, int G1, int B1)
-        {
-            var form = new PanelColorSelectForm();
-            form.AddForm(R1, G1, B1);
-            form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
-            {
-                R1 = Rcolor;
-                G1 = Gcolor;
-                B1 = Bcolor;
-
-                this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
-                this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
-                this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
-
-                btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
-            };
-        }
-
         #endregion
 
         #region 鈻� 鑺傝兘妯″紡琛宊________________________ 
@@ -380,7 +400,7 @@
         /// <param name="frameLinght">鍚勭鑳屽厜鐏殑瀹瑰櫒(鎺т欢浼哥缉浣跨敤)</param>
         private void AddEnergyConservationRow()
         {
-            //缂╁皬:170  鎵╁ぇ:429
+            //缂╁皬:170  鎵╁ぇ:614
             var frameBack = new FrameRowControl();
             frameBack.BackgroundColor = UserCenterColor.Current.White;
             frameBack.UseClickStatu = false;
@@ -396,7 +416,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 +425,7 @@
                 {
                     frameBack.Height -= value;
                 }
+                this.FinishInitControl(listview, energyModeInfo.enable);
             };
             if (energyModeInfo.enable == true)
             {
@@ -431,12 +452,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 +487,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
@@ -482,9 +519,9 @@
             frameBack.UseClickStatu = false;
             frameBack.Y = Application.GetRealHeight(443);
             frameBack.Height = Application.GetRealHeight(170);
-            frameRowControl.AddChidren(frameBack);
-
-            //鎺ヨ繎鎰熷簲
+            frameRowControl.AddChidren(frameBack);
+
+            //鎺ヨ繎鎰熷簲
             frameBack.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.ProximitySensors), 400);
             //寮�鍏虫帶浠�
             var btnSwitch = frameBack.AddMostRightSwitchIcon();
@@ -499,6 +536,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, null, 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 鈻� 鑾峰彇鍒濆鏁版嵁_______________________
@@ -557,11 +688,10 @@
         /// </summary>
         private async void SavePanelData()
         {
-            this.ShowProgressBar();
-
-            //鑺傝兘妯″紡淇敼(浠栦滑璇撮殢渚夸竴涓洖璺氨琛�)
-            //璁惧鍚屼簨璇存柊椋庨潰鏉块粯璁�60绉掓椂闂达紝杩欐牱鎺ヨ繎鎰熷簲鍔熻兘鎵嶅悎鐞�
-            energyModeInfo.time = 60;
+            this.ShowProgressBar();
+
+            //鑺傝兘妯″紡淇敼(浠栦滑璇撮殢渚夸竴涓洖璺氨琛�)
+
             var result = HdlDevicePanelLogic.Current.SetDeviceEnergyConservationMode(panelDevice, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
             if (result == false)
             {
@@ -633,8 +763,8 @@
         private uint GetColorByRGB(byte R, byte G, byte B)
         {
             return (uint)(0xFF000000 + R * 256 * 256 + G * 256 + B);
-        }
-
+        }
+
         #endregion
-    }
-}
+    }
+}

--
Gitblit v1.8.0