From eda3fb873e59544ff36301b51e05aef64f87b0f9 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 27 八月 2021 13:21:21 +0800
Subject: [PATCH] Merge branch 'newBranch1' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into newBranch1

---
 HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs |  228 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 155 insertions(+), 73 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
index b995002..91a1d58 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -1,4 +1,5 @@
 锘縰sing System;
+using System.Collections.Generic;
 using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
@@ -20,14 +21,14 @@
         /// 鍦烘櫙鍐呭鏄剧ず鍖哄煙
         /// </summary>
         FrameLayout floorChangeView;
+        /// <summary>
+        /// 妤煎眰鎴块棿閫夋嫨鐨勪笅鎷夊璞�
+        /// </summary>
+        FloorRoomSelectPopupView floorRoomSelectView = null;
         Button btnSceneTilte;
 
         #region 鍦烘櫙搴曢儴鍒囨崲鏄剧ず鍖哄煙
         FrameLayout topView;
-        /// <summary>
-        /// 鍦烘櫙鍖哄煙锛岄《閮ㄥ尯鍩�
-        /// </summary>
-        FrameLayout sceneTopView;
         /// <summary>
         /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣
         /// </summary>
@@ -60,6 +61,7 @@
 
         public void LoadPage()
         {
+            MainPage.CurPageIndex = 2;
             bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
             #region top
             topView = new FrameLayout()
@@ -69,7 +71,10 @@
             };
             bodyView.AddChidren(topView);
 
-            if (DB_ResidenceData.Instance.GatewayType == 0)
+            //涓嶆槸A缃戝叧鎴栬�呮槸鎴愬憳 鍙厑璁告坊鍔犲満鏅殣钘忚嚜鍔ㄥ寲
+            var HideAutoPage = DB_ResidenceData.Instance.CurrentRegion.isOtherShare;
+            //鍒ゆ柇鏄惁闇�瑕侀殣钘忚嚜鍔ㄥ寲
+            if (HideAutoPage)
             {
                 btnSceneTilte = new Button()
                 {
@@ -85,7 +90,6 @@
                 };
                 topView.AddChidren(btnSceneTilte);
                 btnAutomationTitle = new Button();
-
             }
             else
             {
@@ -127,12 +131,11 @@
                 UnSelectedImagePath = "Public/AddIcon.png",
             };
             topView.AddChidren(btnAddIconBg);
-
             btnAddIcon = new Button()
             {
-                X = Application.GetRealWidth(337-20),
-                Width = Application.GetMinRealAverage(28+30),
-                Height = Application.GetMinRealAverage(28+29),
+                X = Application.GetRealWidth(337 - 20),
+                Width = Application.GetMinRealAverage(28 + 30),
+                Height = Application.GetMinRealAverage(28 + 29),
             };
             topView.AddChidren(btnAddIcon);
             #endregion
@@ -147,7 +150,11 @@
             bodyView.AddChidren(contentPageView);
 
             LoadScenePageView();
-            LoadAutomationPageView();
+            //鍒ゆ柇鏄惁闇�瑕侀殣钘忚嚜鍔ㄥ寲
+            if (!HideAutoPage)
+            {
+                LoadAutomationPageView();
+            }
             LoadEventList();
 
         }
@@ -164,18 +171,10 @@
             /// </summary>
             floorChangeView = new FrameLayout()
             {
-                Height = Application.GetRealHeight(52),
+                Height = Application.GetRealHeight(53),
             };
             scenePageView.AddChidren(floorChangeView);
             #region 鍦烘櫙搴曢儴鍒囨崲鏄剧ず鍖哄煙
-            /// <summary>
-            /// 鍦烘櫙鍖哄煙锛岄《閮ㄥ尯鍩�
-            /// </summary>
-            sceneTopView = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(53),
-            };
-            floorChangeView.AddChidren(sceneTopView);
             /// <summary>
             /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣
             /// </summary>
@@ -184,7 +183,7 @@
                 Width = Application.GetMinRealAverage(16),
                 Height = Application.GetMinRealAverage(16),
                 X = Application.GetRealWidth(16),
-                Y = Application.GetRealHeight(18),
+                Gravity = Gravity.CenterVertical,
                 UnSelectedImagePath = "Public/DownIcon.png",
             };
             floorChangeView.AddChidren(btnFloorDownIcon);
@@ -194,7 +193,7 @@
             btnFloor = new Button()
             {
                 X = btnFloorDownIcon.Right,
-                Y = Application.GetRealHeight(18),
+                Gravity = Gravity.CenterVertical,
                 Width = Application.GetRealWidth(200),
                 Height = Application.GetMinRealAverage(16),
                 TextColor = CSS_Color.FirstLevelTitleColor,
@@ -204,65 +203,55 @@
             };
             floorChangeView.AddChidren(btnFloor);
 
+            string nowSelectId = null;
+            btnFloor.MouseUpEventHandler += (sender, e) =>
+            {
+                if (this.floorRoomSelectView == null)
+                {
+                    //鍏堝垵濮嬪寲
+                    this.floorRoomSelectView = new FloorRoomSelectPopupView();
+                }
+                //鏄剧ず涓嬫媺鍒楄〃
+                this.floorRoomSelectView.ShowSceneView(btnFloor, (selectId, listScene) =>
+                {
+                    nowSelectId = selectId;
+                    //閲嶆柊鍒锋柊鍦烘櫙鍒楄〃
+                    this.LoadSceneFunctionControlZone(listScene);
+                }, nowSelectId);
+            };
+
             #endregion
 
             sceneFunctionView = new VerticalScrolViewLayout()
             {
-                Y = floorChangeView.Bottom,
+                Y = Application.GetRealHeight(53),
                 Height = Application.GetRealHeight(667 - 64 - 49 - 52 + 30),
             };
             scenePageView.AddChidren(sceneFunctionView);
-            LoadSceneFunctionControlZone();
+            LoadSceneFunctionControlZone(null);
         }
 
         /// <summary>
         /// 鍔犺浇鍦烘櫙鍔熻兘鏄剧ず鍖哄煙
         /// </summary>
-        void LoadSceneFunctionControlZone()
+        void LoadSceneFunctionControlZone(List<Scene> listScene)
         {
-            //topView.AddChidren(btnAddIcon);
-
             sceneFunctionView.RemoveAll();
-            var rowView = new FrameLayout();
             try
             {
                 int index = 0;
-                foreach (var scene in FunctionList.List.scenes)
+                //鑾峰彇鑳藉鏄剧ず鐨勫満鏅�
+                if (listScene == null)
                 {
-                    //if (scene.roomIds.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず
-                    //{
-                    //    scene.collect = false;
-                    //    continue;
-                    //}
-                    if (index % 2 == 0)
+                    //鍒濆鍊�
+                    if (this.floorRoomSelectView == null)
                     {
-                        sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) });
-                        rowView = new FrameLayout()
-                        {
-                            Height = Application.GetRealWidth(122),
-                        };
-                        sceneFunctionView.AddChidren(rowView);
-                        sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) });
+                        //鍏堝垵濮嬪寲
+                        this.floorRoomSelectView = new FloorRoomSelectPopupView();
                     }
-                    var functionView_X = Application.GetRealWidth((16 + 164) * (index % 2) + 16);
-
-                    var functionView = new FrameLayout()
-                    {
-                        X = functionView_X,
-                        Width = Application.GetRealWidth(164),
-                        Height = Application.GetRealWidth(122),
-                        Tag = scene.sid,
-                        //BackgroundImagePath = (scene as Scene).ImagePath,
-                    };
-                    rowView.AddChidren(functionView);
-                    //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
-                    ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, functionView);
-
-                    LoadSceneFunctionDiv(functionView, scene);
-                    index++;
+                    listScene = this.floorRoomSelectView.GetCanShowListScene();
                 }
-
-                if (index == 0)
+                if (listScene.Count == 0)
                 {
                     var view = new FrameLayout();
                     sceneFunctionView.AddChidren(view);
@@ -288,6 +277,38 @@
                     };
                     view.AddChidren(btnNoCollectionTip);
                 }
+                else
+                {
+                    var rowView = new FrameLayout();
+                    new System.Threading.Thread(() =>
+                    {
+                        foreach (var scene in listScene)
+                        {
+                            System.Threading.Thread.Sleep(10);
+                            Application.RunOnMainThread(() =>
+                            {
+                                if (index % 2 == 0)
+                                {
+                                    rowView = new FrameLayout()
+                                    {
+                                        Height = Application.GetRealWidth(122),
+                                    };
+                                    sceneFunctionView.AddChidren(rowView);
+                                    sceneFunctionView.AddChidren(new Button()
+                                    {
+                                        Height = Application.GetRealHeight(7 + 7),
+                                    });
+                                }
+                                var functionView_X = Application.GetRealWidth((16 + 164) * (index % 2) + 16);
+
+                                var functionView = LoadSceneFunctionDiv(functionView_X, scene);
+                                rowView.AddChidren(functionView);
+                                index++;
+                            });
+                        }
+                    })
+                    { IsBackground = true }.Start();
+                }
             }
             catch (Exception ex)
             {
@@ -300,8 +321,19 @@
         /// <summary>
         /// 鍔犺浇鍦烘櫙鎺у埗鍗$墖
         /// </summary>
-        void LoadSceneFunctionDiv(FrameLayout view, Scene scene)
+        //FrameLayout LoadSceneFunctionDiv(FrameLayout view, Scene scene)
+        FrameLayout LoadSceneFunctionDiv(int functionView_X, Scene scene)
         {
+            var view = new FrameLayout()
+            {
+                X = functionView_X,
+                Width = Application.GetRealWidth(164),
+                Height = Application.GetRealWidth(122),
+                Tag = scene.sid,
+            };
+            //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
+            ImageUtlis.Current.LoadLocalOrNetworkImages(scene.ImagePath, view);
+
             try
             {
                 Button btnCoverd = new Button()
@@ -309,6 +341,19 @@
                     UnSelectedImagePath = "Collection/SceneCovered.png",
                 };
                 view.AddChidren(btnCoverd);
+
+                Button btnShowDelay;
+                btnShowDelay = new Button()
+                {
+                    X = Application.GetRealWidth(40),
+                    Y = Application.GetRealWidth(4),
+                    Height = Application.GetRealWidth(32),
+                    Width = Application.GetRealWidth(100),
+                    TextColor = CSS_Color.AuxiliaryColor1,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                };
+                view.AddChidren(btnShowDelay);
 
                 Button btnName;
                 btnName = new Button()
@@ -328,7 +373,7 @@
                 btnZone = new Button()
                 {
                     X = Application.GetRealWidth(12),
-                    Y = btnName.Bottom,
+                    Y = Application.GetRealWidth(68+24),
                     Height = Application.GetRealWidth(18),
                     Width = Application.GetRealWidth(113),
                     TextColor = CSS_Color.MainBackgroundColor,
@@ -348,7 +393,10 @@
                     Width = Application.GetRealWidth(32),
                     UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png",
                 };
-                view.AddChidren(btnSettingIcon);
+                if (scene.userId == UserInfo.Current.ID)
+                {
+                    view.AddChidren(btnSettingIcon);
+                }
 
                 Button btnCollection;
                 btnCollection = new Button()
@@ -362,16 +410,20 @@
                     IsSelected = scene.collect,
                 };
                 view.AddChidren(btnCollection);
-                btnCollection.MouseUpEventHandler = (sender, e) => {
+                btnCollection.MouseUpEventHandler = (sender, e) =>
+                {
                     scene.collect = btnCollection.IsSelected = !btnCollection.IsSelected;
                     scene.CollectScene();
                 };
-                LoadEvent_ControlScene(btnCoverd,btnName,btnZone, scene);
-                btnSettingIcon.MouseUpEventHandler = (sender, e) => {
-                    Action backAction = () => {
-                        LoadSceneFunctionControlZone();
+                LoadEvent_ControlScene(btnCoverd, btnName, btnZone, btnShowDelay, scene);
+                btnSettingIcon.MouseUpEventHandler = (sender, e) =>
+                {
+                    Action backAction = () =>
+                    {
+                        LoadSceneFunctionControlZone(null);
                     };
-                    Action refreshAction = () => {
+                    Action refreshAction = () =>
+                    {
                         btnName.Text = scene.name;
                         btnZone.Text = scene.GetRoomListName();
                         //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
@@ -382,10 +434,18 @@
                     aep.LoadPage(refreshAction);
                     MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                 };
+                //鍦烘櫙姝e湪鍊掕鏃舵墽琛屼腑
+                scene.SceneCountDown(btnShowDelay);
+
+                return view;
             }
             catch (Exception ex)
             {
                 MainPage.Log("homepage LoadControlView error : " + ex.Message);
+                return view;
+            }
+            finally
+            {
             }
         }
         #endregion
@@ -396,7 +456,6 @@
         /// </summary>
         void LoadAutomationPageView()
         {
-            //btnAddIcon.RemoveFromParent();
             automationPage = new FrameLayout();
             contentPageView.AddChidren(automationPage);
             UI2.Intelligence.Automation.MainView.automationPage = automationPage;
@@ -480,9 +539,21 @@
             {
                 if (!btnAutomationTitle.IsSelected)
                 {
+                    //濡傛灉鏄垚鍛�
+                    if (DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+                    {
+                        //濡傛灉娌℃湁鍦烘櫙鏉冮檺
+                        if (!DB_ResidenceData.Instance.CurrentRegion.isAllowCreateScene)
+                        {
+                            //鎻愮ず娌℃湁鍦烘櫙鐨勫垱寤烘潈闄�
+                            Utlis.ShowTip(Language.StringByID(StringId.PermissionDenied));
+                            return;
+                        }
+                    }
+
                     Action action = () =>
                     {
-                        LoadSceneFunctionControlZone();
+                        LoadSceneFunctionControlZone(null);
                     };
                     var aep = new NewSceneMenuListPage(action);
                     MainPage.BasePageView.AddChidren(aep);
@@ -492,7 +563,8 @@
                 else
                 {
                     //璺宠浆鍒伴�昏緫鐣岄潰
-                    UI2.Intelligence.Automation.MainView.SkipAddLogicPage();
+                    UI2.Intelligence.Automation.MainView logicMainView = new UI2.Intelligence.Automation.MainView();
+                    logicMainView.SkipAddLogicPage();
                 }
             };
         }
@@ -501,14 +573,24 @@
         /// <summary>
         /// 鍔犺浇鍦烘櫙鎺у埗浜嬩欢
         /// </summary>
-        void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone, Scene scene)
+        void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone, Button btnShowDelay, Scene scene)
         {
 
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
+                //鍦烘櫙姝e湪鍊掕鏃舵墽琛屼腑锛屼笉鍏佽鍐嶇偣鍑�
+                if (scene.LastExecutionTime == "" || Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) < Convert.ToDouble(Utlis.GetTimestamp(false)))
+                {
+                    scene.LastExecutionTime = Utlis.GetTimestamp(false);
+                }
+                else
+                {
+                    return;
+                }
                 string msg = scene.name + Language.StringByID(StringId.AlreadyOpened);
                 new PublicAssmebly().TipMsgAutoClose(msg, true);
                 Control.Ins.ControlScene(scene);
+                scene.SceneCountDown(btnShowDelay);
             };
             btnCoverd.MouseUpEventHandler = eventHandler;
             btnName.MouseUpEventHandler = eventHandler;

--
Gitblit v1.8.0