From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 01 七月 2021 15:50:43 +0800
Subject: [PATCH] Revert "1"

---
 HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs |  362 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 243 insertions(+), 119 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
index b2f5478..85ad984 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -1,10 +1,11 @@
 锘縰sing System;
+using System.Collections.Generic;
 using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
 
-namespace HDL_ON.UI 
+namespace HDL_ON.UI
 {
     public partial class IntelligencePage : FrameLayout
     {
@@ -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,35 +71,58 @@
             };
             bodyView.AddChidren(topView);
 
-            btnSceneTilte = new Button()
+            //涓嶆槸A缃戝叧鎴栬�呮槸鎴愬憳 鍙厑璁告坊鍔犲満鏅殣钘忚嚜鍔ㄥ寲
+            var HideAutoPage = DB_ResidenceData.Instance.CurrentRegion.isOtherShare;
+            //鍒ゆ柇鏄惁闇�瑕侀殣钘忚嚜鍔ㄥ寲
+            if (HideAutoPage)
             {
-                Y = Application.GetRealHeight(30),
-                Width = Application.GetRealWidth(170),
-                Height = Application.GetRealHeight(25),
-                TextAlignment = TextAlignment.CenterRight,
-                TextSize = CSS_FontSize.HeadlineFontSize,
-                TextColor = CSS_Color.PromptingColor1,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextID = StringId.Scenes,
-                IsSelected = true
-            };
-            topView.AddChidren(btnSceneTilte);
-
-            btnAutomationTitle = new Button()
+                btnSceneTilte = new Button()
+                {
+                    Y = Application.GetRealHeight(30),
+                    //Width = Application.GetRealWidth(170),
+                    Height = Application.GetRealHeight(25),
+                    TextAlignment = TextAlignment.Center,
+                    TextSize = CSS_FontSize.HeadlineFontSize,
+                    TextColor = CSS_Color.PromptingColor1,
+                    SelectedTextColor = CSS_Color.MainColor,
+                    TextID = StringId.Scenes,
+                    IsSelected = true
+                };
+                topView.AddChidren(btnSceneTilte);
+                btnAutomationTitle = new Button();
+            }
+            else
             {
-                X = Application.GetRealWidth(209),
-                Y = Application.GetRealHeight(30),
-                Width = Application.GetRealWidth(170),
-                Height = Application.GetRealHeight(25),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = CSS_FontSize.TextFontSize,
-                TextColor = CSS_Color.PromptingColor1,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextID = StringId.Automation,
-            };
-            topView.AddChidren(btnAutomationTitle);
 
-            btnAddIcon = new Button()
+                btnSceneTilte = new Button()
+                {
+                    Y = Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(170),
+                    Height = Application.GetRealHeight(25),
+                    TextAlignment = TextAlignment.CenterRight,
+                    TextSize = CSS_FontSize.HeadlineFontSize,
+                    TextColor = CSS_Color.PromptingColor1,
+                    SelectedTextColor = CSS_Color.MainColor,
+                    TextID = StringId.Scenes,
+                    IsSelected = true
+                };
+                topView.AddChidren(btnSceneTilte);
+
+                btnAutomationTitle = new Button()
+                {
+                    X = Application.GetRealWidth(209),
+                    Y = Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(170),
+                    Height = Application.GetRealHeight(25),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextColor = CSS_Color.PromptingColor1,
+                    SelectedTextColor = CSS_Color.MainColor,
+                    TextID = StringId.Automation,
+                };
+                topView.AddChidren(btnAutomationTitle);
+            }
+            var btnAddIconBg = new Button()
             {
                 X = Application.GetRealWidth(337),
                 Y = Application.GetRealHeight(29),
@@ -105,7 +130,20 @@
                 Height = Application.GetMinRealAverage(28),
                 UnSelectedImagePath = "Public/AddIcon.png",
             };
-            topView.AddChidren(btnAddIcon);
+            //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+            {
+                topView.AddChidren(btnAddIconBg);
+            }
+            btnAddIcon = new Button()
+            {
+                X = Application.GetRealWidth(337-20),
+                Width = Application.GetMinRealAverage(28+30),
+                Height = Application.GetMinRealAverage(28+29),
+            };
+            //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+            {
+                topView.AddChidren(btnAddIcon);
+            }
             #endregion
 
             contentPageView = new PageLayout()
@@ -118,7 +156,11 @@
             bodyView.AddChidren(contentPageView);
 
             LoadScenePageView();
-            LoadAutomationPageView();
+            //鍒ゆ柇鏄惁闇�瑕侀殣钘忚嚜鍔ㄥ寲
+            if (!HideAutoPage)
+            {
+                LoadAutomationPageView();
+            }
             LoadEventList();
 
         }
@@ -135,18 +177,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>
@@ -155,7 +189,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);
@@ -165,30 +199,48 @@
             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,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                 TextAlignment = TextAlignment.CenterLeft,
-                Text = DB_ResidenceData.residenceData.CurFoor,
+                Text = DB_ResidenceData.Instance.CurFloor.roomName,
             };
-            floorChangeView.AddChidren(btnFloor);
+            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,
+
+            sceneFunctionView = new VerticalScrolViewLayout()
+            {
+                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);
 
@@ -197,22 +249,35 @@
             try
             {
                 int index = 0;
-                foreach (var function in DB_ResidenceData.functionList.scenes)
+                //鑾峰彇鑳藉鏄剧ず鐨勫満鏅�
+                if (listScene == null)
+                {
+                    //鍒濆鍊�
+                    if (this.floorRoomSelectView == null)
+                    {
+                        //鍏堝垵濮嬪寲
+                        this.floorRoomSelectView = new FloorRoomSelectPopupView();
+                    }
+                    listScene = this.floorRoomSelectView.GetCanShowListScene();
+                }
+                foreach (var scene in listScene)
                 {
-                    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) });
                         rowView = new FrameLayout()
                         {
                             Height = Application.GetRealWidth(122),
                         };
                         sceneFunctionView.AddChidren(rowView);
-                        sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) });
+                        sceneFunctionView.AddChidren(new Button()
+                        {
+                            Height = Application.GetRealHeight(7 + 7),
+                        });
                     }
                     var functionView_X = Application.GetRealWidth((16 + 164) * (index % 2) + 16);
 
@@ -221,12 +286,14 @@
                         X = functionView_X,
                         Width = Application.GetRealWidth(164),
                         Height = Application.GetRealWidth(122),
-                        Tag = function.sid,
-                        BackgroundImagePath = (function as Scene).ImagePath,
+                        Tag = scene.sid,
+                        //BackgroundImagePath = (scene as Scene).ImagePath,
                     };
                     rowView.AddChidren(functionView);
+                    //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
+                    ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, functionView);
 
-                    LoadSceneFunctionDiv(functionView, function);
+                    LoadSceneFunctionDiv(functionView, scene);
                     index++;
                 }
 
@@ -268,7 +335,7 @@
         /// <summary>
         /// 鍔犺浇鍦烘櫙鎺у埗鍗$墖
         /// </summary>
-        void LoadSceneFunctionDiv(FrameLayout view, Function function)
+        void LoadSceneFunctionDiv(FrameLayout view, Scene scene)
         {
             try
             {
@@ -278,6 +345,19 @@
                 };
                 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()
                 {
@@ -285,7 +365,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,
@@ -303,10 +383,9 @@
                     TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                     TextAlignment = TextAlignment.CenterLeft,
                     SelectedTextColor = CSS_Color.MainBackgroundColor,
-                    Text = function.GetRoomListName(),
+                    Text = scene.GetRoomListName(),
                 };
                 view.AddChidren(btnZone);
-
 
                 Button btnSettingIcon;
                 btnSettingIcon = new Button()
@@ -317,7 +396,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()
@@ -328,28 +410,81 @@
                     Height = Application.GetMinRealAverage(32),
                     UnSelectedImagePath = "Collection/CollectionWhiteIcon.png",
                     SelectedImagePath = "Collection/CollectionIcon.png",
-                    IsSelected = function.collection,
+                    IsSelected = scene.collect,
                 };
                 view.AddChidren(btnCollection);
+                //2020-12-16 濡傛灉鏄垚鍛橀殣钘忔敹钘忓姛鑳�
+                //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+                //{
+                //    view.AddChidren(btnCollection);
+                //}
                 btnCollection.MouseUpEventHandler = (sender, e) => {
-                    function.collection = btnCollection.IsSelected = !btnCollection.IsSelected;
-                    function.SaveFunctionData();
+                    scene.collect = btnCollection.IsSelected = !btnCollection.IsSelected;
+                    scene.CollectScene();
                 };
-                LoadEvent_ControlScene(btnCoverd,btnName,btnZone, function);
+                LoadEvent_ControlScene(btnCoverd, btnName, btnZone, btnShowDelay, scene);
                 btnSettingIcon.MouseUpEventHandler = (sender, e) => {
                     Action backAction = () => {
-                        LoadSceneFunctionControlZone();
+                        LoadSceneFunctionControlZone(null);
                     };
                     Action refreshAction = () => {
-                        btnName.Text = function.name;
-                        btnZone.Text = function.GetRoomListName();
-                        view.BackgroundImagePath = (function as Scene).ImagePath;
+                        btnName.Text = scene.name;
+                        btnZone.Text = scene.GetRoomListName();
+                        //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
+                        ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, view);
                     };
-                    var aep = new SceneEditPage(function as Scene, backAction);
+                    var aep = new SceneEditPage(scene, backAction);
                     MainPage.BasePageView.AddChidren(aep);
-                    aep.LoadPage(StringId.EditScene, refreshAction);
+                    aep.LoadPage(refreshAction);
                     MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                 };
+                //鍦烘櫙姝e湪鍊掕鏃舵墽琛屼腑
+                scene.SceneCountDown(btnShowDelay);
+
+                //if (scene.LastExecutionTime == "" || Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) < Convert.ToDouble(Utlis.GetTimestamp(false)))
+                //{
+                //    int time = 0;
+                //    int.TryParse(Convert.ToInt32(
+                //        Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) - Convert.ToDouble(Utlis.GetTimestamp(false))
+                //        ).ToString(),out time);
+                //    if (time > 0)
+                //    {
+                //        new System.Threading.Thread(() =>
+                //        {
+                //            //int time = Convert.ToInt32(scene.delay);
+                //            if (time > 0)
+                //            {
+                //                while (time > 0)
+                //                {
+                //                    Application.RunOnMainThread(() =>
+                //                    {
+                //                        if (time / 60 > 1)
+                //                        {
+                //                            btnShowDelay.Text = (time / 60).ToString() + "min";
+                //                        }
+                //                        else
+                //                        {
+                //                            btnShowDelay.Text = (time--).ToString() + "s";
+                //                        }
+                //                    });
+                //                    if (time / 60 > 1)
+                //                    {
+                //                        System.Threading.Thread.Sleep(time / 60 * 60000);
+                //                    }
+                //                    else
+                //                    {
+                //                        System.Threading.Thread.Sleep(1000);
+                //                    }
+                //                }
+                //                Application.RunOnMainThread(() =>
+                //                {
+                //                    btnShowDelay.Text = "";
+                //                });
+                //            }
+                //        })
+                //        { IsBackground = true, Priority = System.Threading.ThreadPriority.BelowNormal }.Start();
+                //    }
+                //}
             }
             catch (Exception ex)
             {
@@ -364,33 +499,11 @@
         /// </summary>
         void LoadAutomationPageView()
         {
-            //btnAddIcon.RemoveFromParent();
-            ///娓呴櫎涔嬪墠鐣岄潰鏁版嵁閲嶆柊鍔犺浇鏂版暟鎹紱
-            contentPageView.RemoveAll();
             automationPage = new FrameLayout();
             contentPageView.AddChidren(automationPage);
-
-            Button btnTipNot = new Button()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(120),
-                Width = Application.GetRealWidth(180),
-                Height = Application.GetRealWidth(180),
-                UnSelectedImagePath = "TipNot.png",
-            };
-            automationPage.AddChidren(btnTipNot);
-
-            Button btnTipNotText = new Button()
-            {
-                Y = btnTipNot.Bottom,
-                Height = Application.GetRealWidth(100),
-                TextID = StringId.TipNotOpen,
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.TextualColor,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-            };
-            automationPage.AddChidren(btnTipNotText);
-        }
+            UI2.Intelligence.Automation.MainView.automationPage = automationPage;
+            UI2.Intelligence.Automation.MainView.MainShow();
+        }
         #endregion
     }
 
@@ -455,7 +568,6 @@
                 btnSceneTilte.IsSelected = false;
                 btnSceneTilte.TextSize = CSS_FontSize.TextFontSize;
                 contentPageView.PageIndex = 1;
-                LoadAutomationPageView();
 
             };
         }
@@ -470,9 +582,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);
@@ -482,7 +606,7 @@
                 else
                 {
                     //璺宠浆鍒伴�昏緫鐣岄潰
-                    SkipAddLogicPage();
+                    UI2.Intelligence.Automation.MainView.SkipAddLogicPage();
                 }
             };
         }
@@ -491,30 +615,30 @@
         /// <summary>
         /// 鍔犺浇鍦烘櫙鎺у埗浜嬩欢
         /// </summary>
-        void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone, Function function)
+        void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone,Button btnShowDelay, Scene scene)
         {
 
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
-                string msg = function.name + Language.StringByID(StringId.AlreadyOpened);
+                //鍦烘櫙姝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(function as Scene);
+                Control.Ins.ControlScene(scene);
+                scene.SceneCountDown(btnShowDelay);
             };
             btnCoverd.MouseUpEventHandler = eventHandler;
             btnName.MouseUpEventHandler = eventHandler;
             btnZone.MouseUpEventHandler = eventHandler;
         }
-        /// <summary>
-        /// 璺宠浆鍒伴�昏緫鐣岄潰鐨勬柟娉�
-        /// </summary>
-        public void SkipAddLogicPage()
-        {
-            HDL_ON.UI.UI2.Intelligence.Automation.Logic.currlogic = new UI2.Intelligence.Automation.Logic();
-            var addLogic = new UI2.Intelligence.Automation.AddLogic();
-            MainPage.BasePageView.AddChidren(addLogic);
-            addLogic.Show();
-            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-        }
+
     }
 
 }

--
Gitblit v1.8.0