From 4f2dbd1f6a1ec2d9c3c39b4a37b0b7c9ddece4aa Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 23 九月 2021 15:24:01 +0800
Subject: [PATCH] 主页刷新优化

---
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs |  165 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 156 insertions(+), 9 deletions(-)

diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index 63b97f5..a99dee1 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -27,6 +27,12 @@
         /// </summary>
         Button btnLinkStateTip;
         /// <summary>
+        /// 瀹夐槻鐘舵�佸浘鏍�
+        /// </summary>
+        Button btnSecurityStatus;
+
+
+        /// <summary>
         ///浣忓畢鍚嶇О鏄剧ず
         /// </summary>
         Button btnResidenceName;
@@ -129,6 +135,10 @@
                     this.EndHeaderRefreshing();
                     Common.ApiUtlis.Ins.DownloadData();
                     LoadContentView();
+                    if(!CurShowTypeIsFunction)
+                    {
+                        contentView.PageIndex = 1;
+                    }
                 };
 
                 #region topView
@@ -194,6 +204,34 @@
                 #region 鐜鏁版嵁
                 var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature);
                 var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity);
+                var enviList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => SPK.EvironmentSensorList().Contains(obj.spk));
+                foreach (var enviTemp in enviList)
+                {
+                    var humiAttr = enviTemp.attributes.Find((obj) => obj.key == "humidity");
+                    if (humiAttr != null)
+                    {
+                        var newTemp = new Function()
+                        {
+                            name = enviTemp.name,
+                            sid = enviTemp.sid,
+                            deviceId = enviTemp.deviceId,
+                            attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = humiAttr.state, curValue = humiAttr.curValue } },
+                        };
+                        humiSensorList.Add(newTemp);
+                    }
+                    var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "temperature");
+                    if (tempAttr != null)
+                    {
+                        var newTemp = new Function()
+                        {
+                            name = enviTemp.name,
+                            sid = enviTemp.sid,
+                            deviceId = enviTemp.deviceId,
+                            attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } },
+                        };
+                        tempSensorList.Add(newTemp);
+                    }
+                }
 
                 var btnEnvirValuesTitle = new Button() {
                     X = Application.GetRealWidth(12),
@@ -245,15 +283,20 @@
                 {
                     btnIndoorTempValues.Text = "/--掳";
                     double tempTotalValues = 0;
+                    double tempTotalCount = 0;
                     foreach (var temp in tempSensorList)
                     {
                         double tempValue = 0;
                         double.TryParse(temp.GetAttrState(FunctionAttributeKey.Value), out tempValue);
-                        tempTotalValues += tempValue;
+                        if (tempValue > 0)
+                        {
+                            tempTotalValues += tempValue;
+                            tempTotalCount++;
+                        }
                     }
                     if (tempTotalValues > 0)
                     {
-                        btnIndoorTempValues.Text = "/" + tempTotalValues + "掳";
+                        btnIndoorTempValues.Text = "/" + (tempTotalValues/ tempTotalCount).ToString("0.0") + "掳";
                     }
                 }
                 btnIndoorTempValues.Width = btnIndoorTempValues.GetTextWidth();
@@ -294,15 +337,20 @@
                 {
                     btnIndoorHumiValues.Text = "/--%";
                     double humiTotalValues = 0;
+                    double humiTotalCount = 0;
                     foreach (var humi in humiSensorList)
                     {
                         double humiValue = 0;
                         double.TryParse(humi.GetAttrState(FunctionAttributeKey.Value), out humiValue);
-                        humiTotalValues += humiValue;
+                        if (humiValue > 0)
+                        {
+                            humiTotalValues += humiValue;
+                            humiTotalCount++;
+                        }
                     }
                     if (humiTotalValues > 0)
                     {
-                        btnIndoorHumiValues.Text = "/" + humiTotalValues + "%";
+                        btnIndoorHumiValues.Text = "/" + (humiTotalValues / humiTotalCount).ToString("0") + "%";
                     }
                 }
                 btnIndoorHumiValues.Width = btnIndoorHumiValues.GetTextWidth();
@@ -330,6 +378,44 @@
                 btnPm25Values.Width = btnPm25Values.GetTextWidth();
                 environmentalView.AddChidren(btnPm25Values);
                 #endregion
+
+                btnSecurityStatus = new Button()
+                {
+                    X = Application.GetRealWidth(329),
+                    Y = Application.GetRealHeight(34),
+                    Width = Application.GetRealWidth(30),
+                    Height = Application.GetRealWidth(30),
+                    SelectedImagePath = "Collection/DefenseStatusIcon.png",
+                    UnSelectedImagePath = "Collection/DisarmStatusIcon.png"
+                };
+                if (DB_ResidenceData.Instance.GatewayType == 1)
+                {
+                    topView.AddChidren(btnSecurityStatus);
+                    foreach (var temp in FunctionList.List.securities)
+                    {
+                        if (temp.status == "enable")
+                        {
+                            btnSecurityStatus.IsSelected = true;
+                            if (temp.alarm)
+                            {
+                                btnSecurityStatus.SelectedImagePath = "Collection/DefenseAlarmIcon.png";
+                            }
+                            else
+                            {
+                                btnSecurityStatus.SelectedImagePath = "Collection/DefenseStatusIcon.png";
+                            }
+                            break;
+                        }
+                    }
+
+                    btnSecurityStatus.MouseUpEventHandler = (sender, e) => {
+                        var page = new ArmCenterPage();
+                        MainPage.BasePageView.AddChidren(page);
+                        page.LoadPage();
+                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    };
+                }
+
 
                 #region msg
                 FrameLayout msgView;
@@ -463,6 +549,50 @@
 
 
 #if DEBUG
+
+
+            FunctionList.List.Functions.Add(new Function()
+            {
+                spk = SPK.SensorDryContact,
+                name = "骞叉帴鐐�",
+                attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = "status",curValue= "on",state = "on" },
+                },
+            });
+
+            FunctionList.List.Functions.Add(new Function()
+            {
+                spk = SPK.AirSwitch,
+                name = "鏅鸿兘绌哄紑",
+                attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                },
+            });
+
+            //FunctionList.List.Functions.Add(new Function()
+            //{
+            //    spk = SPK.AirFreshStandard,
+            //    name = "娴嬭瘯鏂伴",
+            //    attributes = new List<FunctionAttributes>()
+            //    {
+            //        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+            //        new FunctionAttributes(){ key = "fan",curValue= "low",state = "low" ,value = new List<string>(){ "high", "medium", "low" } },
+            //    },
+            //});
+
+            //FunctionList.List.Functions.Add(new Function()
+            //{
+            //    spk = SPK.SensorGas,
+            //    name = "鐕冩皵浼犳劅鍣�",
+            //    attributes = new List<FunctionAttributes>()
+            //    {
+            //        new FunctionAttributes(){ key = "enable",curValue= "true",state = "true" ,value = new List<string>(){ "true", "false" } },
+            //        new FunctionAttributes(){ key = "status",curValue= "normal",state = "normal" ,value = new List<string>(){ "alarm", "normal" } },
+            //    },
+            //});
+
             //FunctionList.List.Functions.Add(new Function() { spk = SPK.PjtIr, name = "娴嬭瘯鎶曞奖浠�",
             //                            attributes = new List<FunctionAttributes>() {
             //                                new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
@@ -578,8 +708,13 @@
                             sceneFunctionView = new VerticalScrolViewLayout();
                             contentView.AddChidren(sceneFunctionView);
                             LoadSceneFunctionControlZone();
-                            contentView.PageIndex = 0;
-
+                            if (CurShowTypeIsFunction)
+                            {
+                                contentView.PageIndex = 0;
+                            }else
+                            {
+                                contentView.PageIndex = 1;
+                            }
 
                             LoadEvent_ChangeShowedFunctionType();
 
@@ -587,7 +722,11 @@
                             GetUnreadPushMessages();
                             RegisterGetPushMessageAction();
 
-                            waitPage.Hide();
+                            if (waitPage != null)
+                            {
+                                waitPage.RemoveFromParent();
+                                waitPage = null;
+                            }
                         });
                     }
                     catch (Exception ex) {
@@ -606,7 +745,15 @@
                 sceneFunctionView = new VerticalScrolViewLayout();
                 contentView.AddChidren(sceneFunctionView);
                 LoadSceneFunctionControlZone();
-                contentView.PageIndex = 0;
+
+                if (CurShowTypeIsFunction)
+                {
+                    contentView.PageIndex = 0;
+                }
+                else
+                {
+                    contentView.PageIndex = 1;
+                }
 
 
                 LoadEvent_ChangeShowedFunctionType();
@@ -1127,7 +1274,7 @@
                     Width = Application.GetRealWidth(32),
                     UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png",
                 };
-                if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+                if (scene.userId == UserInfo.Current.ID)
                 {
                     view.AddChidren(btnSettingIcon);
                 }

--
Gitblit v1.8.0