From 40f46f32cb00f4304a691d4f027a76a13a9ebb6d Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期一, 16 十二月 2019 15:11:36 +0800
Subject: [PATCH] 2019.12.16

---
 ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs |   82 +++++++++++++++++++---------------------
 1 files changed, 39 insertions(+), 43 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
index d3163c0..a26095e 100644
--- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -1696,63 +1696,59 @@
         /// GetDelayScene
         /// </summary>
         /// <param name="scrolViewLayout"></param>
-        private void GetDelayScene(VerticalScrolViewLayout scrolViewLayout)
+        private async void GetDelayScene(VerticalScrolViewLayout scrolViewLayout)
         {
-            new System.Threading.Thread(async () =>
-            {
-                var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync();
-                if (catDelaySceneResponseAllData == null)
-                {
-                    return;
-                }
-                var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData;
-                if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0)
-                {
-                    return;
-                }
-                var delayList = catDelaySceneResponseData.DelayScenesList;
 
-                Application.RunOnMainThread(() =>
+            var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync();
+            if (catDelaySceneResponseAllData == null)
+            {
+                return;
+            }
+            var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData;
+            if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0)
+            {
+                return;
+            }
+            var delayList = catDelaySceneResponseData.DelayScenesList;
+
+            for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++)
+            {
+                var iView = scrolViewLayout.GetChildren(i) as FrameLayout;
+                for (int j = 0; iView != null && j < iView.ChildrenCount; j++)
                 {
-                    for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++)
+                    var sceneView = iView.GetChildren(j) as SceneMainView;
+                    foreach (var delayScenesListResponseInfo in delayList)
                     {
-                        var iView = scrolViewLayout.GetChildren(i) as FrameLayout;
-                        for (int j = 0; iView != null && j < iView.ChildrenCount; j++)
+                        if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id)
                         {
-                            var sceneView = iView.GetChildren(j) as SceneMainView;
-                            foreach (var delayScenesListResponseInfo in delayList)
+                            var remainTime = delayScenesListResponseInfo.RemainTime;
+                            sceneView.scene.RemainTime = remainTime;
+
+                            if (remainTime > 0)
                             {
-                                if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id)
+                                new System.Threading.Thread(() =>
                                 {
-                                    var times = delayScenesListResponseInfo.RemainTime;
-                                    sceneView.scene.RemainTime = times;
-                                    new System.Threading.Thread(() =>
+                                    while (remainTime-- > 0)
                                     {
-                                        while (times > 0)
-                                        {
-                                            System.Threading.Thread.Sleep(1000);
-                                            Application.RunOnMainThread(() =>
-                                            {
-                                                sceneView.SetTimeText(CommonFormResouce.GetTimeString(times));
-                                            });
-                                            times -= 1;
-                                        }
+                                        System.Threading.Thread.Sleep(1000);
                                         Application.RunOnMainThread(() =>
                                         {
-                                            sceneView.SetTimeImage();
+                                            sceneView.SetTimeText(CommonFormResouce.GetTimeString(remainTime));
                                         });
-                                    })
-                                    { IsBackground = true }.Start();
-
-                                    break;
-                                }
+                                    }
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        sceneView.scene.RemainTime = 0;
+                                        sceneView.SetTimeImage();
+                                    });
+                                })
+                                { IsBackground = true }.Start();
                             }
-
+                            break;
                         }
                     }
-                });
-            })
-            { IsBackground = true }.Start();
+                }
+            }
         }
 
         #endregion

--
Gitblit v1.8.0