From 9c33e4ccb90fae87a614abd2ed1ab034d3b7a13d Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 26 三月 2021 11:26:01 +0800
Subject: [PATCH] 2021-03-26 1.对接接口优化。

---
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs |   65 +++++++++++++++++++++++---------
 1 files changed, 46 insertions(+), 19 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
index 46137ff..4f9c820 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
@@ -255,7 +255,7 @@
                     TextAlignment = TextAlignment.CenterRight,
                     TextColor = CSS_Color.PromptingColor1,
                     TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                    Text = FunctionList.List.GetDelayText(scene.delay.ToString())
+                    Text = scene.GetDelayText()
                 };
                 sceneDelayRow.AddChidren(btnSceneDelayInfo);
 
@@ -270,14 +270,18 @@
                 };
                 sceneDelayRow.AddChidren(btnSceneDelayTitle);
 
-
                 btnSceneDelayTitle.MouseUpEventHandler = (sender, e) =>
                 {
                     Action<string> action = (obj) => {
                         scene.delay = obj;
-                        btnSceneDelayInfo.Text = FunctionList.List.GetDelayText(obj);
+                        btnSceneDelayInfo.Text = scene.GetDelayText();
                     };
-                    new PublicAssmebly().SetSceneDelayDialog(action ,scene.delay);
+                    Dictionary<string, string> items = new Dictionary<string, string>();
+                    items.Add("30", "30s");
+                    items.Add("60", "1min");
+                    items.Add("120", "2min");
+                    items.Add("300", "5min");
+                    new PublicAssmebly().SetSceneDelayDialog(items, action ,scene.delay);
                 };
 
                 contentView.AddChidren(new Button()
@@ -423,7 +427,7 @@
 
                 if (Convert.ToInt32(scenefunction.delay) > 0)
                 {
-                    btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + FunctionList.List.GetDelayText(scenefunction.delay);
+                    btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + new Scene() { delay = scenefunction.delay }.GetDelayText();
                 }
                 else
                 {
@@ -506,16 +510,16 @@
             var fanState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed);
             if (modeState != null)
             {
-                sceneFunctionInfo += FunctionList.List.GetValueText(modeState.key, modeState.value);
+                sceneFunctionInfo += modeState.GetValueText();
             }
             if (tempState != null)
             {
-                sceneFunctionInfo += FunctionList.List.GetValueText(tempState.key, tempState.value);
-                sceneFunctionInfo += FunctionList.List.GetUintString(tempState.key);
+                sceneFunctionInfo += tempState.GetValueText();
+                sceneFunctionInfo += tempState.GetUintString();
             }
             if (fanState != null)
             {
-                sceneFunctionInfo += FunctionList.List.GetValueText(fanState.key, fanState.value);
+                sceneFunctionInfo += tempState.GetValueText();
             }
             var briState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness);
             if (briState != null)
@@ -824,17 +828,40 @@
                         return;
                     }
                 }
-                var result = FunctionList.List.AddScene(scene,out scene);
-                if (result == StateCode.SUCCESS)
+                var waitPage = new Loading();
+                MainPage.BaseView.AddChidren(waitPage);
+                waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                new System.Threading.Thread(() =>
                 {
-                    FunctionList.List.scenes.Add(scene);
-                    backAction();
-                    RemoveFromParent();
-                }
-                else
-                {
-                    IMessageCommon.Current.ShowErrorInfoAlter(result);
-                }
+                    try
+                    {
+                        var serverScene = new Scene();
+                        var result = FunctionList.List.AddScene(scene, out serverScene);
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (result == StateCode.SUCCESS)
+                            {
+                                scene = serverScene;
+                                FunctionList.List.scenes.Add(scene);
+                                backAction();
+                                RemoveFromParent();
+                            }
+                            else
+                            {
+                                IMessageCommon.Current.ShowErrorInfoAlter(result);
+                            }
+                        });
+                    }
+                    catch { }
+                    finally
+                    {
+                        Application.RunOnMainThread(() => {
+                            waitPage.Hide();
+                            waitPage.RemoveFromParent();
+                        });
+                    }
+                })
+                { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start();
             };
         }
 

--
Gitblit v1.8.0