From 5eeafe3af80bfd88306bd8ad9e76c8f4b51ca35f Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 17 十二月 2020 14:16:20 +0800
Subject: [PATCH] 增加本地发送的重发机制

---
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs |  209 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 144 insertions(+), 65 deletions(-)

diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index 565f759..b6c33ea 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -1,7 +1,8 @@
-锘縰sing System;
+锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
 using HDL_ON.DAL;
+using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Newtonsoft.Json;
@@ -20,6 +21,10 @@
         /// </summary>
         FrameLayout topView;
         /// <summary>
+        /// 杩炴帴鐘舵�佹彁绀�
+        /// </summary>
+        Button btnLinkStateTip;
+        /// <summary>
         ///浣忓畢鍚嶇О鏄剧ず
         /// </summary>
         Button btnResidenceName;
@@ -30,15 +35,15 @@
         /// <summary>
         /// 褰撳墠娓╁害淇℃伅
         /// </summary>
-        Button btnTempValues;
+        TextButton btnTempValues;
         /// <summary>
         /// 褰撳墠婀垮害淇℃伅
         /// </summary>
-        Button btnHumidityValues;
+        TextButton btnHumidityValues;
         /// <summary>
         /// 褰撳墠pm2.5鐘舵��
         /// </summary>
-        Button btnPm25Values;
+        TextButton btnPm25Values;
         /// <summary>
         /// 鍒囨崲鏄剧ず鍔熻兘绫诲瀷鍖哄煙
         /// </summary>
@@ -76,10 +81,23 @@
         bool CurShowTypeIsFunction = true;
         #endregion
 
+        #region 鎶ヨ淇℃伅
+        Button btnMsgBg;
+        Button btnMsgTime;
+        Button btnMsg;
+        Button btnMsgIcon;
+        #endregion
+
         public HomePage()
         {
             bodyView = this;
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+        }
+
+        public override void RemoveFromParent()
+        {
+            UnregisterGetPushMessageAction();
+            base.RemoveFromParent();
         }
 
         public void LoadPage()
@@ -90,7 +108,7 @@
                 topView = new FrameLayout()
                 {
                     Height = Application.GetRealHeight(216),
-                    BackgroundImagePath = DB_ResidenceData.residenceData.residenceImage,
+                    BackgroundImagePath = DB_ResidenceData.Instance.residenceImage,
                 };
                 bodyView.AddChidren(topView);
 
@@ -101,26 +119,56 @@
                 };
                 topView.AddChidren(btnTop);
 
-                btnResidenceName = new Button()
+                btnLinkStateTip = new Button()
                 {
                     X = Application.GetRealWidth(16),
+                    Y = Application.GetRealHeight(46),
+                    Width = Application.GetRealWidth(6),
+                    Height = Application.GetRealWidth(6),
+                    BackgroundColor = CSS_Color.LinkTipFail,
+                    Radius = (uint)Application.GetRealWidth(3),
+                };
+                topView.AddChidren(btnLinkStateTip);
+                if (Control.Ins.GatewayOnline)
+                {
+                    if (Control.Ins.IsRemote)
+                    {
+                        bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipRemote;
+                    }
+                    else
+                    {
+                        bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.MainColor;
+                    }
+                }
+                else
+                {
+                    bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipFail;
+                }
+
+                btnResidenceName = new Button()
+                {
+                    X = Application.GetRealWidth(26),
                     Y = Application.GetRealHeight(32),
                     Width = Application.GetRealWidth(400),
                     Height = Application.GetRealHeight(33),
                     TextColor = CSS_Color.MainBackgroundColor,
                     TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
                     TextAlignment = TextAlignment.CenterLeft,
-                    Text = DB_ResidenceData.residenceData.residecenInfo.Name,
+                    Text = DB_ResidenceData.Instance.CurrentRegion.Name,
                     IsBold = true
                 };
                 topView.AddChidren(btnResidenceName);
 
-#if DEBUG11
+#if DEBUG
+                //鎼滅储缃戝叧
                 btnResidenceName.MouseUpEventHandler = (sender, e) =>
                 {
-                    System.Threading.Tasks.Task.Run(
-                        async () => { await DAL.Net.MqttCommon.StartMqtt();
-                    });
+                    System.Threading.Tasks.Task.Run(() =>
+                        {
+                            //DriverLayer.Control.Ins.SearchLoaclGateway();
+                            MainPage.InitializationData();
+                            //DriverLayer.Control.Ins.IsRemote = true;
+                        });
                 };
 #endif
 
@@ -141,7 +189,7 @@
                 };
                 environmentalView.AddChidren(btnTempIcon);
 
-                btnTempValues = new Button()
+                btnTempValues = new TextButton()
                 {
                     X = btnTempIcon.Right + Application.GetRealWidth(4),
                     Width = Application.GetRealWidth(30),
@@ -163,7 +211,7 @@
                 };
                 environmentalView.AddChidren(btnHumidityIcon);
 
-                btnHumidityValues = new Button()
+                btnHumidityValues = new TextButton()
                 {
                     X = btnHumidityIcon.Right + Application.GetRealWidth(4),
                     Width = Application.GetRealWidth(30),
@@ -185,10 +233,10 @@
                 };
                 environmentalView.AddChidren(btnPm25Icon);
 
-                btnPm25Values = new Button()
+                btnPm25Values = new TextButton()
                 {
                     X = btnPm25Icon.Right + Application.GetRealWidth(4),
-                    Width = Application.GetRealWidth(30),
+                    Width = Application.GetRealWidth(130),
                     Gravity = Gravity.CenterVertical,
                     TextColor = CSS_Color.MainBackgroundColor,
                     TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
@@ -209,14 +257,14 @@
                 };
                 topView.AddChidren(msgView);
 
-                var btngb = new Button()
+                btnMsgBg = new Button()
                 {
                     BackgroundColor = CSS_Color.MainColor,//0x3F4484F4,
                     Alpha = 0.4f,
                 };
-                msgView.AddChidren(btngb);
+                msgView.AddChidren(btnMsgBg);
 
-                Button btnMsgIcon;
+              
                 btnMsgIcon = new Button()
                 {
                     X = Application.GetRealWidth(12),
@@ -228,19 +276,19 @@
                 };
                 msgView.AddChidren(btnMsgIcon);
 
-                Button btnMsg;
+               
                 btnMsg = new Button()
                 {
                     X = Application.GetRealWidth(10) + btnMsgIcon.Right,
                     Width = Application.GetRealWidth(240),
-                    Text = "鏃�",
+                    Text = "...",
                     TextColor = CSS_Color.MainBackgroundColor,
                     TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                     TextAlignment = TextAlignment.CenterLeft,
                 };
                 msgView.AddChidren(btnMsg);
 
-                Button btnMsgTime;
+             
                 btnMsgTime = new Button()
                 {
                     X = Application.GetRealWidth(299),
@@ -250,6 +298,9 @@
                     TextAlignment = TextAlignment.CenterLeft,
                 };
                 msgView.AddChidren(btnMsgTime);
+
+                LoadEvent_GotoMessageCenterPage();
+
                 #endregion
 
                 #endregion
@@ -320,14 +371,23 @@
                 contentView.PageIndex = 0;
 
                 #endregion
-                bodyView.AddChidren(new Button() { Y = changeView.Bottom, Height = Application.GetRealHeight(4), BackgroundColor = 0xAAF2F3F7 });
 
                 LoadEvent_ChangeShowedFunctionType();
+
+                // 鏌ヨ鏈娑堟伅骞舵樉绀�
+                GetUnreadPushMessages();
+                RegisterGetPushMessageAction();
             }
             catch (Exception ex)
             {
                 MainPage.Log($"HomePage LoadPage Error : {ex.Message}");
             }
+
+
+            System.Threading.Tasks.Task.Run(() =>
+            {
+                //DriverLayer.Control.Ins.SearchLoaclGateway();
+            });
         }
 
         /// <summary>
@@ -342,7 +402,7 @@
             try
             {
                 int index = 0;
-                foreach (var function in DB_ResidenceData.residenceData.functionList.GetAllDeviceFunctionList())
+                foreach (var function in FunctionList.List.GetDeviceFunctionList())
                 {
                     //闊充箰妯″潡鏈変富浠庡叧绯伙紝闇�瑕佺壒娈婂鐞�
                     if (function.functionCategory == FunctionCategory.Music)
@@ -361,7 +421,7 @@
                         }
                         else
                         {
-                            if (!music.collection)
+                            if (!music.collect)
                             {
                                 continue;
                             }
@@ -369,13 +429,13 @@
                     }
                     else
                     {
-                        if (!function.collection)
+                        if (!function.collect)
                             continue;
-                        if (function.roomIdList.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず
-                        {
-                            function.collection = false;
-                            continue;
-                        }
+                        //if (function.roomIdList.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず
+                        //{
+                        //    function.collection = false;
+                        //    continue;
+                        //}
                     }
                     if (index % 2 == 0)
                     {
@@ -457,15 +517,15 @@
             try
             {
                 int index = 0;
-                foreach (var function in DB_ResidenceData.residenceData.functionList.scenes)
+                foreach (var scene in FunctionList.List.scenes)
                 {
-                    if (!function.collection)
+                    if (!scene.collect)
                         continue;
-                    if (function.roomIdList.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず
-                    {
-                        function.collection = false;
-                        continue;
-                    }
+                    //if (scene.roomIds.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず
+                    //{
+                    //    scene.collect = false;
+                    //    continue;
+                    //}
                     if (index % 2 == 0)
                     {
                         sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) });
@@ -483,12 +543,15 @@
                         X = functionView_X,
                         Width = Application.GetRealWidth(164),
                         Height = Application.GetRealWidth(122),
-                        Tag = function.sid,
-                        BackgroundImagePath = (function as Scene).ImagePath,
+                        Tag = scene.sid,
+                        BackgroundImagePath = scene.ImagePath,
                     };
                     rowView.AddChidren(functionView);
 
-                    LoadSceneFunctionDiv( functionView, function);
+                    //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
+                    ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, functionView);
+
+                    LoadSceneFunctionDiv( functionView, scene);
                     index++;
                 }
 
@@ -601,7 +664,7 @@
                     UnSelectedImagePath = "Collection/CollectionIcon.png",
                 };
                 view.AddChidren(btnCollection);
-                LoadEvent_FunctionCollection(btnCollection, function, true);
+                LoadEvent_FunctionCollection(btnCollection, function);
 
                 if (function.functionCategory == FunctionCategory.Curtain)
                 {
@@ -679,14 +742,14 @@
                             btnPower.IsSelected = false;
                             Music.SendMethod.Pause(a31player);
                             a31player.A31PlayStatus.status = "pause";
-                            a31player.on_off = "off";
+                            a31player.trait_on_off.curValue = "off";
                         }
                         else
                         {
                             btnPower.IsSelected = true;
                             Music.SendMethod.Play(a31player);
                             a31player.A31PlayStatus.status = "play";
-                            a31player.on_off = "on";
+                            a31player.trait_on_off.curValue = "on";
                         }
                         UpdataFunctionStates(a31player);
                     };
@@ -770,14 +833,30 @@
             }
         }
 
-
         /// <summary>
         /// 鍔犺浇鍦烘櫙鎺у埗鍗$墖
         /// </summary>
-        void LoadSceneFunctionDiv(FrameLayout view, Function function)
+        void LoadSceneFunctionDiv(FrameLayout view, Scene scene)
         {
             try
             {
+                Button btnCoverd = new Button()
+                {
+                    UnSelectedImagePath = "Collection/SceneCovered.png",
+                };
+                view.AddChidren(btnCoverd);
+
+                Button btnSettingIcon;
+                btnSettingIcon = new Button()
+                {
+                    X = Application.GetRealWidth(4),
+                    Y = Application.GetRealWidth(4),
+                    Height = Application.GetRealWidth(32),
+                    Width = Application.GetRealWidth(32),
+                    UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png",
+                };
+                view.AddChidren(btnSettingIcon);
+
                 Button btnName;
                 btnName = new Button()
                 {
@@ -785,7 +864,7 @@
                     Y = Application.GetRealWidth(68),
                     Width = Application.GetRealWidth(150),
                     Height = Application.GetRealHeight(24),
-                    Text = function.name,
+                    Text = scene.name,
                     TextSize = CSS_FontSize.TextFontSize,
                     TextColor = CSS_Color.MainBackgroundColor,
                     TextAlignment = TextAlignment.CenterLeft,
@@ -803,26 +882,10 @@
                     TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                     TextAlignment = TextAlignment.CenterLeft,
                     SelectedTextColor = CSS_Color.MainBackgroundColor,
-                    Text = function.GetRoomListName(),
+                    Text = scene.GetRoomListName(),
                 };
                 view.AddChidren(btnZone);
 
-                Button btnCoverd = new Button()
-                {
-                    UnSelectedImagePath = "Collection/SceneCovered.png",
-                };
-                view.AddChidren(btnCoverd);
-
-                Button btnDelayIcon;
-                btnDelayIcon = new Button()
-                {
-                    X = Application.GetRealWidth(12),
-                    Y = Application.GetRealWidth(12),
-                    Height = Application.GetRealWidth(24),
-                    Width = Application.GetRealWidth(24),
-                    UnSelectedImagePath = "FunctionIcon/Scene/DelayIcon.png"
-                };
-                view.AddChidren(btnDelayIcon);
 
                 Button btnCollection;
                 btnCollection = new Button()
@@ -835,10 +898,26 @@
                     UnSelectedImagePath = "Collection/CollectionIcon.png",
                 };
                 view.AddChidren(btnCollection);
-                LoadEvent_FunctionCollection(btnCollection, function, false);
+                LoadEvent_SceneCollection(btnCollection, scene);
               
-                LoadEvent_ControlScene(btnCoverd, function);
+                LoadEvent_ControlScene(btnCoverd,btnName,btnZone, scene);
 
+                btnSettingIcon.MouseUpEventHandler = (sender, e) => {
+                    Action backAction = () => {
+                        //LoadSceneFunctionControlZone();
+                    };
+                    Action refreshAction = () => {
+                        btnName.Text = scene.name;
+                        btnZone.Text = scene.GetRoomListName();
+                        //view.BackgroundImagePath = (scene as Scene).ImagePath;
+                        //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
+                        ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, view);
+                    };
+                    var aep = new SceneEditPage(scene, backAction);
+                    MainPage.BasePageView.AddChidren(aep);
+                    aep.LoadPage( refreshAction);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                };
             }
             catch (Exception ex)
             {

--
Gitblit v1.8.0