From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 17 十二月 2020 09:07:13 +0800
Subject: [PATCH] 新云端Ver1.3

---
 ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs |   85 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 70 insertions(+), 15 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
index 045ed5d..c793d2b 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
@@ -70,7 +70,9 @@
             //鍦烘櫙鐐瑰嚮
             sceneContr.ButtonClickEvent += (sender, e) =>
             {
-                this.SceneUpHandler();
+                //涓嶈兘鍙嶅鐐瑰嚮
+                sceneContr.CanClick = false;
+                this.SceneUpHandler(sceneContr);
             };
 
             //鏀惰棌
@@ -87,7 +89,7 @@
             this.btnDelayTime = new NormalViewControl(400, 58, true);
             btnDelayTime.X = Application.GetRealWidth(580);
             btnDelayTime.Y = Application.GetRealHeight(317);
-            btnDelayTime.Text = CommonFormResouce.GetTimeString(scene.SceneDelayTime);
+            btnDelayTime.Text = this.GetTimeString(scene.SceneDelayTime);
             btnDelayTime.TextAlignment = TextAlignment.CenterRight;
             btnDelayTime.TextColor = ZigbeeColor.Current.GXCTextSelectedColor3;
             btnDelayTime.IsBold = true;
@@ -181,7 +183,7 @@
                     var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id);
                     if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null)
                     {
-                        CommonPage.Instance.FailureToServer();
+                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.RequestServerFailed));
                         return;
                     }
                     //1鎴愬姛
@@ -193,7 +195,7 @@
                     //0 绉婚櫎澶辫触
                     else if (removeSceneAllData.removeSceneData.Result == 0)
                     {
-                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
+                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
                         return;
                     }
                     //2 娌℃湁璇ュ満鏅�
@@ -232,7 +234,7 @@
             {
                 if (scene.RemainTime > 0)
                 {
-                    CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying));
+                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying));
                     return;
                 }
                 var timeSelect = new SelectTime();
@@ -243,8 +245,13 @@
                 {
                     //闅愯棌鍙冲垝鑿滃崟
                     this.HideMenu();
-                    scene.SceneDelayTime = t;
-                    btnDelayTime.Text = CommonFormResouce.GetTimeString(t);
+                    if (t != 0)
+                    {
+                        scene.SceneDelayTime = t;
+                        btnDelayTime.Text = this.GetTimeString(t);
+                        //缂栬緫寤舵椂鏃�,闇�瑕佸埛鏂颁富椤�
+                        UserView.UserPage.Instance.RefreshAllForm = true;
+                    }
                 };
             };
         }
@@ -254,9 +261,8 @@
         /// <summary>
         /// 
         /// </summary>
-        /// <param name="btnScenePic"></param>
-        /// <param name="btnSceneName"></param>
-        private async void SceneUpHandler()
+        /// <param name="sceneContr"></param>
+        private async void SceneUpHandler(ScenePictrueControl sceneContr)
         {
             if (scene.SceneDelayTime <= 0 && scene.RemainTime <= 0)
             {
@@ -267,6 +273,7 @@
             var result = await HdlSceneLogic.Current.ControlScene(scene);
             if (result == false)
             {
+                sceneContr.CanClick = true;
                 return;
             }
             
@@ -274,8 +281,12 @@
             scene.SceneDelayTime = 0;
             if (scene.RemainTime <= 0)
             {
+                sceneContr.CanClick = true;
                 return;
             }
+            //璋冪敤鏈夊欢鏃剁殑鍦烘櫙,闇�瑕佸埛鏂颁富椤�
+            UserView.UserPage.Instance.RefreshAllForm = true;
+
             int myRemainTime = scene.RemainTime;
             //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
             HdlSceneLogic.Current.StartDelayTimeThread(scene);
@@ -285,21 +296,22 @@
                 while (myRemainTime > 0 && this.Parent != null)
                 {
                     System.Threading.Thread.Sleep(1000);
-                    Application.RunOnMainThread(() =>
+                    HdlThreadLogic.Current.RunMain(() =>
                     {
-                        SetTimeText(CommonFormResouce.GetTimeString(scene.RemainTime));
-                    });
+                        SetTimeText(this.GetTimeString(scene.RemainTime));
+                    }, ShowErrorMode.NO);
                     myRemainTime--;
                 }
-                Application.RunOnMainThread(() =>
+                HdlThreadLogic.Current.RunMain(() =>
                 {
                     if (this.Parent != null)
                     {
                         SetTimeImage();
                         //鐩存帴寮�鍚疞oading鐗规晥
                         this.StartLoadingApreal();
+                        sceneContr.CanClick = true;
                     }
-                });
+                }, ShowErrorMode.NO);
             })
             { IsBackground = true }.Start();
         }
@@ -360,6 +372,49 @@
         }
 
         /// <summary>
+        /// 鑾峰彇鍦烘櫙寤舵椂瀛楃涓�
+        /// </summary>
+        /// <param name="second"></param>
+        /// <returns></returns>
+        private string GetTimeString(int second)
+        {
+            if (second == 0)
+            {
+                return null;
+            }
+            string timeStr = string.Empty;
+            int hour = second / 3600;
+            int minu = second % 3600 / 60;
+            int sec = second % 60;
+            if (hour > 0)
+            {
+                timeStr += $"{hour}{Language.StringByID(R.MyInternationalizationString.Hour)}";
+                if (minu > 0)
+                {
+                    timeStr += $"{minu}{Language.StringByID(R.MyInternationalizationString.Minute)}";
+                }
+                if (sec > 0)
+                {
+                    timeStr += $"{sec}{Language.StringByID(R.MyInternationalizationString.Second)}";
+                }
+                return timeStr;
+            }
+            else if (minu > 0)
+            {
+                timeStr += $"{minu}{Language.StringByID(R.MyInternationalizationString.Minute)}";
+                if (sec > 0)
+                {
+                    timeStr += $"{sec}{Language.StringByID(R.MyInternationalizationString.Second)}";
+                }
+                return timeStr;
+            }
+            else
+            {
+                return $"{sec}{Language.StringByID(R.MyInternationalizationString.Second)}";
+            }
+        }
+
+        /// <summary>
         /// 鑷畾涔夋帶浠�(闇�瑕佺殑瀹冪Щ闄や簨浠�)
         /// </summary>
         private class MyProgressLoading : ProgressLoading

--
Gitblit v1.8.0