From f534d41c36d5895322bf691784a10435b64609fe Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 25 十二月 2020 13:52:00 +0800
Subject: [PATCH] 修复添加、删除楼层时候,界面刷新异常问题

---
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs |  129 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 109 insertions(+), 20 deletions(-)

diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index 8511bc3..fc554b2 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -11,11 +11,13 @@
 
 namespace HDL_ON.UI
 {
-    public partial class HomePage : FrameLayout
+    public partial class HomePage : VerticalRefreshLayout
     {
 
         #region 鎺т欢鍒楄〃
         static HomePage bodyView;
+
+        //FrameLayout bodyView;
         /// <summary>
         /// 椤堕儴淇℃伅鍖哄煙
         /// </summary>
@@ -92,6 +94,15 @@
         {
             bodyView = this;
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+
+            this.VerticalScrollBarEnabled = false;
+#if __IOS__
+            //鑷姩鍋忕Щ鍙栨秷
+            if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
+            {
+                (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never;
+            }
+#endif
         }
 
         public override void RemoveFromParent()
@@ -104,7 +115,17 @@
         {
             try
             {
+                this.BeginHeaderRefreshingAction = () =>
+                {
+                    this.EndHeaderRefreshing();
+                    Common.ApiUtlis.Ins.DownloadData();
+                    LoadContentView();
+                };
+
                 #region topView
+
+                bodyView.RemoveAll();
+
                 topView = new FrameLayout()
                 {
                     Height = Application.GetRealHeight(216),
@@ -130,7 +151,8 @@
                 };
                 topView.AddChidren(btnLinkStateTip);
                 //鏇存柊閾炬帴鐘舵�乮con棰滆壊
-                LoadEvent_CheckLinkStatus();
+                CheckLinkStatus();//2020-12-22
+                //LoadEvent_CheckLinkStatus();
 
                 btnResidenceName = new Button()
                 {
@@ -251,7 +273,7 @@
                 };
                 msgView.AddChidren(btnMsgBg);
 
-              
+
                 btnMsgIcon = new Button()
                 {
                     X = Application.GetRealWidth(12),
@@ -263,7 +285,7 @@
                 };
                 msgView.AddChidren(btnMsgIcon);
 
-               
+
                 btnMsg = new Button()
                 {
                     X = Application.GetRealWidth(10) + btnMsgIcon.Right,
@@ -275,7 +297,7 @@
                 };
                 msgView.AddChidren(btnMsg);
 
-             
+
                 btnMsgTime = new Button()
                 {
                     X = Application.GetRealWidth(299),
@@ -293,9 +315,12 @@
                 #endregion
 
                 #region 鍔熻兘鍦烘櫙鍒囨崲
+
+                bodyView.AddChidren(new Button() { Height = Application.GetRealHeight(20), BackgroundColor = 0x00000000 });
+
                 changeView = new FrameLayout()
                 {
-                    Y = Application.GetRealHeight(20) + topView.Bottom,
+                    //Y = Application.GetRealHeight(20) + topView.Bottom,
                     Gravity = Gravity.CenterHorizontal,
                     Width = Application.GetRealWidth(230),
                     Height = Application.GetRealHeight(62),
@@ -342,12 +367,77 @@
                 #region ContextView
                 contentView = new PageLayout()
                 {
-                    Y = changeView.Bottom ,
+                    //Y = changeView.Bottom,
                     Height = Application.GetRealHeight(310 + 30 + 10), //20涓鸿秴鍑洪儴鍒�
+                    IsShowPoint = false,
                 };
                 bodyView.AddChidren(contentView);
 
                 functionViews = new List<FrameLayout>();
+
+                LoadContentView();
+
+                #endregion
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log($"HomePage LoadPage Error : {ex.Message}");
+            }
+
+        }
+        /// <summary>
+        /// 鍔犺浇鍐呭鍖哄煙
+        /// </summary>
+        void LoadContentView()
+        {
+            if (!Common.ApiUtlis.Ins.DownloadDataComplete)
+            {
+                var waitPage = new Loading();
+                MainPage.BaseView.AddChidren(waitPage);
+                waitPage.Start(Language.StringByID(StringId.PleaseWait));
+
+                new System.Threading.Thread(() =>
+                {
+                    try
+                    {
+                        while (!Common.ApiUtlis.Ins.DownloadDataComplete)
+                        {
+                            System.Threading.Thread.Sleep(400);
+                        }
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (contentView == null)
+                            {
+                                return;
+                            }
+                            contentView.RemoveAll();
+                            deviceFunctionView = new VerticalScrolViewLayout();
+                            contentView.AddChidren(deviceFunctionView);
+                            LoadDeviceFunctionControlZone();
+                            sceneFunctionView = new VerticalScrolViewLayout();
+                            contentView.AddChidren(sceneFunctionView);
+                            LoadSceneFunctionControlZone();
+                            contentView.PageIndex = 0;
+
+
+                            LoadEvent_ChangeShowedFunctionType();
+
+                            // 鏌ヨ鏈娑堟伅骞舵樉绀�
+                            GetUnreadPushMessages();
+                            RegisterGetPushMessageAction();
+
+                            waitPage.Hide();
+                        });
+                    }
+                    catch (Exception ex) {
+                        MainPage.Log($"鍒锋柊涓婚〉寮傚父:{ex.Message}");
+                    }
+                    finally { }
+                })
+                { IsBackground = true }.Start();
+            }
+            else
+            {
 
                 deviceFunctionView = new VerticalScrolViewLayout();
                 contentView.AddChidren(deviceFunctionView);
@@ -357,24 +447,15 @@
                 LoadSceneFunctionControlZone();
                 contentView.PageIndex = 0;
 
-                #endregion
 
                 LoadEvent_ChangeShowedFunctionType();
 
                 // 鏌ヨ鏈娑堟伅骞舵樉绀�
                 GetUnreadPushMessages();
                 RegisterGetPushMessageAction();
-            }
-            catch (Exception ex)
-            {
-                MainPage.Log($"HomePage LoadPage Error : {ex.Message}");
+
             }
 
-
-            System.Threading.Tasks.Task.Run(() =>
-            {
-                //DriverLayer.Control.Ins.SearchLoaclGateway();
-            });
         }
 
         /// <summary>
@@ -382,6 +463,7 @@
         /// </summary>
         void LoadDeviceFunctionControlZone()
         {
+         
             #region ContextView
             deviceFunctionView.RemoveAll();
             functionViews.Clear();
@@ -638,7 +720,11 @@
                     Tag = "state",
                     Text = function.lastState
                 };
-                view.AddChidren(btnState);
+
+                if (function.spk != SPK.LightSwitch)
+                {
+                    view.AddChidren(btnState);
+                }
 
                 Button btnCollection;
                 btnCollection = new Button()
@@ -822,7 +908,7 @@
                     }
                     string msg = function.name + Language.StringByID(StringId.CollectionCancelled);
                     LoadDeviceFunctionControlZone();
-                    function.SaveFunctionData(true);
+                    function.CollectFunction();
                 };
 
                 var skipControlPageEvent = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollection, btnName, btnZone);
@@ -877,7 +963,10 @@
                     Width = Application.GetRealWidth(32),
                     UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png",
                 };
-                view.AddChidren(btnSettingIcon);
+                if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
+                {
+                    view.AddChidren(btnSettingIcon);
+                }
 
                 Button btnName;
                 btnName = new Button()

--
Gitblit v1.8.0