From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 25 七月 2024 17:25:59 +0800
Subject: [PATCH] 2024年07月25日17:24:45

---
 HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs |  361 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 270 insertions(+), 91 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
index b71e0c6..a8048f1 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
@@ -1,7 +1,5 @@
 锘縰sing System;
 using System.Collections.Generic;
-using HDL_ON.Common;
-using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -33,8 +31,15 @@
             }
         }
 
+        public override void RemoveFromParent()
+        {
+            base.RemoveFromParent();
+        }
+
         public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
         {
+            bodyView.RemoveAll();
+
             btnCollection_Out = btnCollectionIcon;
             btnFunctionName_Out = btnFunctionNameOut;
             btnFromFloor_Out = btnFromFloorOut;
@@ -43,7 +48,7 @@
             controlView = new FrameLayout()
             {
                 Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(88),
+                Y = Application.GetRealHeight(88 + 10),
                 Width = Application.GetRealWidth(327),
                 Height = Application.GetRealHeight(526),
                 BackgroundImagePath = "Public/Fragmentbg.png",
@@ -92,8 +97,6 @@
             //    function.CollectFunction();
             //};
 
-
-
             //鍥為��鍒锋柊淇℃伅浜嬩欢
             new TopViewDiv(bodyView, Language.StringByID(StringId.GroupControl)).LoadTopView_SettingIcon( () => {
                 var page = new AddGroupControlPage(function,
@@ -104,9 +107,22 @@
                                 {
                                     if (newGC != null)
                                     {
-                                        btnFunctionName.Text = btnFunctionName_Out.Text = function.name;
-                                        function.roomIds = newGC.uids;
-                                        btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = newGC.GetUidListName();
+                                        var localTemp = FunctionList.List.groupControls.Find((obj) => obj.deviceId == newGC.deviceId);
+                                        if(localTemp!= null)
+                                        {
+                                            try
+                                            {
+                                                localTemp.sids = newGC.sids;
+                                                localTemp.name = newGC.name;
+                                                localTemp.roomIds = newGC.roomIds;
+                                                localTemp.uids = newGC.uids;
+                                            }
+                                            catch { }
+                                            function = newGC;
+                                            btnFunctionName_Out.Text = function.name;
+                                            btnFromFloor_Out.Text = function.GetRoomListName();
+                                            LoadPage(btnCollection, btnFunctionName, btnFunctionName);
+                                        }
                                     }
                                 });
                             }
@@ -178,59 +194,102 @@
             }
 
             //灞炴�ц缃尯鍩�
-            var attrView = new VerticalScrolViewLayout()
+            VerticalScrolViewLayout attrView = new VerticalScrolViewLayout()
             {
                 Y = Application.GetRealHeight(52),
                 Width = Application.GetRealWidth(343),
                 ScrollEnabled = false,
             };
-            //灞炴�ц缃尯鍩熼珮搴�
-            int attrViewHight = Application.GetRealHeight(18 + 22);
-
-
             controlView.AddChidren(attrView);
+
             attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) });
 
-            btnSwitch = new Button()
+            var btnOn = new Button()
             {
-                Gravity = Gravity.CenterHorizontal,
+                X = Application.GetRealWidth(100),
                 Y = Application.GetRealHeight(466),
                 Width = Application.GetMinRealAverage(32),
                 Height = Application.GetMinRealAverage(32),
-                UnSelectedImagePath = "Public/PowerClose.png",
-                SelectedImagePath = "Public/PowerOpen.png",
+                UnSelectedImagePath = "FunctionIcon/Light/LightScene/gp_all_on.png",
             };
-            controlView.AddChidren(btnSwitch);
-            btnSwitch.MouseUpEventHandler = (sender, e) => {
-                if (btnSwitch.IsSelected)
-                {
-                    btnSwitch.IsSelected = false;
-                    var d = new Dictionary<string, string>();
-                    d.Add(FunctionAttributeKey.OnOff, "off");
-                    function.Control(d);
-                }
-                else
-                {
-                    btnSwitch.IsSelected = true;
-                    var d = new Dictionary<string, string>();
-                    d.Add(FunctionAttributeKey.OnOff, "on");
-                    function.Control(d);
-                }
+            controlView.AddChidren(btnOn);
+            var btnOnText = new Button()
+            {
+                X = Application.GetRealWidth(100-9),
+                Y = Application.GetRealHeight(495),
+                Width = Application.GetMinRealAverage(50),
+                Height = Application.GetMinRealAverage(32),
+                TextColor = CSS_Color.TextualColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextAlignment = TextAlignment.Center,
+                TextID = StringId.Open,
+            };
+            controlView.AddChidren(btnOnText);
+
+
+            var btnOff = new Button()
+            {
+                X = Application.GetRealWidth(180),
+                Y = Application.GetRealHeight(466),
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
+                UnSelectedImagePath = "FunctionIcon/Light/LightScene/gp_all_off.png",
+            };
+            controlView.AddChidren(btnOff);
+            var btnOffText = new Button()
+            {
+                X = Application.GetRealWidth(180 - 9),
+                Y = Application.GetRealHeight(495),
+                Width = Application.GetMinRealAverage(50),
+                Height = Application.GetMinRealAverage(32),
+                TextColor = CSS_Color.TextualColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextAlignment = TextAlignment.Center,
+                TextID = StringId.Close,
+            };
+            controlView.AddChidren(btnOffText);
+
+
+
+            btnOn.MouseUpEventHandler = (sender, e) =>
+            {
+                var d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.OnOff, "on");
+                function.Control(d);
             };
 
+            btnOff.MouseUpEventHandler = (sender, e) =>
+            {
+                var d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.OnOff, "off");
+                function.Control(d);
+            };
+            btnOnText.MouseUpEventHandler = (sender, e) =>
+            {
+                var d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.OnOff, "on");
+                function.Control(d);
+            };
+
+            btnOffText.MouseUpEventHandler = (sender, e) =>
+            {
+                var d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.OnOff, "off");
+                function.Control(d);
+            };
 
 
             if (hadRGB)
             {
-                LoadRgbAttrView(hadCCT,hadColorful);
+                LoadRgbAttrView(hadCCT,hadColorful,btnOn,btnOff);
             }
             else if (hadCCT)
             {
-                LoadCctAttrView(attrView);
+                LoadCctAttrView(attrView, btnOn, btnOff);
             }
             else if (hadDimming)
             {
-                LoadDimmingAttrView(attrView);
+                LoadDimmingAttrView(attrView, btnOn, btnOff);
             }
             else
             {
@@ -248,38 +307,39 @@
                 attrView.AddChidren(btnSwitchIcon);
 
                 btnSwitchIcon.MouseUpEventHandler = (sender, e) => {
+                    btnSwitchIcon.IsSelected = !btnSwitchIcon.IsSelected;
                     if (btnSwitchIcon.IsSelected)
                     {
-                        btnSwitchIcon.IsSelected = btnSwitch.IsSelected = false;
-                        var d = new Dictionary<string, string>();
-                        d.Add(FunctionAttributeKey.OnOff, "off");
-                        function.Control(d);
-                    }
-                    else
-                    {
-                        btnSwitchIcon.IsSelected = btnSwitch.IsSelected = true;
                         var d = new Dictionary<string, string>();
                         d.Add(FunctionAttributeKey.OnOff, "on");
                         function.Control(d);
                     }
+                    else
+                    {
+                        var d = new Dictionary<string, string>();
+                        d.Add(FunctionAttributeKey.OnOff, "off");
+                        function.Control(d);
+                    }
                 };
-                btnSwitch.MouseUpEventHandler += (sender, e) => {
-                    btnSwitchIcon.IsSelected = btnSwitch.IsSelected;
+
+                btnOn.MouseUpEventHandler += (sender, e) => {
+                    btnSwitchIcon.IsSelected = true;
+                };
+                btnOff.MouseUpEventHandler += (sender, e) => {
+                    btnSwitchIcon.IsSelected = false;
                 };
             }
 
 
 
 
-
         }
-        Button btnSwitch;
 
         /// <summary>
         /// 鍔犺浇璋冨厜灞炴�ц缃帶浠�
         /// </summary>
         /// <param name="attrView"></param>
-        void LoadDimmingAttrView(VerticalScrolViewLayout attrView)
+        void LoadDimmingAttrView(VerticalScrolViewLayout attrView,Button btnOn,Button btnOff)
         {
 
 
@@ -321,23 +381,36 @@
             };
             dimmerView.AddChidren(btnBrightnessText);
 
+            dimmerBar.OnStopTrackingTouchEvent = (sender, e) => {
+                new System.Threading.Thread(() =>
+                {
+                    var d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                    function.Control(d);
+                })
+                { IsBackground = true }.Start();
+            };
+
             dimmerBar.OnProgressChangedEvent = (sender, e) =>
             {
+
+                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                btnBrightnessText.Text = dimmerBar.Progress + "%";
+                return;
                 if (e == 0 && lastBrightness != 0)
                 {
-                    btnSwitch.IsSelected = false;
                     lastBrightness = 0;
                 }
                 else
                 {
                     if (lastBrightness == 0)
                         lastBrightness = e;
-                    btnSwitch.IsSelected = true;
                 }
                 if (e == 0 || e == 100)
                 {
                     var d = new Dictionary<string, string>();
                     d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                    d.Add(FunctionAttributeKey.OnOff, e == 0 ? "off" : "on");
                     function.Control(d);
                 }
                 else
@@ -355,21 +428,21 @@
                     }
                 }
 
+            };
 
+
+
+            btnOn.MouseUpEventHandler += (sender, e) => {
+                dimmerBar.Progress = 100;
+                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                btnBrightnessText.Text = dimmerBar.Progress + "%";
+            };
+            btnOff.MouseUpEventHandler += (sender, e) => {
+                dimmerBar.Progress = 0;
                 btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
                 btnBrightnessText.Text = dimmerBar.Progress + "%";
             };
 
-            btnSwitch.MouseUpEventHandler += (sender, e) => {
-                if (btnSwitch.IsSelected)
-                {
-                    dimmerBar.Progress = 100;
-                }
-                else
-                {
-                    dimmerBar.Progress = 0;
-                }
-            };
 
         }
         int lastBrightness = 0;
@@ -378,7 +451,7 @@
         /// 鍔犺浇cct灞炴�ц缃帶浠�
         /// </summary>
         /// <param name="attrView"></param>
-        void LoadCctAttrView(VerticalScrolViewLayout attrView)
+        void LoadCctAttrView(VerticalScrolViewLayout attrView,Button btnOn,Button btnOff)
         {
             attrView.AddChidren(new Button
             {
@@ -417,24 +490,36 @@
             };
             dimmerView.AddChidren(btnBrightnessText);
 
+            dimmerBar.OnStopTrackingTouchEvent = (sender, e) => {
+                new System.Threading.Thread(() =>
+                {
+                    var d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                    function.Control(d);
+                })
+                { IsBackground = true }.Start();
+            };
+
             dimmerBar.OnProgressChangedEvent = (sender, e) =>
             {
+                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                btnBrightnessText.Text = dimmerBar.Progress + "%";
+                return;
                 if (e == 0 && lastBrightness != 0)
                 {
-                    btnSwitch.IsSelected = false;
                     lastBrightness = 0;
                 }
                 else
                 {
                     if (lastBrightness == 0)
                         lastBrightness = e;
-                    btnSwitch.IsSelected = true;
                 }
 
                 if (e == 0 || e == 100)
                 {
                     var d = new Dictionary<string, string>();
                     d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                    d.Add(FunctionAttributeKey.OnOff, e == 0 ? "off" : "on");
                     function.Control(d);
                 }
                 else
@@ -453,21 +538,9 @@
                 }
 
 
-                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
-                btnBrightnessText.Text = dimmerBar.Progress + "%";
             };
 
-            btnSwitch.MouseUpEventHandler += (sender, e) => {
-                if (btnSwitch.IsSelected)
-                {
-                    dimmerBar.Progress = 100;
-                }
-                else
-                {
-                    dimmerBar.Progress = 0;
-                }
-            };
-
+      
             //attrView.AddChidren(new Button() { Height = Application.GetRealHeight(10) });
 
             #region 鑹叉俯
@@ -562,13 +635,29 @@
             cctView.AddChidren(btnTempClolorMax);
 
             #endregion
+
+
+
+
+            btnOn.MouseUpEventHandler += (sender, e) => {
+                dimmerBar.Progress = 100;
+                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                btnBrightnessText.Text = dimmerBar.Progress + "%";
+            };
+            btnOff.MouseUpEventHandler += (sender, e) => {
+                dimmerBar.Progress = 0;
+                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                btnBrightnessText.Text = dimmerBar.Progress + "%";
+            };
+
+
         }
 
         /// <summary>
         /// 鍔犺浇rgb灞炴�ц缃帶浠�
         /// </summary>
         /// <param name="attrView"></param>
-        void LoadRgbAttrView(bool hadCCT,bool hadColorful)
+        void LoadRgbAttrView(bool hadCCT,bool hadColorful,Button btnOn,Button btnOff)
         {
             Light lightTemp = new Light();
             int magriHeight = 0;
@@ -646,7 +735,22 @@
             };
             colorPicker.ColorChaged += (sender2, e2) =>
             {
+                if (  pointIsRight == false)
+                {
+                    return;
+                }
+                //if (colorPicker.ColorImagePath == "FunctionIcon/Light/ColorWheelGray.png")
+                //{
+                //    return;
+                //}
+                    if (function.refreshTime.AddMilliseconds(350) > DateTime.Now)
+                {
+                    MainPage.Log("棰戠箒鎺у埗锛岄��鍑�");
+                    return;
+                }
+                function.refreshTime = DateTime.Now;
                 rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString();
+
                 btnCurColor.BackgroundColor = (uint)(0xFF000000 + rgbTemp.GetRGBcolor(rgbString));
                 var d = new Dictionary<string, string>();
                 d.Add(FunctionAttributeKey.RGB, rgbString);
@@ -657,9 +761,13 @@
                 pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y);
                 if (pointIsRight == false)
                 {
-                    //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
+                    //pointIsRight:鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
                     return;
                 }
+                //if (colorPicker.ColorImagePath == "FunctionIcon/Light/ColorWheelGray.png")
+                //{
+                //    return;
+                //}
                 //鏄剧ず鐧界偣
                 btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2;
                 btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2;
@@ -674,8 +782,6 @@
                 //褰撻紶鏍囩偣涓嬩簨浠跺鐞�
                 colorPicker.MouseDownEventHandler(sender, e);
             };
-
-
 
             #region 浜害璋冭妭
             var btnBrightnessText = new Button()
@@ -722,6 +828,69 @@
             };
             controlView.AddChidren(dimmerBar);
 
+            dimmerBar.OnStopTrackingTouchEvent = (sender, e) => {
+                new System.Threading.Thread(() =>
+                {
+                    var d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                    function.Control(d);
+                })
+                { IsBackground = true }.Start();
+            };
+
+            dimmerBar.OnProgressChangedEvent = (sender, e) =>
+            {
+                //btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                //btnBrightnessText.Text = dimmerBar.Progress + "%";
+                return;
+                if (e == 0 && lastBrightness != 0)
+                {
+                    lastBrightness = 0;
+                }
+                else
+                {
+                    if (lastBrightness == 0)
+                        lastBrightness = e;
+                }
+                if (e == 0 || e == 100)
+                {
+                    var d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                    d.Add(FunctionAttributeKey.OnOff, e == 0 ? "off" : "on");
+                    function.Control(d);
+                }
+                else
+                {
+                    if (350 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
+                    {
+                        function.refreshTime = DateTime.Now;
+                        new System.Threading.Thread(() =>
+                        {
+                            var d = new Dictionary<string, string>();
+                            d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                            function.Control(d);
+                        })
+                        { IsBackground = true }.Start();
+                    }
+                }
+                //if (e == 0)
+                //{
+                //    if (colorPicker.ColorImagePath != "FunctionIcon/Light/ColorWheelGray.png")
+                //    {
+                //        colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheelGray.png";
+                //    }
+                //}
+                //else
+                //{
+                //    if (colorPicker.ColorImagePath != "FunctionIcon/Light/ColorWheel.png")
+                //    {
+                //        colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheel.png";
+                //    }
+                //}
+            };
+
+
+
             var btnMaxValuesText = new Button()
             {
                 X = dimmerBar.Right,
@@ -734,6 +903,7 @@
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
             };
             controlView.AddChidren(btnMaxValuesText);
+
             #endregion
 
             int heightMore = 375 - magriHeight-20;
@@ -799,6 +969,7 @@
                 };
                 barColorTemplatrue.MinValue = 27;
                 barColorTemplatrue.MaxValue = 65;
+                barColorTemplatrue.Progress = 38;
                 barColorTemplatrue.ProgressBarColor = 0x00000000;//鍏ㄩ儴閫忔槑
                 barColorTemplatrue.ProgressBarUnEnableColor = 0x00000000;
                 barColorTemplatrue.SeekBarBackgroundColor = 0x00000000;
@@ -822,7 +993,7 @@
                 //6500K
                 var btnTempClolorMax = new Button();
                 btnTempClolorMax.Y = btnTempClolorMin.Y;
-                btnTempClolorMax.X = barColorTemplatrue.Right - Application.GetRealWidth(30);
+                btnTempClolorMax.X = barColorTemplatrue.Right - Application.GetRealWidth(15);
                 btnTempClolorMax.Width = Application.GetRealWidth(54);
                 btnTempClolorMax.Height = Application.GetRealHeight(21);
                 btnTempClolorMax.Text = "6500K";
@@ -833,9 +1004,7 @@
 
                 #endregion
 
-
                 heightMore = 70;
-
             }
 
             if (hadColorful)
@@ -845,7 +1014,7 @@
                 var btnGradualChangeText = new Button()
                 {
                     X = Application.GetRealWidth(35),
-                    Y = Application.GetRealHeight(375 + heightMore - magriHeight),
+                    Y = hadCCT ? Application.GetRealHeight(375 + heightMore - magriHeight) : Application.GetRealHeight(heightMore+10),
                     Width = Application.GetRealWidth(224),
                     Height = Application.GetRealHeight(21),
                     TextAlignment = TextAlignment.CenterLeft,
@@ -874,9 +1043,11 @@
 
                 var barColorful = new FrameLayout()
                 {
-                    X = btnColorfulEdit.Right + Application.GetRealWidth(15+5),
-                    Y = Application.GetRealHeight(412 + heightMore - magriHeight),
+                    X = btnColorfulEdit.Right + Application.GetRealWidth(15 + 5),
                     Width = Application.GetRealWidth(170),
+                    //X = Application.GetRealWidth(35),
+                    //Width = Application.GetRealWidth(170 + 41),
+                    Y = hadCCT ? Application.GetRealHeight(412 + heightMore - magriHeight) : Application.GetRealHeight(heightMore + 50),
                     Height = Application.GetRealHeight(8),
                     BackgroundImagePath = "FunctionIcon/Light/ColorfulBar.png",
                 };
@@ -904,8 +1075,7 @@
                             function.SetAttrState(FunctionAttributeKey.Colorful, controlColorfulState);
                             var d = new Dictionary<string, string>();
                             d.Add(FunctionAttributeKey.Colorful, controlColorfulState);
-                      
-                            Control.Ins.SendWriteCommand(function, d);
+                            function.Control(d);
                         }
                         catch (Exception ex)
                         {
@@ -916,10 +1086,19 @@
                 };
 
                 #endregion
-
-
             }
 
+            btnOn.MouseUpEventHandler += (sender, e) => {
+                dimmerBar.Progress = 100;
+                //btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                //btnBrightnessText.Text = dimmerBar.Progress + "%";
+            };
+            btnOff.MouseUpEventHandler += (sender, e) => {
+                dimmerBar.Progress = 0;
+                //btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                //btnBrightnessText.Text = dimmerBar.Progress + "%";
+            };
+
 
 
         }

--
Gitblit v1.8.0