From 1026814d931de92f0da5f15a58870565a94100e0 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 11 一月 2021 14:37:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/NewFilePath' into WJC

---
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs |  184 ++++++++++++++++++++++++++++-----------------
 1 files changed, 113 insertions(+), 71 deletions(-)

diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index 608fa42..645d512 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),
@@ -294,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),
@@ -343,21 +367,38 @@
                 #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();
 
-                if (!Common.ApiUtlis.Ins.DownloadDataComplete)
+                #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(() =>
                 {
-                    var waitPage = new Loading();
-                    MainPage.BaseView.AddChidren(waitPage);
-                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
-
-                    new System.Threading.Thread(() =>
+                    try
                     {
                         while (!Common.ApiUtlis.Ins.DownloadDataComplete)
                         {
@@ -365,7 +406,11 @@
                         }
                         Application.RunOnMainThread(() =>
                         {
-
+                            if (contentView == null)
+                            {
+                                return;
+                            }
+                            contentView.RemoveAll();
                             deviceFunctionView = new VerticalScrolViewLayout();
                             contentView.AddChidren(deviceFunctionView);
                             LoadDeviceFunctionControlZone();
@@ -383,33 +428,32 @@
 
                             waitPage.Hide();
                         });
-                    })
-                    { IsBackground = true }.Start();
-                }
-                else
-                {
-
-                    deviceFunctionView = new VerticalScrolViewLayout();
-                    contentView.AddChidren(deviceFunctionView);
-                    LoadDeviceFunctionControlZone();
-                    sceneFunctionView = new VerticalScrolViewLayout();
-                    contentView.AddChidren(sceneFunctionView);
-                    LoadSceneFunctionControlZone();
-                    contentView.PageIndex = 0;
-
-
-                    LoadEvent_ChangeShowedFunctionType();
-
-                    // 鏌ヨ鏈娑堟伅骞舵樉绀�
-                    GetUnreadPushMessages();
-                    RegisterGetPushMessageAction();
-
-                }
-                #endregion
+                    }
+                    catch (Exception ex) {
+                        MainPage.Log($"鍒锋柊涓婚〉寮傚父:{ex.Message}");
+                    }
+                    finally { }
+                })
+                { IsBackground = true }.Start();
             }
-            catch (Exception ex)
+            else
             {
-                MainPage.Log($"HomePage LoadPage Error : {ex.Message}");
+
+                deviceFunctionView = new VerticalScrolViewLayout();
+                contentView.AddChidren(deviceFunctionView);
+                LoadDeviceFunctionControlZone();
+                sceneFunctionView = new VerticalScrolViewLayout();
+                contentView.AddChidren(sceneFunctionView);
+                LoadSceneFunctionControlZone();
+                contentView.PageIndex = 0;
+
+
+                LoadEvent_ChangeShowedFunctionType();
+
+                // 鏌ヨ鏈娑堟伅骞舵樉绀�
+                GetUnreadPushMessages();
+                RegisterGetPushMessageAction();
+
             }
 
         }
@@ -430,7 +474,7 @@
                 foreach (var function in FunctionList.List.GetDeviceFunctionList())
                 {
                     //闊充箰妯″潡鏈変富浠庡叧绯伙紝闇�瑕佺壒娈婂鐞�
-                    if (function.functionCategory == FunctionCategory.Music)
+                    if (function.Spk_Prefix == FunctionCategory.Music)
                     {
                         var music = function as Music.A31MusicModel;
                         if (music.ServerClientType == -1)
@@ -676,7 +720,11 @@
                     Tag = "state",
                     Text = function.lastState
                 };
-                view.AddChidren(btnState);
+
+                if (function.spk != SPK.LightSwitch)
+                {
+                    view.AddChidren(btnState);
+                }
 
                 Button btnCollection;
                 btnCollection = new Button()
@@ -697,7 +745,7 @@
 
                 LoadEvent_FunctionCollection(btnCollection, function);
 
-                if (function.functionCategory == FunctionCategory.Curtain)
+                if (function.Spk_Prefix == FunctionCategory.Curtain)
                 {
                     btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png";
                     btnIcon.SelectedImagePath = "FunctionIcon/Curtain/CurtainOnIcon.png";
@@ -728,7 +776,7 @@
                     LoadEvent_ControlCurtain(function as Curtain, btnCurtainClose, btnCurtainOpen);
                 }
 
-                else if (function.functionType == FunctionType.TV)
+                else if (function.spk == SPK.ElectricTV)
                 {
                     btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVIcon.png";
                     Button btnPower;
@@ -744,7 +792,7 @@
                     LoadEvent_ControlTV(function as TV, btnPower);
                 }
 
-                else if (function.functionCategory == FunctionCategory.Music)
+                else if (function.Spk_Prefix == FunctionCategory.Music)
                 {
                     btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicIcon.png";
                     btnIcon.SelectedImagePath = "FunctionIcon/Music/MusicOnIcon.png";
@@ -767,7 +815,8 @@
 
                     //Music.SendMethod.ReadStatus(a31player);
 
-                    btnPower.MouseUpEventHandler = (sender, e) => {
+                    btnPower.MouseUpEventHandler = (sender, e) =>
+                    {
                         if (btnPower.IsSelected)
                         {
                             btnPower.IsSelected = false;
@@ -800,7 +849,7 @@
                     };
                     view.AddChidren(btnSwitch);
 
-                    switch (function.functionCategory)
+                    switch (function.Spk_Prefix)
                     {
                         case FunctionCategory.Light:
                             #region 鐏厜 Light
@@ -809,36 +858,26 @@
                             UpdataFunctionStates(function as Light);
                             #endregion
                             break;
-                        case FunctionCategory.Thermostat:
-                            switch (function.functionType)
-                            {
-                                case FunctionType.AC:
-                                    #region 绌鸿皟 AC
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png";
-                                    btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png";
-                                    #endregion
-                                    break;
-                                case FunctionType.FloorHeating:
-                                    #region 鍦扮儹
-                                    btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png";
-                                    btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png";
-                                    #endregion
-                                    break;
-                            }
+                        case FunctionCategory.AC:
+                            #region 绌鸿皟 AC
+                            btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png";
+                            btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png";
+                            #endregion
                             break;
-                        case FunctionCategory.SwitchDevice:
-                            switch (function.functionType)
+                        case FunctionCategory.FloorHeat:
+                            #region 鍦扮儹
+                            btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png";
+                            btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png";
+                            #endregion
+                            break;
+                        case FunctionCategory.Electric:
+                            switch (function.spk)
                             {
-                                case FunctionType.Socket:
+                                case SPK.ElectricSocket:
                                     btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png";
                                     btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png";
                                     break;
-                            }
-                            break;
-                        case FunctionCategory.Electrical:
-                            switch (function.functionType)
-                            {
-                                case FunctionType.Fan:
+                                case SPK.ElectricFan:
                                     btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png";
                                     btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png";
                                     break;
@@ -850,7 +889,7 @@
                 //鍙栨秷鏀惰棌浜嬩欢
                 Action cannelCollect = () => {
                     function.collect = false;
-                    if (function.functionCategory == FunctionCategory.Music)//澶勭悊闊充箰涓讳粠鍏崇郴
+                    if (function.Spk_Prefix == FunctionCategory.Music)//澶勭悊闊充箰涓讳粠鍏崇郴
                     {
                         if ((function as Music.A31MusicModel).ServerClientType == 1)
                         {
@@ -860,7 +899,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);
@@ -869,7 +908,7 @@
                 btnIcon.MouseUpEventHandler = skipControlPageEvent;
                 btnState.MouseUpEventHandler = skipControlPageEvent;
                 //鐢佃涓嶉渶瑕佹洿鏂扮姸鎬�
-                if(function.functionType!= FunctionType.TV)
+                if(function.spk!= SPK.ElectricTV)
                 {
                     UpdataFunctionStates(function);
                 }
@@ -915,7 +954,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