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/2-Classification/RoomPage.cs |   88 ++++++++++++++++++++++++++++---------------
 1 files changed, 57 insertions(+), 31 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/RoomPage.cs b/HDL_ON/UI/UI2/2-Classification/RoomPage.cs
index b2138df..f19a9d6 100644
--- a/HDL_ON/UI/UI2/2-Classification/RoomPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/RoomPage.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘�
+using System;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -12,7 +13,7 @@
         /// <summary>
         /// 褰撳墠绐椾綋
         /// </summary>
-        static FrameLayout bodyView;
+        public static RoomPage bodyView;
         /// <summary>
         /// 鍔熻兘鍒楄〃闆嗗悎鏄剧ず鍖哄煙
         /// </summary>
@@ -53,40 +54,50 @@
             deleteAction = delAction;
             this.modifyImageAction = modifyImageAction;
         }
+
         /// <summary>
         /// 閲嶈浇鐣岄潰
         /// </summary>
-        void ReLoadPage()
+        public void ReLoadPage()
         {
-            bodyView.RemoveAll();
-            LoadPage();
+            if (bodyView != null)
+            {
+                bodyView.RemoveAll();
+                LoadPage();
+            }
         }
+
 
         public void LoadPage()
         {
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
 
-            new TopViewDiv(bodyView,room.roomName).LoadTopView_RoomTop(ReloadRoomName, skipEditPageAction);
+            new TopViewDiv(bodyView, room.roomName).LoadTopView_RoomTop(ReloadRoomName, skipEditPageAction);
 
             functionListView = new VerticalScrolViewLayout()
             {
                 Y = Application.GetRealHeight(64),
-                Height = Application.GetRealHeight(603-12),
+                Height = Application.GetRealHeight(603 - 12),
             };
             bodyView.AddChidren(functionListView);
 
-            foreach (var function in room.GetRoomFunctions(false))
+            var list = room.GetRoomFunctions(false);
+
+            foreach (var function in list)
             {
-                if (MainPage.RoomNotSupportFunctionList.Contains( function.spk))
+                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)
                 {
-                    var functionDiv = new FunctionControlZone(function)
+                    var functionDiv = new FunctionControlZone(function, null)
                     {
                         Gravity = Gravity.CenterHorizontal,
                         Width = Application.GetRealWidth(343),
@@ -102,7 +113,10 @@
                 }
                 else
                 {
-                    var functionDiv = new FunctionControlZone(function)
+                    var functionDiv = new FunctionControlZone(function, () =>
+                    {
+                        this.ReLoadPage();
+                    })
                     {
                         Gravity = Gravity.CenterHorizontal,
                         Width = Application.GetRealWidth(343),
@@ -117,22 +131,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}");
             }
         }
 
@@ -144,7 +168,7 @@
         /// </summary>
         public void LoadSceneRow(FrameLayout bodyDiv, Scene scene)
         {
-          var  btnIcon = new Button()
+            var btnIcon = new Button()
             {
                 X = Application.GetRealWidth(10),
                 Y = Application.GetRealHeight(15),
@@ -211,15 +235,15 @@
                 btnName.X = Application.GetRealWidth(52 + 16);
             }
             //鍔犺浇鍦烘櫙鎺у埗浜嬩欢
-            LoadEvent_ControlScene(btnName,btnFromFloor,bodyDiv,scene );
+            LoadEvent_ControlScene(btnName, btnFromFloor, bodyDiv, scene);
 
-            LoadEvent_FunctionCollection(btnCollectionIcon,scene);
+            LoadEvent_FunctionCollection(btnCollectionIcon, scene);
         }
 
         /// <summary>
         /// 鍔犺浇鍔熻兘鏀惰棌鎸夐挳浜嬩欢
         /// </summary>
-        void LoadEvent_FunctionCollection(Button btnCollectionIcon,Scene scene)
+        void LoadEvent_FunctionCollection(Button btnCollectionIcon, Scene scene)
         {
             btnCollectionIcon.MouseUpEventHandler += (sender, e) =>
             {
@@ -230,9 +254,10 @@
         /// <summary>
         /// 鍔犺浇鍦烘櫙鎺у埗浜嬩欢
         /// </summary>
-        void LoadEvent_ControlScene(Button btnName,Button btnFromFloor,FrameLayout bodyDiv, Scene scene)
+        void LoadEvent_ControlScene(Button btnName, Button btnFromFloor, FrameLayout bodyDiv, Scene scene)
         {
-            EventHandler<MouseEventArgs> upEvent = (sender, e) => {
+            EventHandler<MouseEventArgs> upEvent = (sender, e) =>
+            {
                 DriverLayer.Control.Ins.ControlScene(scene);
                 string msg = scene.name + Language.StringByID(StringId.AlreadyOpened);
                 new PublicAssmebly().TipMsgAutoClose(msg, false);
@@ -242,5 +267,6 @@
             bodyDiv.MouseUpEventHandler = upEvent;
         }
 
+
     }
 }

--
Gitblit v1.8.0