From 6edb41a89f56634a0684dedf65b29f9277002c7f Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期四, 21 十一月 2019 17:58:15 +0800
Subject: [PATCH] 2019.11.21

---
 ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs |  147 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 141 insertions(+), 6 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs
index 9318ae8..9db4035 100644
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs
@@ -26,9 +26,17 @@
         /// </summary>
         private Button CardBG;
         /// <summary>
+        /// sceneBG
+        /// </summary>
+        public Button sceneBG;
+        /// <summary>
         /// v_Selected
         /// </summary>
         private bool v_Selected;
+        /// <summary>
+        /// scene
+        /// </summary>
+        public SceneUI scene;
 
         /// <summary>
         /// IsSelected
@@ -61,9 +69,10 @@
         /// <summary>
         /// init
         /// </summary>
-        public void Init()
+        public void Init(SceneUI sceneUI)
         {
-           
+            this.scene = sceneUI;
+
             CardBG = new Button
             {
                 Width = Application.GetMinRealAverage(487),
@@ -82,7 +91,7 @@
             };
             AddChidren(SceneIcon);
 
-            var sceneBG = new Button
+            sceneBG = new Button
             {
                 Width = Application.GetMinRealAverage(487),
                 Height = Application.GetMinRealAverage(348),
@@ -99,7 +108,6 @@
                 Height = Application.GetMinRealAverage(63),
                 TextColor = ZigbeeColor.Current.GXCTextSelectedColor3,
                 TextAlignment = TextAlignment.CenterLeft,
-                Text="58s"
             };
             AddChidren(TimeButton);
 
@@ -123,12 +131,25 @@
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                 SelectedTextColor = ZigbeeColor.Current.GXCTextSelectedColor,
                 TextAlignment = TextAlignment.CenterLeft,
-                Text="璧峰簥"
             };
             AddChidren(SceneNameButton);
-            
+
+            InitStatu();
         }
 
+        private void InitStatu()
+        {
+            SetIimeByDelayTime(scene.SceneDelayTime);
+            SetSceneNameText(scene.Name);
+            SetIcon(scene.IconPath);
+            SetCollect(Common.Room.CurrentRoom.GetLoveRoom().SceneUIFilePathList.Contains(scene.FileName));
+
+            TimeButton.MouseUpEventHandler += SetTimeEvents;
+            CollectButton.MouseUpEventHandler += CollectionEvent;
+            SceneIcon.MouseUpEventHandler += SceneUpHandler;
+            sceneBG.MouseUpEventHandler += SceneUpHandler;
+            SceneNameButton.MouseUpEventHandler += SceneUpHandler;
+        }
 
         /// <summary>
         /// SetTimeText
@@ -151,6 +172,22 @@
             TimeButton.Height = Application.GetMinRealAverage(63);
             TimeButton.UnSelectedImagePath = "Item/Time.png";
             TimeButton.Text = string.Empty;
+        }
+
+        /// <summary>
+        /// SetIimeByDelayTime
+        /// </summary>
+        /// <param name="time"></param>
+        public void SetIimeByDelayTime(int time)
+        {
+            if (time > 0)
+            {
+                SetTimeText(CommonFormResouce.GetTimeString(time));
+            }
+            else
+            {
+                SetTimeImage();
+            }
         }
 
         /// <summary>
@@ -179,5 +216,103 @@
         {
             CollectButton.IsSelected = collect;
         }
+
+        /// <summary>
+        /// 璋冪敤鍦烘櫙
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="args"></param>
+        private async void SceneUpHandler(object sender, MouseEventArgs args)
+        {
+            if (scene.RemainTime > 0 && scene.SceneDelayTime == 0)
+            {
+                return;
+            }
+            //1鎴愬姛 0澶辫触
+            //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず
+            // Error鍙傛暟鍚箟
+            //<para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para>
+            //<para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁
+            //<para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para>
+            //<para>4锛氬叾浠栭敊璇�</para>
+            //<para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para>
+            var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime);
+
+            if (sceneOpenAllData == null || sceneOpenAllData.sceneOpenData == null)
+            {
+                return;
+            }
+            if (sceneOpenAllData.sceneOpenData.Result == 0)
+            {
+                if (sceneOpenAllData.errorResponData == null)
+                {
+                    return;
+                }
+                CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail);
+            }
+
+            var times = scene.SceneDelayTime;
+            scene.RemainTime = times;
+            scene.SceneDelayTime = 0;
+            new System.Threading.Thread(() =>
+            {
+                while (times > 0)
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    Application.RunOnMainThread(() =>
+                    {
+                        SetTimeText(CommonFormResouce.GetTimeString(times));
+                    });
+                    times -= 1;
+                }
+                Application.RunOnMainThread(() =>
+                {
+                    SetTimeImage();
+                });
+            })
+            { IsBackground = true }.Start();
+        }
+
+        /// <summary>
+        /// 鏀惰棌
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="mouseEventArgs"></param>
+        private void  CollectionEvent(object sender,MouseEventArgs mouseEventArgs)
+        {
+            (sender as Button).IsSelected = !(sender as Button).IsSelected;
+            if ((sender as Button).IsSelected)
+            {
+                Shared.Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene);
+            }
+            else
+            {
+                Shared.Common.Room.CurrentRoom.GetLoveRoom().RemoveScene(scene);
+            }
+            scene.Save();
+        }
+
+        /// <summary>
+        /// setTimeEvent
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="mouseEventArgs"></param>
+        private void SetTimeEvents(object sender, MouseEventArgs mouseEventArgs)
+        {
+            if (scene.RemainTime > 0)
+            {
+                return;
+            }
+            var timeSelect = new SelectTime();
+            CommonPage.Instance.AddChidren(timeSelect);
+            timeSelect.TempTime = scene.DelayTime;
+            timeSelect.Init();
+            timeSelect.TimeAction = (t) =>
+            {
+                scene.SceneDelayTime = t;
+                SetIimeByDelayTime(t);
+            };
+        }
+
     }
 }

--
Gitblit v1.8.0