From 592974441a4df95fffd9167c90192da1a390b1c2 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 06 六月 2023 11:51:12 +0800
Subject: [PATCH] Merge branch 'Dev-Branch'

---
 HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs |  573 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 381 insertions(+), 192 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs
index ee30315..a0aef90 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs
@@ -25,6 +25,10 @@
         /// </summary>
         Button btnFloor;
         /// <summary>
+        /// 鍏ㄩ�夋寜閽�
+        /// </summary>
+        Button btnChooseAll;
+        /// <summary>
         /// 鍔熻兘鍒楄〃闆嗗悎鏄剧ず鍖哄煙
         /// </summary>
         static VerticalScrolViewLayout functionListView;
@@ -89,15 +93,46 @@
             btnFloor = new Button()
             {
                 X = btnFloorDownIcon.Right,
-                Y = Application.GetRealHeight(18),
+                //Y = Application.GetRealHeight(18),
                 Width = Application.GetRealWidth(200),
-                Height = Application.GetMinRealAverage(16),
+                //Height = Application.GetMinRealAverage(16+18*2),
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                 TextAlignment = TextAlignment.CenterLeft,
                 Text = DB_ResidenceData.Instance.CurFloor.roomName,
             };
             roomFloorChangeView.AddChidren(btnFloor);
+
+            btnChooseAll = new Button()
+            {
+                X = Application.GetRealWidth(245),
+                Width = Application.GetRealWidth(109),
+                TextAlignment = TextAlignment.CenterRight,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextID = StringId.SelectedAll,
+            };
+            if(sceneLishtList.Count>0)
+            {
+                btnChooseAll.TextID = StringId.Cancel;
+            }
+            roomFloorChangeView.AddChidren(btnChooseAll);
+            btnChooseAll.MouseUpEventHandler = (sender, e) => {
+                if (sceneLishtList.Count > 0)
+                {
+                    sceneLishtList.Clear();
+                    btnChooseAll.TextID = StringId.SelectAll;
+                    btnConfrim.IsSelected = false;
+                }
+                else
+                {
+                    sceneLishtList.AddRange(lightList);
+                    btnChooseAll.TextID = StringId.Cancel;
+                    btnConfrim.IsSelected = true;
+                }
+                LoadLightRow(lightList);
+            };
+
             #endregion
 
             functionListView = new VerticalScrolViewLayout()
@@ -157,44 +192,107 @@
         }
 
         /// <summary>
+        /// 鏄剧ず鐨勮澶囩殑鎬绘暟
+        /// </summary>
+        int showCount = -1;
+
+        /// <summary>
         /// 鍔犺浇鍔熻兘row
         /// </summary>
         /// <param name="lightList"></param>
-        void LoadLightRow(List<Function> functions)
+        void LoadLightRow(List<Function> functions, bool isAppend = false)
         {
-            functionListView.RemoveAll();
+            var waitPage = new Loading();
+            bodyView.AddChidren(waitPage);
+            waitPage.Start("");
 
-            foreach (var function in functions)
+            new System.Threading.Thread(() =>
             {
-                var functionDiv = new LightRow(function)
+                try
                 {
-                    Gravity = Gravity.CenterHorizontal,
-                    Width = Application.GetRealWidth(343),
-                    Height = Application.GetRealHeight(62),
-                    Radius = (uint)Application.GetMinRealAverage(12),
-                    BorderColor = 0x00FFFFFF,
-                    BorderWidth = 1,
-                    BackgroundColor = CSS_Color.MainBackgroundColor,
-                    Tag = function.spk + function.sid
-                };
+                    Application.RunOnMainThread(() =>
+                    {
+                        if (!isAppend)
+                        {
+                            showCount = -1;
+                            functionListView.RemoveAll();
+                        }
+                        for(var i =0;i<100;i++)
+                        //foreach (var function in functions)
+                        {
+                            showCount++;
+                            if (showCount >= functions.Count)
+                            {
+                                break;
+                            }
+                            var function = functions[showCount];
 
-                Action setAction = () =>
+                            var functionDiv = new LightRow(function)
+                            {
+                                Gravity = Gravity.CenterHorizontal,
+                                Width = Application.GetRealWidth(343),
+                                Height = Application.GetRealHeight(62),
+                                Radius = (uint)Application.GetMinRealAverage(12),
+                                BorderColor = 0x00FFFFFF,
+                                BorderWidth = 1,
+                                BackgroundColor = CSS_Color.MainBackgroundColor,
+                                Tag = function.spk + function.sid
+                            };
+
+                            Action setAction = () =>
+                            {
+                                if (sceneLishtList.Count > 0)
+                                {
+                                    btnConfrim.IsSelected = true;
+                                }
+                                else
+                                {
+                                    btnConfrim.IsSelected = false;
+                                }
+                            };
+
+                            functionDiv.LoadDiv(sceneLishtList, setAction);
+                            functionListView.AddChidren(functionDiv);
+
+                            functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
+                        }
+
+                        if (functions.Count > showCount)
+                        {
+                            var btnAppend = new Button()
+                            {
+                                Height = Application.GetRealHeight(60),
+                                TextAlignment = TextAlignment.Center,
+                                TextSize = CSS_FontSize.SubheadingFontSize,
+                                TextColor = CSS_Color.FirstLevelTitleColor,
+                                TextID = StringId.LoadMore,
+                            };
+                            functionListView.AddChidren(btnAppend);
+                            btnAppend.MouseUpEventHandler = (sender, e) =>
+                            {
+                                btnAppend.RemoveFromParent();
+                                LoadLightRow(functions, true);
+                            };
+                        }
+                    });
+                }
+                catch (Exception ex)
                 {
-                    if (sceneLishtList.Count > 0)
+                    MainPage.Log("ShowFunctionRowError : " + ex.Message);
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
                     {
-                        btnConfrim.IsSelected = true;
-                    }
-                    else
-                    {
-                        btnConfrim.IsSelected = false;
-                    }
-                };
-
-                functionDiv.LoadDiv(sceneLishtList,setAction);
-                functionListView.AddChidren(functionDiv);
-
-                functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
-            }
+                        if (waitPage != null)
+                        {
+                            waitPage.RemoveFromParent();
+                            waitPage = null;
+                        }
+                    });
+                }
+            })
+            { IsBackground = true }.Start();
 
         }
 
@@ -211,6 +309,21 @@
                 var form = new FloorRoomSelectPopupView();
                 form.ShowDeviceFunctionView(btnFloor, this.lightList, (selectId, listFunc) =>
                 {
+                    btnChooseAll.MouseUpEventHandler = (sender2, e2) => {
+                        if (sceneLishtList.Count > 0)
+                        {
+                            sceneLishtList.Clear();
+                            btnChooseAll.TextID = StringId.SelectAll;
+                            btnConfrim.IsSelected = false;
+                        }
+                        else
+                        {
+                            sceneLishtList.AddRange(listFunc);
+                            btnChooseAll.TextID = StringId.Cancel;
+                            btnConfrim.IsSelected = true;
+                        }
+                        LoadLightRow(listFunc);
+                    };
                     nowSelectId = selectId;
                     //閲嶆柊鍔犺浇鐣岄潰
                     LoadLightRow(listFunc);
@@ -303,11 +416,17 @@
                 Height = Application.GetRealWidth(32),
                 UnSelectedImagePath = "FunctionIcon/Light/LightScene/CheckIcon.png",
                 SelectedImagePath = "FunctionIcon/Light/LightScene/CheckOnIcon.png",
-                IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null
+                IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null,
+                Tag = "ChooseIcon"
             };
+            if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl)
+            {
+                btnSelect.X = Application.GetRealWidth(323);
+            }
             bodyDiv.AddChidren(btnSelect);
             
             btnSelect.MouseUpEventHandler = (sender, e) => {
+                Application.HideSoftInput();
                 btnSelect.IsSelected = !btnSelect.IsSelected;
                 if(btnSelect.IsSelected)
                 {
@@ -319,17 +438,17 @@
                 }
                 else
                 {
-                    var removeTemp = functions.Find((obj) => obj.deviceId == function.deviceId);
+                    var removeTemp = functions.Find((obj) => obj.sid == function.sid);
                     if (removeTemp != null)
                     {
                         functions.Remove(removeTemp);
                     }
                 }
                 ///鍒锋柊鐣岄潰
-                if (functions.Count == 0 || functions.Count == 1)
-                {
+                //if (functions.Count == 0 || functions.Count == 1)
+                //{
                     action();
-                }
+                //}
             };
 
         }
@@ -375,6 +494,7 @@
 
         public void ShowDialog()
         {
+            commandDic.Clear();
             commandDic.Add(FunctionAttributeKey.OnOff, "off");
 
             listSwitch = lights.FindAll((obj) => obj.spk == SPK.LightSwitch);
@@ -382,9 +502,31 @@
             lightCCT = lights.FindAll((obj) => obj.spk == SPK.LightCCT);
             lightRGB = lights.FindAll((obj) => obj.spk == SPK.LightRGB);
 
+          
+
             var hadDimming = lightDimming.Count > 0;
             var hadCCT = lightCCT.Count > 0;
             var hadRGB = lightRGB.Count > 0;
+            if ( hadRGB)
+            {
+                commandDic.Add(FunctionAttributeKey.RGB, lightRGB[0].GetAttrState(FunctionAttributeKey.RGB));
+                commandDic.Add(FunctionAttributeKey.Brightness, lightRGB[0].GetAttrState(FunctionAttributeKey.Brightness));
+            }
+            if (hadCCT)
+            {
+                commandDic.Add(FunctionAttributeKey.CCT, lightCCT[0].GetAttrState(FunctionAttributeKey.CCT));
+                if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness))
+                {
+                    commandDic.Add(FunctionAttributeKey.Brightness, lightCCT[0].GetAttrState(FunctionAttributeKey.Brightness));
+                }
+            }
+            if (hadDimming)
+            {
+                if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness))
+                {
+                    commandDic.Add(FunctionAttributeKey.Brightness, lightDimming[0].GetAttrState(FunctionAttributeKey.Brightness));
+                }
+            }
 
             var bodyView = new FrameLayout();
             this.AddChidren(bodyView);
@@ -435,9 +577,17 @@
                 X = Application.GetRealWidth(12) + btnTitle.Right,
                 Gravity = Gravity.CenterVertical,
                 UnSelectedImagePath = "Public/Edit.png",
-                //SelectedImagePath = "Public/HookIcon.png"
             };
-            titleView.AddChidren(btnEditIcon);
+            if (string.IsNullOrEmpty(scene.userSceneId))
+            {
+                titleView.AddChidren(btnEditIcon);
+            }
+            else
+            {
+                btnTitle.Text = scene.name;
+                btnTitle.Width = btnTitle.GetTextWidth()+ Application.GetRealWidth(10);
+                btnTitle.Gravity = Gravity.Center;
+            }
 
             Action<string> callBack = (str) =>
                 {
@@ -646,175 +796,198 @@
             contentView.AddChidren(bottomView);
             bottomView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
 
-            var btnCacel = new Button()
+            if (string.IsNullOrEmpty(scene.userSceneId))
             {
-                Width = Application.GetRealWidth(172),
-                Height = Application.GetRealHeight(44),
-                TextAlignment = TextAlignment.Center,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextColor = CSS_Color.TextualColor,
-                TextID = StringId.Cancel,
-            };
-            bottomView.AddChidren(btnCacel);
-
-            var btnSave = new Button()
-            {
-                X = Application.GetRealWidth(172),
-                Width = Application.GetRealWidth(172),
-                Height = Application.GetRealHeight(46),
-                BackgroundColor = CSS_Color.MainColor,
-                TextColor = CSS_Color.MainBackgroundColor,
-                TextAlignment = TextAlignment.Center,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.Save
-            };
-            bottomView.AddChidren(btnSave);
-
-            //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
-            int mRectCornerID = HDLUtils.RectCornerBottomRight;
-            btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
-
-
-
-            btnCacel.MouseUpEventHandler = (sender, e) => {
-                this.Close();
-
-                //var waitPage = new Loading();
-                //MainPage.BaseView.AddChidren(waitPage);
-                //waitPage.Start(Language.StringByID(StringId.PleaseWait));
-                //new Thread(() =>
-                //{
-                //    try
-                //    {
-                //        foreach (var light in lights)
-                //        {
-                //            Dictionary<string, string> sendDate = new Dictionary<string, string>();
-                //            //璧嬪�煎満鏅姛鑳芥暟鎹�
-                //            foreach (var attr in light.GetAttributes())
-                //            {
-                //                if (commandDic.ContainsKey(attr))
-                //                {
-                //                    try
-                //                    {
-                //                        sendDate.Add(attr, commandDic[attr]);
-                //                    }
-                //                    catch { }
-                //                }
-
-                //            }
-                //                Control.Ins.SendWriteCommand(light, sendDate);
-                //            Thread.Sleep(50);
-                //        }
-                //    }
-                //    catch
-                //    { }
-                //    finally
-                //    {
-                //        Application.RunOnMainThread(() =>
-                //        {
-                //            waitPage.Hide();
-                //            new PublicAssmebly().TipMsgAutoClose("缁勫悎鎺у埗宸叉墽琛�", true);
-                //            if (waitPage != null)
-                //            {
-                //                //backAction(null);
-                //                waitPage.RemoveFromParent();
-                //            }
-                //        });
-                //    }
-                //})
-                //{ IsBackground = true }.Start();
-            };
-
-
-
-            btnSave.MouseUpEventHandler = (sender, e) =>
-            {
-                if (string.IsNullOrEmpty(scene.name))
+                var btnCacel = new Button()
                 {
-                    new Tip()
-                    {
-                        CloseTime = 1,
-                        Text = Language.StringByID(StringId.NameCannotBeEmpty),
-                        Direction = AMPopTipDirection.None,
-                    }.Show(bodyView);
-                    return;
-                }
-                foreach (var tempRoom in FunctionList.List.scenes)
+                    Width = Application.GetRealWidth(172),
+                    Height = Application.GetRealHeight(44),
+                    TextAlignment = TextAlignment.Center,
+                    TextSize = CSS_FontSize.SubheadingFontSize,
+                    TextColor = CSS_Color.TextualColor,
+                    TextID = StringId.Cancel,
+                };
+                bottomView.AddChidren(btnCacel);
+
+                var btnSave = new Button()
                 {
-                    if (scene.name == tempRoom.name)
+                    X = Application.GetRealWidth(172),
+                    Width = Application.GetRealWidth(172),
+                    Height = Application.GetRealHeight(46),
+                    BackgroundColor = CSS_Color.MainColor,
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    TextAlignment = TextAlignment.Center,
+                    TextSize = CSS_FontSize.SubheadingFontSize,
+                    TextID = StringId.Save
+                };
+                bottomView.AddChidren(btnSave);
+
+                //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
+                int mRectCornerID = HDLUtils.RectCornerBottomRight;
+                btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
+
+                btnCacel.MouseUpEventHandler = (sender, e) =>
+                {
+                    this.Close();
+
+                    //var waitPage = new Loading();
+                    //MainPage.BaseView.AddChidren(waitPage);
+                    //waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                    //new Thread(() =>
+                    //{
+                    //    try
+                    //    {
+                    //        foreach (var light in lights)
+                    //        {
+                    //            Dictionary<string, string> sendDate = new Dictionary<string, string>();
+                    //            //璧嬪�煎満鏅姛鑳芥暟鎹�
+                    //            foreach (var attr in light.GetAttributes())
+                    //            {
+                    //                if (commandDic.ContainsKey(attr))
+                    //                {
+                    //                    try
+                    //                    {
+                    //                        sendDate.Add(attr, commandDic[attr]);
+                    //                    }
+                    //                    catch { }
+                    //                }
+
+                    //            }
+                    //                Control.Ins.SendWriteCommand(light, sendDate);
+                    //            Thread.Sleep(50);
+                    //        }
+                    //    }
+                    //    catch
+                    //    { }
+                    //    finally
+                    //    {
+                    //        Application.RunOnMainThread(() =>
+                    //        {
+                    //            waitPage.Hide();
+                    //            new PublicAssmebly().TipMsgAutoClose("缁勫悎鎺у埗宸叉墽琛�", true);
+                    //            if (waitPage != null)
+                    //            {
+                    //                //backAction(null);
+                    //                waitPage.RemoveFromParent();
+                    //            }
+                    //        });
+                    //    }
+                    //})
+                    //{ IsBackground = true }.Start();
+                };
+
+                btnSave.MouseUpEventHandler = (sender, e) =>
+                {
+                    if (string.IsNullOrEmpty(scene.name))
                     {
-                        new PublicAssmebly().TipMsg(StringId.Tip, StringId.NameAlreadyExists);
+                        new Tip()
+                        {
+                            CloseTime = 1,
+                            Text = Language.StringByID(StringId.NameCannotBeEmpty),
+                            Direction = AMPopTipDirection.None,
+                        }.Show(bodyView);
                         return;
                     }
-                }
-                var waitPage = new Loading();
-                MainPage.BaseView.AddChidren(waitPage);
-                waitPage.Start(Language.StringByID(StringId.PleaseWait));
-                new Thread(() =>
-                {
-                    try
+                    foreach (var tempRoom in FunctionList.List.scenes)
                     {
-                        var serverScene = new Scene();
-                        for (int i = 0; i < lights.Count; i++)
+                        if (scene.name == tempRoom.name)
                         {
-                            var light = lights[i];
+                            new PublicAssmebly().TipMsg(StringId.Tip, StringId.NameAlreadyExists);
+                            return;
+                        }
+                    }
+                    var waitPage = new Loading();
+                    MainPage.BaseView.AddChidren(waitPage);
+                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                    new Thread(() =>
+                    {
+                        try
+                        {
+                            var serverScene = new Scene();
+                            for (int i = 0; i < lights.Count; i++)
+                            {
+                                var light = lights[i];
                             //璧嬪�煎満鏅姛鑳芥暟鎹�
                             foreach (var attr in light.GetAttributes())
-                            {
-                                if (commandDic.ContainsKey(attr))
                                 {
-                                    try
+                                    if (commandDic.ContainsKey(attr))
                                     {
-                                        light.SetAttrState(attr, commandDic[attr]);
+                                        try
+                                        {
+                                            light.SetAttrState(attr, commandDic[attr]);
+                                        }
+                                        catch { }
                                     }
-                                    catch { }
                                 }
-                            }
                             //杞崲鍦烘櫙鐨勫姛鑳藉璞�
                             var sceneFunction = light.ConvertSceneFunction();
                             //鏌ヨ鏈夋病鏈夊瓨鍦�
                             var temp = scene.functions.Find((obj) => obj.sid == sceneFunction.sid);
                             //璧嬪��
                             if (temp != null)
-                            {
-                                temp = sceneFunction;
-                            }
-                            else
-                            {
-                                scene.functions.Add(sceneFunction);
-                            }
-                        }
-                        var result = FunctionList.List.AddScene(scene, out serverScene);
-                        Application.RunOnMainThread(() =>
-                        {
-                            if (result == StateCode.SUCCESS)
-                            {
-                                scene.userSceneId = serverScene.userSceneId;
-                                FunctionList.List.scenes.Add(scene);
-                                backAction?.Invoke(scene);
-                                this.Close();
-                            }
-                            else
-                            {
-                                if (result == "124005")
-                                    IMessageCommon.Current.ShowErrorInfoAlter(Language.StringByID(StringId.GatewayOffline));
+                                {
+                                    temp = sceneFunction;
+                                }
                                 else
-                                    IMessageCommon.Current.ShowErrorInfoAlter(result);
+                                {
+                                    scene.functions.Add(sceneFunction);
+                                }
                             }
-                        });
-                    }
-                    catch { }
-                    finally
-                    {
-                        Application.RunOnMainThread(() => {
-                            waitPage.Hide();
-                            waitPage.RemoveFromParent();
-                        });
-                    }
-                })
-                { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start();
-            };
+                            var result = FunctionList.List.AddScene(scene, out serverScene);
+                            Application.RunOnMainThread(() =>
+                            {
+                                if (result == StateCode.SUCCESS)
+                                {
+                                    scene.userSceneId = serverScene.userSceneId;
+                                    FunctionList.List.scenes.Add(scene);
+                                    backAction?.Invoke(scene);
+                                    this.Close();
+                                }
+                                else
+                                {
+                                    if (result == "124005")
+                                        IMessageCommon.Current.ShowErrorInfoAlter(Language.StringByID(StringId.GatewayOffline));
+                                    else
+                                        IMessageCommon.Current.ShowErrorInfoAlter(result);
+                                }
+                            });
+                        }
+                        catch { }
+                        finally
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                waitPage.Hide();
+                                waitPage.RemoveFromParent();
+                            });
+                        }
+                    })
+                    { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start();
+                };
+            }
+            else
+            {
+                var btnCacel = new Button()
+                {
+                    Height = Application.GetRealHeight(44),
+                    TextAlignment = TextAlignment.Center,
+                    TextSize = CSS_FontSize.SubheadingFontSize,
+                    TextColor = CSS_Color.TextualColor,
+                    TextID = StringId.Close,
+                };
+                bottomView.AddChidren(btnCacel);
 
+
+                //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
+                //int mRectCornerID = HDLUtils.RectCornerBottomRight;
+                //btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
+
+                btnCacel.MouseUpEventHandler = (sender, e) =>
+                {
+                    this.Close();
+                };
+
+            }
 
 
 
@@ -833,8 +1006,8 @@
         /// <param name="attrView"></param>
         void LoadDimmingAttrView(VerticalScrolViewLayout attrView)
         {
-
-            commandDic.TryAdd(FunctionAttributeKey.Percent, "0");
+            string briValue = "";
+            commandDic.TryGetValue(FunctionAttributeKey.Brightness,out briValue);
 
             var dimmingView = new FrameLayout()
             {
@@ -854,7 +1027,7 @@
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                 TextID = StringId.Brightness,
             };
-            btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + commandDic[FunctionAttributeKey.Percent] + "%";
+            btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + commandDic[FunctionAttributeKey.Brightness] + "%";
             dimmingView.AddChidren(btnBrightnessText);
 
 
@@ -884,7 +1057,7 @@
                 ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                 ProgressBarColor = CSS_Color.AuxiliaryColor1,
                 MaxValue = 100,
-                Progress = Convert.ToInt32(commandDic[FunctionAttributeKey.Percent]),
+                Progress = Convert.ToInt32(commandDic[FunctionAttributeKey.Brightness]),
                 SeekBarPadding = Application.GetRealWidth(20),
                 IsProgressTextShow = false,
                 ProgressChangeDelayTime = 0,
@@ -894,7 +1067,7 @@
                 btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%";
             };
             dimmerBar.OnStopTrackingTouchEvent = (sender, e) => {
-                commandDic[FunctionAttributeKey.Percent] = dimmerBar.Progress.ToString();
+                commandDic[FunctionAttributeKey.Brightness] = dimmerBar.Progress.ToString();
                 btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%";
                 
                 foreach (var light in lights)
@@ -938,6 +1111,10 @@
         void LoadCctAttrView(VerticalScrolViewLayout attrView)
         {
             #region 鑹叉俯
+
+            string valueStr = "2700";
+            commandDic.TryGetValue(FunctionAttributeKey.CCT, out valueStr);
+            int value = Convert.ToInt32(valueStr) / 100;
 
             var cctView = new FrameLayout()
             {
@@ -1001,9 +1178,7 @@
             barColorTemplatrue.SeekBarBackgroundColor = 0x00000000;
             cctView.AddChidren(barColorTemplatrue);
             barColorTemplatrue.Y = btnTempClolorMin.Y - (barColorTemplatrue.Height - btnTempClolorMin.Height) / 2;
-            var cct = 27;
-            //int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cct);
-            barColorTemplatrue.Progress = cct;
+            barColorTemplatrue.Progress = value;
             //璁剧疆鍒濆鍊�
             btnTempClolor.Text = Language.StringByID(StringId.ColorTemperature) + " " + (barColorTemplatrue.Progress * 100 + "K");
             barColorTemplatrue.OnProgressChangedEvent = (sender, e) =>
@@ -1052,7 +1227,9 @@
         {
 
             #region RGB
-            commandDic.TryAdd(FunctionAttributeKey.RGB, "255,255,255");
+
+            string value = "255,255,255";
+            commandDic.TryGetValue(FunctionAttributeKey.RGB, out value);
 
             var rgbView = new FrameLayout()
             {
@@ -1122,6 +1299,10 @@
                 string rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString();
                 commandDic[FunctionAttributeKey.RGB] = rgbString;
                 btnCurColor.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString));
+                foreach (var rgbTemp in lightRGB)
+                {
+                    rgbTemp.SetAttrState(FunctionAttributeKey.RGB, rgbString);
+                }
             };
             colorPicker.MouseDownEventHandler += (sender, e) =>
             {
@@ -1139,6 +1320,14 @@
                     btnWhiteRound.Visible = true;
                 }
             };
+            colorPicker.MouseUpEventHandler = (sender, e) => {
+                foreach (var rgbTemp in lightRGB)
+                {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.RGB, tempLight.GetRGBcolorString(rgbTemp));
+                    Control.Ins.SendWriteCommand(rgbTemp, d, false, 0);
+                }
+            };
 
             colorPicker.MouseMoveEventHandler += (sender, e) =>
             {

--
Gitblit v1.8.0