gxc
2019-12-16 40f46f32cb00f4304a691d4f027a76a13a9ebb6d
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