From a9d1161b1df96e7ddad566335989a1444e433ef5 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 28 三月 2023 11:54:45 +0800
Subject: [PATCH] 2023年03月28日11:52:02

---
 HDL_ON/UI/UI2/2-Classification/FunctionPage.cs |  186 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 148 insertions(+), 38 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
index 0af5488..5ba2bed 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
@@ -182,59 +182,169 @@
             {
                 functionList.AddRange(FunctionList.List.GetAirFreshList());
             }
-            functionList.OrderByDescending(o => o.controlCounter).ToList();
+            else if(titleId == StringId.MechanicalArm)
+            {
+                functionList.AddRange(FunctionList.List.GetMechanicalArmList());
+            }
+            else if(titleId == StringId.SecurityMonitoring)
+            {
+                functionList.AddRange(FunctionList.List.GetIpCamImouList());
+            }
+            functionList = functionList.OrderByDescending(o => o.controlCounter).ToList();
 
             ShowFunctionRow(functionList);
 
             LoadDialog_ChangeFloor();
-        }
 
+
+            #region 鍔犺浇缁勫悎璋冨厜鍦烘櫙
+            if (titleId == StringId.Lights)
+            {
+                foreach (var lightScene in FunctionList.List.scenes)
+                {
+                    if (lightScene.sceneType == SceneType.LightScene)
+                        if (lightScene != null)
+                        {
+                            functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) });
+                            var sceneRow = new SceneControlZone(lightScene);
+                            functionListView.AddChidren(sceneRow);
+                            sceneRow.LoadView();
+                        }
+                }
+            }
+            #endregion
+
+        }
+        /// <summary>
+        /// 鏄剧ず鐨勮澶囩殑鎬绘暟
+        /// </summary>
+        int showCount = 0;
         /// <summary>
         /// 鍔犺浇鍔熻兘row
         /// </summary>
-        void ShowFunctionRow(List<Function> showList)
+        void ShowFunctionRow(List<Function> showList, bool isAppend = false)
         {
-            functionListView.RemoveAll();
-            foreach (var function in showList)
+            var waitPage = new Loading();
+            bodyView.AddChidren(waitPage);
+            waitPage.Start("");
+
+            new System.Threading.Thread(() =>
             {
-                if(function.spk == SPK.SensorDryContact|| function.spk == SPK.SensorDryContact2)
+                try
                 {
-                    continue;
-                }
-                if (function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
-                {
-                    var functionDiv = new FunctionControlZone(function)
+                    Application.RunOnMainThread(() =>
                     {
-                        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 = function.spk + function.sid
-                    };
-                    functionDiv.LoadFunctionDiv();
-                    functionListView.AddChidren(functionDiv);
+                        if (!isAppend)
+                        {
+                            showCount = 0;
+                            functionListView.RemoveAll();
+                        }
+                        int i = 0;
+                        foreach (var function in showList)
+                        {
+                            i++;
+                            if (i > 50)
+                            {
+                                break;
+                            }
+                            showCount++;
+
+                            if (function.spk == SPK.SensorDryContact || function.spk == SPK.SensorDryContact2)
+                            {
+                                continue;
+                            }
+                            if (function.spk == SPK.LightRGBW || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
+                            {
+                                var functionDiv = new FunctionControlZone(function)
+                                {
+                                    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 = function.spk + function.sid
+                                };
+                                functionDiv.LoadFunctionDiv();
+                                functionListView.AddChidren(functionDiv);
+                            }
+                            else if (function.spk == SPK.IpCam_Imou)
+                            {
+                                var functionDiv = new FunctionControlZone(function)
+                                {
+                                    Gravity = Gravity.CenterHorizontal,
+                                    Width = Application.GetRealWidth(343),
+                                    Height = Application.GetRealHeight(96),
+                                    Radius = (uint)Application.GetMinRealAverage(12),
+                                    BorderColor = 0x00FFFFFF,
+                                    BorderWidth = 1,
+                                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                                    Tag = function.spk + function.sid
+                                };
+                                functionDiv.LoadFunctionDiv();
+                                functionListView.AddChidren(functionDiv);
+
+                            }
+                            else
+                            {
+                                var functionDiv = new FunctionControlZone(function)
+                                {
+                                    Gravity = Gravity.CenterHorizontal,
+                                    Width = Application.GetRealWidth(343),
+                                    Height = Application.GetRealHeight(96),
+                                    Radius = (uint)Application.GetMinRealAverage(12),
+                                    BorderColor = 0x00FFFFFF,
+                                    BorderWidth = 1,
+                                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                                    Tag = function.spk + function.sid
+                                };
+                                functionDiv.LoadFunctionDiv();
+                                functionListView.AddChidren(functionDiv);
+                            }
+                            functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(10) });
+                        }
+                        if (showList.Count > showCount)
+                        {
+                            var btnAppend = new Button()
+                            {
+                                Height = Application.GetRealHeight(60),
+                                TextAlignment = TextAlignment.Center,
+                                TextSize = CSS_FontSize.SubheadingFontSize,
+                                TextColor = CSS_Color.FirstLevelTitleColor,
+                                Text = "鍔犺浇鏇村",
+                            };
+                            if (Language.CurrentLanguage != "Chinese")
+                            {
+                                btnAppend.Text = "Load more";
+                            }
+                            functionListView.AddChidren(btnAppend);
+                            btnAppend.MouseUpEventHandler = (sender, e) =>
+                            {
+                                btnAppend.RemoveFromParent();
+                                ShowFunctionRow(showList, true);
+                            };
+                        }
+
+                    });
                 }
-                else
+                catch (Exception ex)
                 {
-                    var functionDiv = new FunctionControlZone(function)
-                    {
-                        Gravity = Gravity.CenterHorizontal,
-                        Width = Application.GetRealWidth(343),
-                        Height = Application.GetRealHeight(96),
-                        Radius = (uint)Application.GetMinRealAverage(12),
-                        BorderColor = 0x00FFFFFF,
-                        BorderWidth = 1,
-                        BackgroundColor = CSS_Color.MainBackgroundColor,
-                        Tag = function.spk + function.sid
-                    };
-                    functionDiv.LoadFunctionDiv();
-                    functionListView.AddChidren(functionDiv);
+                    MainPage.Log("ShowFunctionRowError : " + ex.Message);
                 }
-                functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(10) });
-            }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        if (waitPage != null)
+                        {
+                            waitPage.RemoveFromParent();
+                            waitPage = null;
+                        }
+                    });
+                }
+            })
+            { IsBackground = true }.Start();
         }
 
 

--
Gitblit v1.8.0