From e6a26ee148587327478d9a82624a820c907b6e16 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 04 十一月 2020 14:58:15 +0800
Subject: [PATCH] 20201104

---
 HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs |  153 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 98 insertions(+), 55 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
index 8a2c4e9..e024ef2 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
@@ -14,7 +14,7 @@
         /// 鏇存柊鍔熻兘鐘舵��
         /// </summary>
         /// <param name="updataFunction"></param>
-        public void UpdataStates(Function updataFunction, FrameLayout view, VerticalScrolViewLayout scrolView)
+        public void UpdataStates(Function updataFunction, FrameLayout view, VerticalScrolViewLayout scrolView,Room room=null)
         {
             try
             {
@@ -24,49 +24,64 @@
                     {
                         return;
                     }
-                    switch (updataFunction.functionCategory)
+                    if(!scrolView.ScrollEnabled)
                     {
-                        case FunctionType.Light:
-                            var uLight = updataFunction as Light;
-                            for (int i = 0; i < scrolView.ChildrenCount; i++)
+                        return;
+                    }
+                    if (room != null)
+                    {
+                        if (!updataFunction.roomIdList.Contains(room.sid))
+                        {
+                            return;
+                        }
+                    }
+                    for (int i = 0; i < scrolView.ChildrenCount; i++)
+                    {
+                        if (scrolView.GetChildren(i).Tag == null || scrolView.GetChildren(i).Tag.ToString() == "")
+                        {
+                            continue;
+                        }
+                        var viewTag = scrolView.GetChildren(i).Tag.ToString();
+                        if (viewTag == updataFunction.sid)
+                        {
+                            if (scrolView.GetChildren(i).Tag != null && scrolView.GetChildren(i).Tag.ToString() == updataFunction.sid)
                             {
-                                if (scrolView.GetChildren(i).Tag == null || scrolView.GetChildren(i).Tag.ToString() == "")
+                                var fcView = scrolView.GetChildren(i) as FrameLayout;
+                                for (int j = 0; j < fcView.ChildrenCount; j++)
                                 {
-                                    continue;
-                                }
-                                var viewTag = scrolView.GetChildren(i).Tag.ToString();
-                                if (viewTag == updataFunction.functionCategory.ToString() + "-" + updataFunction.functionType + "-" + updataFunction.sid)
-                                {
-                                    if (scrolView.GetChildren(i).GetType().Name == "FunctionControlZone")
+                                    if (fcView.GetChildren(j).Tag == null)
+                                        continue;
+                                    var cTag = fcView.GetChildren(j).Tag.ToString();
+                                    switch (updataFunction.functionCategory)
                                     {
-                                        var fcView = scrolView.GetChildren(i) as FrameLayout;
-                                        for (int j = 0; j < fcView.ChildrenCount; j++)
-                                        {
-                                            if (fcView.GetChildren(j).Tag == null)
-                                                continue;
-                                            var cTag = fcView.GetChildren(j).Tag.ToString();
-                                            if (cTag == updataFunction.functionType + "_Switch_" + updataFunction.sid)
+                                        case FunctionCategory.Light:
+                                        case FunctionCategory.Thermostat:
+                                            #region 鎸夐挳鐘舵�佹洿鏂�
+                                            if (cTag == updataFunction.sid + "_Switch")
                                             {
                                                 try
                                                 {
-                                                    (fcView.GetChildren(j) as Button).IsSelected = uLight.on_off == 1;
+                                                    (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.value.ToString() == "on";
                                                 }
                                                 catch (Exception ex)
                                                 {
                                                     MainPage.Log($"{this.GetType()} error 0 : {ex.Message}");
                                                 }
                                             }
-                                            else if (cTag == updataFunction.functionType + "_DimmerBar_" + updataFunction.sid)
+                                            #endregion
+                                            #region 璋冨厜鐘舵�佽繘搴︽洿鏂�
+                                            else if (cTag == updataFunction.sid + "_DimmerBar")
                                             {
                                                 try
                                                 {
-                                                    if (uLight.on_off == 1)
+                                                    if (updataFunction.trait_on_off.value.ToString() == "on")
                                                     {
                                                         (fcView.GetChildren(j) as DiyImageSeekBar).Progress = (updataFunction as Light).brightness;
                                                         (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1;
                                                     }
                                                     else
                                                     {
+                                                        (fcView.GetChildren(j) as DiyImageSeekBar).Progress = (updataFunction as Light).brightness;
                                                         (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.PromptingColor2;
                                                     }
                                                 }
@@ -75,11 +90,69 @@
                                                     MainPage.Log($"{this.GetType()} error 1 : {ex.Message}");
                                                 }
                                             }
-                                        }
+                                            #endregion
+                                            #region 鍔熻兘鐘舵�佷俊鎭洿鏂�
+                                            else if (cTag == updataFunction.functionType + "_laststates_" + updataFunction.sid)
+                                            {
+                                                try
+                                                {
+                                                    (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.value.ToString() == "on";
+                                                    (fcView.GetChildren(j) as Button).Text = updataFunction.lastState;
+                                                }
+                                                catch (Exception ex)
+                                                {
+                                                    MainPage.Log($"{this.GetType()} error 2 : {ex.Message}");
+                                                }
+                                            }
+                                            break;
+                                            #endregion
+                                        case FunctionCategory.Curtain:
+                                            #region 绐楀笜鏇存柊
+                                            var uCurtain = updataFunction as Curtain;
+                                            if (cTag == updataFunction.functionType + "_off_" + updataFunction.sid)
+                                            {
+                                                try
+                                                {
+                                                    (fcView.GetChildren(j) as Button).IsSelected = uCurtain.trait_on_off.value.ToString() == "off";
+                                                }
+                                                catch (Exception ex)
+                                                {
+                                                    MainPage.Log($"{this.GetType()} error 3 : {ex.Message}");
+                                                }
+                                            }
+                                            else
+                                            {
+                                                try
+                                                {
+                                                    (fcView.GetChildren(j) as Button).IsSelected = uCurtain.trait_on_off.value.ToString() == "on";
+                                                }
+                                                catch (Exception ex)
+                                                {
+                                                    MainPage.Log($"{this.GetType()} error 4 : {ex.Message}");
+                                                }
+                                            }
+                                            #endregion
+                                            break;
+                                        case FunctionCategory.Music:
+                                            #region 闊充箰鏇存柊
+                                            var uMusic = updataFunction as Music.A31MusicModel;
+                                            if (cTag == updataFunction.functionType + "_State_" + updataFunction.sid)
+                                            {
+                                                try
+                                                {
+                                                    (fcView.GetChildren(j) as Button).IsSelected = uMusic.A31PlayStatus.status == "play" ;
+                                                }
+                                                catch (Exception ex)
+                                                {
+                                                    MainPage.Log($"{this.GetType()} error 3 : {ex.Message}");
+                                                }
+                                            }
+                                            #endregion
+                                            break;
                                     }
                                 }
                             }
-                            break;
+                        }
                     }
                 });
             }
@@ -89,35 +162,5 @@
             }
         }
 
-
-
-        //public static void UpdataLightStates(Light uLight)
-        //{
-        //    Application.RunOnMainThread(() =>
-        //    {
-        //        if (bodyDiv == null)
-        //            return;
-        //        if(uLight.sid == function.sid&& uLight.functionType == function.functionType)
-        //        {
-        //            for (int i = 0; i < bodyDiv.ChildrenCount; i++)
-        //            {
-        //                var c1 = bodyDiv.GetChildren(i);
-        //                if (c1.Tag != null && c1.Tag.ToString() == "")
-        //                {
-        //                    if (c1.Tag.ToString() == function.functionType + "_Switch_" + function.sid)
-        //                    {
-        //                        var btn = c1 as Button;
-        //                        btn.IsSelected = uLight.on_off == 1;
-        //                    }
-        //                    else if (c1.Tag.ToString() == function.functionType + "_DimmerBar_" + function.sid)
-        //                    {
-        //                        var bar = c1 as DiyImageSeekBar;
-        //                        bar.ProgressBarColor = uLight.on_off == 1 ? CSS.CSS_Color.AuxiliaryColor1 : CSS.CSS_Color.PromptingColor2;
-        //                    }
-        //                }
-        //            }
-        //        }
-        //    });
-        //}
-    }
+  }
 }

--
Gitblit v1.8.0