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/2-Classification/RoomPage.cs |   68 ++++++++++++++++++++++++---------
 1 files changed, 49 insertions(+), 19 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/RoomPage.cs b/HDL_ON/UI/UI2/2-Classification/RoomPage.cs
index 3c04eec..7bbf394 100644
--- a/HDL_ON/UI/UI2/2-Classification/RoomPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/RoomPage.cs
@@ -1,4 +1,6 @@
-锘縰sing System;
+锘�
+using System;
+using System.Collections.Generic;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -34,6 +36,12 @@
 
         #endregion
 
+        public override void RemoveFromParent()
+        {
+            base.RemoveFromParent();
+            bodyView = null;
+        }
+
         /// <summary>
         /// 
         /// </summary>
@@ -61,8 +69,15 @@
         {
             if (bodyView != null)
             {
-                bodyView.RemoveAll();
-                LoadPage();
+                try
+                {
+                    bodyView.RemoveAll();
+                    LoadPage();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"RoomPage ReloadPage error :\r\n {ex.Message}");
+                }
             }
         }
 
@@ -82,16 +97,20 @@
 
             var list = room.GetRoomFunctions(false);
 
+
             foreach (var function in list)
             {
                 if (MainPage.RoomNotSupportFunctionList.Contains(function.spk))
                 {
                     continue;
                 }
+#if DEBUG
+                //throw new ArgumentNullException();
+#endif
 
                 functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
 
-                if (function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
+                if (function.spk == SPK.LightRGBW || function.spk == SPK.LightCCT || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                 {
                     var functionDiv = new FunctionControlZone(function, null)
                     {
@@ -109,9 +128,10 @@
                 }
                 else
                 {
+                    
                     var functionDiv = new FunctionControlZone(function, () =>
                     {
-                        this.ReLoadPage();
+                        this.ReLoadPage(); //鍒犻櫎璁惧鍚庨噸鏂板埛鏂癠I
                     })
                     {
                         Gravity = Gravity.CenterHorizontal,
@@ -127,22 +147,32 @@
                     functionListView.AddChidren(functionDiv);
                 }
             }
-            foreach (var scene in room.GetRoomScenes(false))
+            try
             {
-                functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
-                var sceneRow = new FrameLayout()
+                foreach (var scene in room.GetRoomScenes(false))
                 {
-                    Gravity = Gravity.CenterHorizontal,
-                    Width = Application.GetRealWidth(343),
-                    Height = Application.GetRealHeight(116),
-                    Radius = (uint)Application.GetMinRealAverage(12),
-                    BorderColor = 0x00FFFFFF,
-                    BorderWidth = 1,
-                    BackgroundColor = CSS_Color.MainBackgroundColor,
-                    Tag = "Scene-" + scene.sid
-                };
-                functionListView.AddChidren(sceneRow);
-                LoadSceneRow(sceneRow, scene);
+                    if (scene == null)
+                    {
+                        continue;
+                    }
+                    functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
+                    var sceneRow = new FrameLayout()
+                    {
+                        Gravity = Gravity.CenterHorizontal,
+                        Width = Application.GetRealWidth(343),
+                        Height = Application.GetRealHeight(116),
+                        Radius = (uint)Application.GetMinRealAverage(12),
+                        BorderColor = 0x00FFFFFF,
+                        BorderWidth = 1,
+                        BackgroundColor = CSS_Color.MainBackgroundColor,
+                        Tag = "Scene-" + scene.sid
+                    };
+                    functionListView.AddChidren(sceneRow);
+                    LoadSceneRow(sceneRow, scene);
+                }
+            }catch (Exception ex)
+            {
+                MainPage.Log($"RoomPage LoadPage Error:{ex.Message}");
             }
         }
 

--
Gitblit v1.8.0