From e22fdb94322e6cec38e5e4a9aec13d431a133fde Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 28 四月 2020 16:32:35 +0800
Subject: [PATCH] 上传合并后的代码

---
 ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs |  123 ++++++++++++++++++++++++++++++-----------
 1 files changed, 90 insertions(+), 33 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
index d9c5abf..79e9432 100755
--- a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
@@ -438,8 +438,8 @@
             var noFunction = new Button()
             {
                 Y = Application.GetRealHeight(320),
-                Width = Application.GetMinRealAverage(757),
-                Height = Application.GetMinRealAverage(435),
+                Width = this.GetPictrueRealSize(757),
+                Height = this.GetPictrueRealSize(435),
                 UnSelectedImagePath = "Item/NoFunction.png",
                 Gravity = Gravity.CenterHorizontal
             };
@@ -477,6 +477,15 @@
             for (int i = 0; i < rowInfo.listDeviceKeys.Count; i++)
             {
                 var device = LocalDevice.Current.GetDevice(rowInfo.listDeviceKeys[i]);
+
+                //鑾峰彇璁惧绫诲瀷鐨�
+                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
+                //鏂伴闈㈡澘涓嬬殑鍥炶矾涓嶆樉绀猴紝锛堝鏂伴銆佹俯/婀垮害浼犳劅鍣ㄥ垯涓嶆樉绀猴級
+                if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFreshAir)
+                {
+                    continue;
+                }
+
                 if (device != null)
                 {
                     listDevice.Add(device);
@@ -513,6 +522,11 @@
                     else if (device.Type == DeviceType.Thermostat)
                     {
                         cardContr = new Controls.DeviceAcRowControl(listView.rowSpace / 2);
+                    }
+                    // 鏂伴
+                    else if (device.Type == DeviceType.FreshAir)
+                    {
+                        cardContr = new Controls.DeviceFreshAirRowControl(listView.rowSpace / 2);
                     }
                     //褰╃伅(璋冨厜鍣�)
                     else if (device.Type == DeviceType.DimmableLight)
@@ -640,23 +654,45 @@
             {
                 if (listview1 != null)
                 {
-                    //鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
-                    this.GetAllDelayScene(dicSceneContr, listview1);
+                    //鎵撳紑鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+                    this.StartAllDelayScene(dicSceneContr, listview1);
                 }
                 else
                 {
-                    //鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
-                    this.GetAllDelayScene(dicSceneContr, listview2);
+                    //鎵撳紑鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+                    this.StartAllDelayScene(dicSceneContr, listview2);
                 }
             }, ShowErrorMode.NO);
         }
 
         /// <summary>
-        /// 鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+        /// 鎵撳紑鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
         /// </summary>
         /// <param name="dicSceneContr"></param>
-        private async void GetAllDelayScene(Dictionary<int, SceneCategoryView> dicSceneContr, ViewGroup listview)
+        private async void StartAllDelayScene(Dictionary<int, SceneCategoryView> dicSceneContr, ViewGroup listview)
         {
+            string hourText = Language.StringByID(R.MyInternationalizationString.Hour);
+            string minuText = Language.StringByID(R.MyInternationalizationString.Minute);
+            string secondText = Language.StringByID(R.MyInternationalizationString.Second);
+
+            //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
+            if (Config.Instance.Home.IsVirtually == true)
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //寮�鍚欢鏃剁壒鏁�
+                    foreach (var myContr in dicSceneContr.Values)
+                    {
+                        if (myContr.scene.RemainTime > 0)
+                        {
+                            //寮�鍚満鏅欢鏃剁壒鏁�
+                            this.StartSceneDelayApeal(myContr, listview, myContr.scene.RemainTime, hourText, minuText, secondText);
+                        }
+                    }
+                }, ShowErrorMode.NO);
+                return;
+            }
+
             //璇诲彇鍏ㄩ儴鐨勫欢鏃舵椂闂�
             var result = await Scene.CatDelaySceneAsync();
             if (result == null || result.catDelaySceneResponseData == null ||
@@ -665,10 +701,6 @@
                 //鍑洪敊涓嶉笩瀹�
                 return;
             }
-
-            string hourText = Language.StringByID(R.MyInternationalizationString.Hour);
-            string minuText = Language.StringByID(R.MyInternationalizationString.Minute);
-            string secondText = Language.StringByID(R.MyInternationalizationString.Second);
 
             foreach (var data in result.catDelaySceneResponseData.DelayScenesList)
             {
@@ -685,30 +717,45 @@
                 {
                     continue;
                 }
-                HdlThreadLogic.Current.RunThread(() =>
+                //寮�鍚満鏅欢鏃剁壒鏁�
+                this.StartSceneDelayApeal(seceneContr, listview, remainTime, hourText, minuText, secondText);
+            }
+        }
+
+        /// <summary>
+        /// 寮�鍚満鏅欢鏃剁壒鏁�
+        /// </summary>
+        /// <param name="sceneContr"></param>
+        /// <param name="remainTime"></param>
+        /// <param name="hourText"></param>
+        /// <param name="minuText"></param>
+        /// <param name="secondText"></param>
+        private void StartSceneDelayApeal(SceneCategoryView sceneContr, ViewGroup listview, int remainTime,
+            string hourText, string minuText, string secondText)
+        {
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+                HdlSceneLogic.Current.StartDelayTimeThread(sceneContr.scene);
+                while (remainTime > 0 && this.Parent != null)
                 {
-                    //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
-                    HdlSceneLogic.Current.StartDelayTimeThread(seceneContr.scene);
-                    while (remainTime > 0 && this.Parent != null)
-                    {
-                        System.Threading.Thread.Sleep(1000);
-                        Application.RunOnMainThread(() =>
-                        {
-                            seceneContr.SetTimeText(this.GetTimeString(remainTime, hourText, minuText, secondText));
-                        });
-                        remainTime--;
-                    }
+                    System.Threading.Thread.Sleep(1000);
                     Application.RunOnMainThread(() =>
                     {
-                        if (listview.Parent != null)
-                        {
-                            seceneContr.SetTimeImage();
-                            //寮�鍚疞oading鐗规晥
-                            seceneContr.StartLoadingApreal();
-                        }
+                        sceneContr.SetTimeText(this.GetTimeString(remainTime, hourText, minuText, secondText));
                     });
+                    remainTime--;
+                }
+                Application.RunOnMainThread(() =>
+                {
+                    if (listview.Parent != null)
+                    {
+                        sceneContr.SetTimeImage();
+                        //寮�鍚疞oading鐗规晥
+                        sceneContr.StartLoadingApreal();
+                    }
                 });
-            }
+            });
         }
 
         /// <summary>
@@ -719,8 +766,8 @@
             var noFunction = new Button()
             {
                 Y = Application.GetRealHeight(320),
-                Width = Application.GetMinRealAverage(757),
-                Height = Application.GetMinRealAverage(435),
+                Width = this.GetPictrueRealSize(757),
+                Height = this.GetPictrueRealSize(435),
                 UnSelectedImagePath = "Item/NoFunction.png",
                 Gravity = Gravity.CenterHorizontal
             };
@@ -764,6 +811,11 @@
                         if (report.DeviceStatusReport.CluterID == 513 && report.DeviceStatusReport.AttriBute[0].AttributeId == 28)
                         {
                             //绌鸿皟鏄壒娈婄殑,瀹冪殑寮�鍏虫槸灞炴�т笂鎶ユ潵鐫�.宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+                            this.dicDeviceRowControl[mainKeys].SetHadGetResponeResultStatu();
+                        }
+                        if (report.DeviceStatusReport.CluterID == 514 && report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+                        {
+                            //鏂伴鏄壒娈婄殑,瀹冪殑寮�鍏虫槸灞炴�т笂鎶ユ潵鐫�.宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
                             this.dicDeviceRowControl[mainKeys].SetHadGetResponeResultStatu();
                         }
                         this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
@@ -872,6 +924,11 @@
                     LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
                     dic[typeInfo.BeloneTextId].IconPath = path1;
                     dic[typeInfo.BeloneTextId].IconPathSelected = path2;
+                    if (device.Type == DeviceType.FreshAir)
+                    {
+                        dic[typeInfo.BeloneTextId].IconPath = "Device/FreshAirEpoint.png";
+                        dic[typeInfo.BeloneTextId].IconPathSelected = "Device/FreshAirEpointSelected.png";
+                    }
                     dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
                 }
                 dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));

--
Gitblit v1.8.0