wxr
2021-07-01 43b0d5870d528f23ecd6aeceb6cfd4325188b46f
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -1,4 +1,5 @@
using 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()
@@ -70,7 +72,9 @@
            bodyView.AddChidren(topView);
            //不是A网关或者是成员 只允许添加场景隐藏自动化
            if (DB_ResidenceData.Instance.GatewayType != 1 || DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
            var HideAutoPage = DB_ResidenceData.Instance.CurrentRegion.isOtherShare;
            //判断是否需要隐藏自动化
            if (HideAutoPage)
            {
                btnSceneTilte = new Button()
                {
@@ -86,7 +90,6 @@
                };
                topView.AddChidren(btnSceneTilte);
                btnAutomationTitle = new Button();
            }
            else
            {
@@ -127,15 +130,20 @@
                Height = Application.GetMinRealAverage(28),
                UnSelectedImagePath = "Public/AddIcon.png",
            };
            topView.AddChidren(btnAddIconBg);
            //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),
            };
            topView.AddChidren(btnAddIcon);
            //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
            {
                topView.AddChidren(btnAddIcon);
            }
            #endregion
            contentPageView = new PageLayout()
@@ -148,7 +156,11 @@
            bodyView.AddChidren(contentPageView);
            LoadScenePageView();
            LoadAutomationPageView();
            //判断是否需要隐藏自动化
            if (!HideAutoPage)
            {
                LoadAutomationPageView();
            }
            LoadEventList();
        }
@@ -165,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>
@@ -185,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);
@@ -195,7 +199,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,
@@ -203,23 +207,40 @@
                TextAlignment = TextAlignment.CenterLeft,
                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,
                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);
@@ -228,7 +249,18 @@
            try
            {
                int index = 0;
                foreach (var scene in FunctionList.List.scenes)
                //获取能够显示的场景
                if (listScene == null)
                {
                    //初始值
                    if (this.floorRoomSelectView == null)
                    {
                        //先初始化
                        this.floorRoomSelectView = new FloorRoomSelectPopupView();
                    }
                    listScene = this.floorRoomSelectView.GetCanShowListScene();
                }
                foreach (var scene in listScene)
                {
                    //if (scene.roomIds.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示
                    //{
@@ -237,13 +269,15 @@
                    //}
                    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);
@@ -311,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()
                {
@@ -349,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()
@@ -362,20 +412,20 @@
                    SelectedImagePath = "Collection/CollectionIcon.png",
                    IsSelected = scene.collect,
                };
                //view.AddChidren(btnCollection);
                view.AddChidren(btnCollection);
                //2020-12-16 如果是成员隐藏收藏功能
                if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
                {
                    view.AddChidren(btnCollection);
                }
                //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
                //{
                //    view.AddChidren(btnCollection);
                //}
                btnCollection.MouseUpEventHandler = (sender, e) => {
                    scene.collect = btnCollection.IsSelected = !btnCollection.IsSelected;
                    scene.CollectScene();
                };
                LoadEvent_ControlScene(btnCoverd,btnName,btnZone, scene);
                LoadEvent_ControlScene(btnCoverd, btnName, btnZone, btnShowDelay, scene);
                btnSettingIcon.MouseUpEventHandler = (sender, e) => {
                    Action backAction = () => {
                        LoadSceneFunctionControlZone();
                        LoadSceneFunctionControlZone(null);
                    };
                    Action refreshAction = () => {
                        btnName.Text = scene.name;
@@ -388,6 +438,53 @@
                    aep.LoadPage(refreshAction);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                };
                //场景正在倒计时执行中
                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)
            {
@@ -402,12 +499,11 @@
        /// </summary>
        void LoadAutomationPageView()
        {
            //btnAddIcon.RemoveFromParent();
            automationPage = new FrameLayout();
            contentPageView.AddChidren(automationPage);
            UI2.Intelligence.Automation.MainView.automationPage = automationPage;
            UI2.Intelligence.Automation.MainView.MainShow();
        }
        }
        #endregion
    }
@@ -487,7 +583,7 @@
                if (!btnAutomationTitle.IsSelected)
                {
                    //如果是成员
                    if (DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
                    if (DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
                    {
                        //如果没有场景权限
                        if (!DB_ResidenceData.Instance.CurrentRegion.isAllowCreateScene)
@@ -500,7 +596,7 @@
                    Action action = () =>
                    {
                        LoadSceneFunctionControlZone();
                        LoadSceneFunctionControlZone(null);
                    };
                    var aep = new NewSceneMenuListPage(action);
                    MainPage.BasePageView.AddChidren(aep);
@@ -519,14 +615,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) =>
            {
                //场景正在倒计时执行中,不允许再点击
                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;